Il suffit de permettre d'utiliser deux registres différents pour le même temporaire. Pour cela on introduit une instruction move intermédiaire:
   [ Label (debut);
   
  Oper ("sw___^d0,_^s0", [ t1 ], [ t2 ], None, [ t1, rD; t2, rA ]);
   
  Move ("move_^d0,_^s0", [ t1 ], [ t1' ]);
   
  Oper ("add__^d0,_^s0,_^s1", [ t1'; t3 ], [ t1' ], None, [ t1', rA; t3, rA ]); 
   
  Move ("move_^d0,_^s0", [ t1' ], [ t1 ]);
   
  Oper ("j____debut", Some debut); ]