@@ -2266,8 +2266,7 @@ impl CodeGenerator {
22662266 self . emit ( "sub t2, t0, t1" ) ;
22672267 let ok_label = self . fresh_label ( "mutate_preserved_byte_ok" ) ;
22682268 self . emit ( format ! ( "beqz t2, {}" , ok_label) ) ;
2269- self . emit ( "li a0, 13" ) ;
2270- self . emit_epilogue ( ) ;
2269+ self . emit_fail ( 13 ) ;
22712270 self . emit_label ( & ok_label) ;
22722271 }
22732272 }
@@ -2436,8 +2435,7 @@ impl CodeGenerator {
24362435 self . emit ( "sub t2, t0, t1" ) ;
24372436 let ok_label = self . fresh_label ( "mutate_transition_ok" ) ;
24382437 self . emit ( format ! ( "beqz t2, {}" , ok_label) ) ;
2439- self . emit ( "li a0, 14" ) ;
2440- self . emit_epilogue ( ) ;
2438+ self . emit_fail ( 14 ) ;
24412439 self . emit_label ( & ok_label) ;
24422440 }
24432441 }
@@ -2478,8 +2476,7 @@ impl CodeGenerator {
24782476 & transition. operand ,
24792477 & format ! ( "{} set.{}" , pattern. ty, transition. field) ,
24802478 ) {
2481- self . emit ( "li a0, 14" ) ;
2482- self . emit_epilogue ( ) ;
2479+ self . emit_fail ( 14 ) ;
24832480 }
24842481 }
24852482 }
@@ -2594,8 +2591,7 @@ impl CodeGenerator {
25942591 self . emit ( "sub t1, t3, t6" ) ; // diff_hi = actual_hi - expected_hi
25952592 self . emit ( "or t2, t2, t1" ) ; // combined diff = diff_lo | diff_hi
25962593 self . emit ( format ! ( "beqz t2, {}" , ok_label) ) ;
2597- self . emit ( "li a0, 14" ) ;
2598- self . emit_epilogue ( ) ;
2594+ self . emit_fail ( 14 ) ;
25992595 self . emit_label ( & ok_label) ;
26002596 }
26012597 }
@@ -2619,8 +2615,7 @@ impl CodeGenerator {
26192615 self . emit ( "sub t2, t0, t1" ) ;
26202616 let ok_label = self . fresh_label ( "output_field_ok" ) ;
26212617 self . emit ( format ! ( "beqz t2, {}" , ok_label) ) ;
2622- self . emit ( "li a0, 3" ) ;
2623- self . emit_epilogue ( ) ;
2618+ self . emit_fail ( 3 ) ;
26242619 self . emit_label ( & ok_label) ;
26252620 }
26262621
@@ -2668,8 +2663,7 @@ impl CodeGenerator {
26682663 self . emit ( "sub t2, t0, t1" ) ;
26692664 let ok_label = self . fresh_label ( "output_byte_ok" ) ;
26702665 self . emit ( format ! ( "beqz t2, {}" , ok_label) ) ;
2671- self . emit ( "li a0, 3" ) ;
2672- self . emit_epilogue ( ) ;
2666+ self . emit_fail ( 3 ) ;
26732667 self . emit_label ( & ok_label) ;
26742668 }
26752669 }
@@ -2685,8 +2679,7 @@ impl CodeGenerator {
26852679 self . emit ( "sub t2, t0, t1" ) ;
26862680 let ok_label = self . fresh_label ( "output_byte_ok" ) ;
26872681 self . emit ( format ! ( "beqz t2, {}" , ok_label) ) ;
2688- self . emit ( "li a0, 3" ) ;
2689- self . emit_epilogue ( ) ;
2682+ self . emit_fail ( 3 ) ;
26902683 self . emit_label ( & ok_label) ;
26912684 }
26922685 }
@@ -2703,8 +2696,7 @@ impl CodeGenerator {
27032696 self . emit ( "sub t2, t0, t1" ) ;
27042697 let ok_label = self . fresh_label ( "output_byte_ok" ) ;
27052698 self . emit ( format ! ( "beqz t2, {}" , ok_label) ) ;
2706- self . emit ( "li a0, 3" ) ;
2707- self . emit_epilogue ( ) ;
2699+ self . emit_fail ( 3 ) ;
27082700 self . emit_label ( & ok_label) ;
27092701 }
27102702 }
@@ -2722,8 +2714,7 @@ impl CodeGenerator {
27222714 self . emit ( "sub t2, t0, t1" ) ;
27232715 let ok_label = self . fresh_label ( "output_byte_ok" ) ;
27242716 self . emit ( format ! ( "beqz t2, {}" , ok_label) ) ;
2725- self . emit ( "li a0, 3" ) ;
2726- self . emit_epilogue ( ) ;
2717+ self . emit_fail ( 3 ) ;
27272718 self . emit_label ( & ok_label) ;
27282719 }
27292720 }
@@ -2741,8 +2732,7 @@ impl CodeGenerator {
27412732 self . emit ( "sub t2, t0, t1" ) ;
27422733 let ok_label = self . fresh_label ( "output_byte_ok" ) ;
27432734 self . emit ( format ! ( "beqz t2, {}" , ok_label) ) ;
2744- self . emit ( "li a0, 3" ) ;
2745- self . emit_epilogue ( ) ;
2735+ self . emit_fail ( 3 ) ;
27462736 self . emit_label ( & ok_label) ;
27472737 }
27482738 }
0 commit comments