diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-11-04 14:01:04 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-11-04 14:01:04 +0900 |
| commit | d13df1536d5513be64732aef41827d5d0329ee58 (patch) | |
| tree | 8c4bbf7fd1d18a5429129d9babbee28438d9227d /src/vm.c | |
| parent | f8156ae17511e7255b5984075a025533d3771cd0 (diff) | |
| download | mruby-d13df1536d5513be64732aef41827d5d0329ee58.tar.gz mruby-d13df1536d5513be64732aef41827d5d0329ee58.zip | |
Add a new instruction `OP_LOADI32`.
That loads 32 bit integer bypassing pool access.
Diffstat (limited to 'src/vm.c')
| -rw-r--r-- | src/vm.c | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -1030,7 +1030,7 @@ mrb_vm_exec(mrb_state *mrb, const struct RProc *proc, const mrb_code *pc) struct mrb_jmpbuf c_jmp; uint32_t a; uint16_t b; - uint8_t c; + uint16_t c; mrb_sym mid; const struct mrb_irep_catch_handler *ch; @@ -1138,6 +1138,11 @@ RETRY_TRY_BLOCK: NEXT; } + CASE(OP_LOADI32, BSS) { + SET_INT_VALUE(mrb, regs[a], (mrb_int)(b<<16)+c); + NEXT; + } + CASE(OP_LOADSYM, BB) { SET_SYM_VALUE(regs[a], syms[b]); NEXT; |
