@@ -861,6 +861,9 @@ QAST::MASTOperations.add_core_op('xor', -> $qastcomp, $op {
861
861
my @ ops ;
862
862
my $ res_kind := $ MVM_reg_obj ;
863
863
my $ res_reg := $ * REGALLOC . fresh_o();
864
+ my $ t := $ * REGALLOC . fresh_i();
865
+ my $ u := $ * REGALLOC . fresh_i();
866
+ my $ d := $ * REGALLOC . fresh_o();
864
867
my $ falselabel := MAST::Label. new (: name($ qastcomp . unique (' xor_false' )));
865
868
my $ endlabel := MAST::Label. new (: name($ qastcomp . unique (' xor_end' )));
866
869
@@ -875,10 +878,6 @@ QAST::MASTOperations.add_core_op('xor', -> $qastcomp, $op {
875
878
}
876
879
}
877
880
878
- my $ t := $ * REGALLOC . fresh_i();
879
- my $ u := $ * REGALLOC . fresh_i();
880
- my $ d := $ * REGALLOC . fresh_o();
881
-
882
881
my $ apost := nqp :: shift (@ comp_ops );
883
882
push_ilist(@ ops , $ apost );
884
883
push_op(@ ops , ' set' , $ res_reg , $ apost . result_reg);
@@ -905,15 +904,14 @@ QAST::MASTOperations.add_core_op('xor', -> $qastcomp, $op {
905
904
push_op(@ ops , ' if_i' , $ t , $ truelabel );
906
905
push_op(@ ops , ' set' , $ res_reg , $ bpost . result_reg);
907
906
$ * REGALLOC . release_register($ bpost . result_reg, $ MVM_reg_obj );
908
- $ * REGALLOC . release_register($ t , $ MVM_reg_int64 );
909
907
push_op(@ ops , ' set' , $ t , $ u );
910
- $ * REGALLOC . release_register($ u , $ MVM_reg_int64 );
911
908
nqp :: push (@ ops , $ truelabel );
912
909
}
913
910
else {
914
911
$ have_middle_child := 0 ;
915
912
}
916
913
}
914
+ $ * REGALLOC . release_register($ u , $ MVM_reg_int64 );
917
915
918
916
push_op(@ ops , ' if_i' , $ t , $ endlabel );
919
917
$ * REGALLOC . release_register($ t , $ MVM_reg_int64 );
0 commit comments