mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
vm: fuse JMPIF and MATCHERR into conditional MATCHERR
Change OP_MATCHERR from Z format (unconditional) to B format (conditional on register). This allows fusing JMPIF + MATCHERR sequence into a single MATCHERR instruction for simple patterns. Before: JMPIF R2 target (4 bytes) + MATCHERR (1 byte) = 5 bytes After: MATCHERR R2 (2 bytes) Saves 3 bytes per pattern match with raise_on_fail. Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
+2
-2
@@ -572,8 +572,8 @@ codedump(mrb_state *mrb, const mrb_irep *irep, FILE *out)
|
||||
fprintf(out, "RAISEIF\tR%d\t", a);
|
||||
print_lv_a(mrb, irep, a, out);
|
||||
break;
|
||||
CASE(OP_MATCHERR, Z):
|
||||
fprintf(out, "MATCHERR\n");
|
||||
CASE(OP_MATCHERR, B):
|
||||
fprintf(out, "MATCHERR\tR%d\n", a);
|
||||
break;
|
||||
|
||||
CASE(OP_DEBUG, BBB):
|
||||
|
||||
Reference in New Issue
Block a user