diff options
author | Mike Pall <mike> | 2011-05-31 21:35:55 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2011-05-31 21:37:44 +0200 |
commit | 514ccfceb889567c0ea5936c6363d675a957887d (patch) | |
tree | 2f6a7eeb8cc325473b2a326a93eebb7d0115ac8a /src | |
parent | 0764c615fd835b2e0fb2acb400d2bcc7253dede6 (diff) | |
download | luajit-514ccfceb889567c0ea5936c6363d675a957887d.tar.gz luajit-514ccfceb889567c0ea5936c6363d675a957887d.tar.bz2 luajit-514ccfceb889567c0ea5936c6363d675a957887d.zip |
ARM: Fix __newindex metamethod handling for BC_TSETB.
Diffstat (limited to 'src')
-rw-r--r-- | src/buildvm_arm.dasc | 1 | ||||
-rw-r--r-- | src/buildvm_arm.h | 149 |
2 files changed, 76 insertions, 74 deletions
diff --git a/src/buildvm_arm.dasc b/src/buildvm_arm.dasc index eed836fa..2e87acdd 100644 --- a/src/buildvm_arm.dasc +++ b/src/buildvm_arm.dasc | |||
@@ -3207,6 +3207,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
3207 | | tst RA, #1<<MM_newindex | 3207 | | tst RA, #1<<MM_newindex |
3208 | | bne <1 // 'no __newindex' flag set: done. | 3208 | | bne <1 // 'no __newindex' flag set: done. |
3209 | | ldr INS, [PC, #-4] // Restore INS. | 3209 | | ldr INS, [PC, #-4] // Restore INS. |
3210 | | decode_RA8 RA, INS | ||
3210 | | b ->vmeta_tsetb | 3211 | | b ->vmeta_tsetb |
3211 | | | 3212 | | |
3212 | |7: // Possible table write barrier for the value. Skip valiswhite check. | 3213 | |7: // Possible table write barrier for the value. Skip valiswhite check. |
diff --git a/src/buildvm_arm.h b/src/buildvm_arm.h index 3b480326..0d106bdb 100644 --- a/src/buildvm_arm.h +++ b/src/buildvm_arm.h | |||
@@ -12,7 +12,7 @@ | |||
12 | #define DASM_SECTION_CODE_OP 0 | 12 | #define DASM_SECTION_CODE_OP 0 |
13 | #define DASM_SECTION_CODE_SUB 1 | 13 | #define DASM_SECTION_CODE_SUB 1 |
14 | #define DASM_MAXSECTION 2 | 14 | #define DASM_MAXSECTION 2 |
15 | static const unsigned int build_actionlist[5614] = { | 15 | static const unsigned int build_actionlist[5615] = { |
16 | 0x00010001, | 16 | 0x00010001, |
17 | 0x00060014, | 17 | 0x00060014, |
18 | 0xe3160000, | 18 | 0xe3160000, |
@@ -4788,6 +4788,7 @@ static const unsigned int build_actionlist[5614] = { | |||
4788 | 0x1a000000, | 4788 | 0x1a000000, |
4789 | 0x0005000b, | 4789 | 0x0005000b, |
4790 | 0xe516e004, | 4790 | 0xe516e004, |
4791 | 0xe004a2ae, | ||
4791 | 0xea000000, | 4792 | 0xea000000, |
4792 | 0x00050032, | 4793 | 0x00050032, |
4793 | 0x00060011, | 4794 | 0x00060011, |
@@ -6989,72 +6990,72 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
6989 | break; | 6990 | break; |
6990 | case BC_TSETB: | 6991 | case BC_TSETB: |
6991 | dasm_put(Dst, 4726, -LJ_TTAB, Dt6(->asize), Dt6(->array), -LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DISPATCH_GL(gc.grayagain), LJ_GC_BLACK); | 6992 | dasm_put(Dst, 4726, -LJ_TTAB, Dt6(->asize), Dt6(->array), -LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DISPATCH_GL(gc.grayagain), LJ_GC_BLACK); |
6992 | dasm_put(Dst, 4783, DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist)); | 6993 | dasm_put(Dst, 4784, DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist)); |
6993 | break; | 6994 | break; |
6994 | 6995 | ||
6995 | case BC_TSETM: | 6996 | case BC_TSETM: |
6996 | dasm_put(Dst, 4792, Dt6(->asize), Dt6(->array), Dt6(->marked), LJ_GC_BLACK, Dt1(->base)); | 6997 | dasm_put(Dst, 4793, Dt6(->asize), Dt6(->array), Dt6(->marked), LJ_GC_BLACK, Dt1(->base)); |
6997 | if (LJ_TARGET_OSX) { | 6998 | if (LJ_TARGET_OSX) { |
6998 | dasm_put(Dst, 4837, Dt1(->base)); | 6999 | dasm_put(Dst, 4838, Dt1(->base)); |
6999 | } | 7000 | } |
7000 | dasm_put(Dst, 4840, DISPATCH_GL(gc.grayagain), LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist)); | 7001 | dasm_put(Dst, 4841, DISPATCH_GL(gc.grayagain), LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist)); |
7001 | break; | 7002 | break; |
7002 | 7003 | ||
7003 | /* -- Calls and vararg handling ----------------------------------------- */ | 7004 | /* -- Calls and vararg handling ----------------------------------------- */ |
7004 | 7005 | ||
7005 | case BC_CALLM: | 7006 | case BC_CALLM: |
7006 | dasm_put(Dst, 4856); | 7007 | dasm_put(Dst, 4857); |
7007 | break; | 7008 | break; |
7008 | case BC_CALL: | 7009 | case BC_CALL: |
7009 | dasm_put(Dst, 4862, -LJ_TFUNC, Dt7(->field_pc)); | 7010 | dasm_put(Dst, 4863, -LJ_TFUNC, Dt7(->field_pc)); |
7010 | break; | 7011 | break; |
7011 | 7012 | ||
7012 | case BC_CALLMT: | 7013 | case BC_CALLMT: |
7013 | dasm_put(Dst, 4882); | 7014 | dasm_put(Dst, 4883); |
7014 | break; | 7015 | break; |
7015 | case BC_CALLT: | 7016 | case BC_CALLT: |
7016 | dasm_put(Dst, 4887, -LJ_TFUNC, Dt7(->ffid), FRAME_TYPE, Dt7(->field_pc), Dt7(->field_pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP); | 7017 | dasm_put(Dst, 4888, -LJ_TFUNC, Dt7(->ffid), FRAME_TYPE, Dt7(->field_pc), Dt7(->field_pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP); |
7017 | dasm_put(Dst, 4948, FRAME_TYPE); | 7018 | dasm_put(Dst, 4949, FRAME_TYPE); |
7018 | break; | 7019 | break; |
7019 | 7020 | ||
7020 | case BC_ITERC: | 7021 | case BC_ITERC: |
7021 | dasm_put(Dst, 4959, -LJ_TFUNC, Dt7(->field_pc)); | 7022 | dasm_put(Dst, 4960, -LJ_TFUNC, Dt7(->field_pc)); |
7022 | break; | 7023 | break; |
7023 | 7024 | ||
7024 | case BC_ITERN: | 7025 | case BC_ITERN: |
7025 | #if LJ_HASJIT | 7026 | #if LJ_HASJIT |
7026 | #endif | 7027 | #endif |
7027 | dasm_put(Dst, 4983, Dt6(->asize), Dt6(->array), -LJ_TNIL, ~LJ_TISNUM, Dt6(->hmask), Dt6(->node), DtB(->val), -LJ_TNIL, DtB(->key)); | 7028 | dasm_put(Dst, 4984, Dt6(->asize), Dt6(->array), -LJ_TNIL, ~LJ_TISNUM, Dt6(->hmask), Dt6(->node), DtB(->val), -LJ_TNIL, DtB(->key)); |
7028 | break; | 7029 | break; |
7029 | 7030 | ||
7030 | case BC_ISNEXT: | 7031 | case BC_ISNEXT: |
7031 | dasm_put(Dst, 5048, -LJ_TFUNC, Dt8(->ffid), -LJ_TTAB, -LJ_TNIL, FF_next_N, BC_JMP, BC_ITERC); | 7032 | dasm_put(Dst, 5049, -LJ_TFUNC, Dt8(->ffid), -LJ_TTAB, -LJ_TNIL, FF_next_N, BC_JMP, BC_ITERC); |
7032 | break; | 7033 | break; |
7033 | 7034 | ||
7034 | case BC_VARG: | 7035 | case BC_VARG: |
7035 | dasm_put(Dst, 5087, FRAME_VARG, ~LJ_TNIL, Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->base)); | 7036 | dasm_put(Dst, 5088, FRAME_VARG, ~LJ_TNIL, Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->base)); |
7036 | break; | 7037 | break; |
7037 | 7038 | ||
7038 | /* -- Returns ----------------------------------------------------------- */ | 7039 | /* -- Returns ----------------------------------------------------------- */ |
7039 | 7040 | ||
7040 | case BC_RETM: | 7041 | case BC_RETM: |
7041 | dasm_put(Dst, 5159); | 7042 | dasm_put(Dst, 5160); |
7042 | break; | 7043 | break; |
7043 | 7044 | ||
7044 | case BC_RET: | 7045 | case BC_RET: |
7045 | dasm_put(Dst, 5166, FRAME_TYPE, FRAME_VARG, Dt7(->field_pc), PC2PROTO(k), ~LJ_TNIL, FRAME_TYPEP); | 7046 | dasm_put(Dst, 5167, FRAME_TYPE, FRAME_VARG, Dt7(->field_pc), PC2PROTO(k), ~LJ_TNIL, FRAME_TYPEP); |
7046 | break; | 7047 | break; |
7047 | 7048 | ||
7048 | case BC_RET0: case BC_RET1: | 7049 | case BC_RET0: case BC_RET1: |
7049 | dasm_put(Dst, 5231, FRAME_TYPE, FRAME_VARG); | 7050 | dasm_put(Dst, 5232, FRAME_TYPE, FRAME_VARG); |
7050 | if (op == BC_RET1) { | 7051 | if (op == BC_RET1) { |
7051 | dasm_put(Dst, 5242); | 7052 | dasm_put(Dst, 5243); |
7052 | } | 7053 | } |
7053 | dasm_put(Dst, 5244); | 7054 | dasm_put(Dst, 5245); |
7054 | if (op == BC_RET1) { | 7055 | if (op == BC_RET1) { |
7055 | dasm_put(Dst, 5247); | 7056 | dasm_put(Dst, 5248); |
7056 | } | 7057 | } |
7057 | dasm_put(Dst, 5249, Dt7(->field_pc), PC2PROTO(k), ~LJ_TNIL); | 7058 | dasm_put(Dst, 5250, Dt7(->field_pc), PC2PROTO(k), ~LJ_TNIL); |
7058 | break; | 7059 | break; |
7059 | 7060 | ||
7060 | /* -- Loops and branches ------------------------------------------------ */ | 7061 | /* -- Loops and branches ------------------------------------------------ */ |
@@ -7062,7 +7063,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
7062 | 7063 | ||
7063 | case BC_FORL: | 7064 | case BC_FORL: |
7064 | #if LJ_HASJIT | 7065 | #if LJ_HASJIT |
7065 | dasm_put(Dst, 5275, -GG_DISP2HOT); | 7066 | dasm_put(Dst, 5276, -GG_DISP2HOT); |
7066 | #endif | 7067 | #endif |
7067 | break; | 7068 | break; |
7068 | 7069 | ||
@@ -7074,68 +7075,68 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
7074 | case BC_FORI: | 7075 | case BC_FORI: |
7075 | case BC_IFORL: | 7076 | case BC_IFORL: |
7076 | vk = (op == BC_IFORL || op == BC_JFORL); | 7077 | vk = (op == BC_IFORL || op == BC_JFORL); |
7077 | dasm_put(Dst, 5285); | 7078 | dasm_put(Dst, 5286); |
7078 | if (op != BC_JFORL) { | 7079 | if (op != BC_JFORL) { |
7079 | dasm_put(Dst, 5287); | 7080 | dasm_put(Dst, 5288); |
7080 | } | 7081 | } |
7081 | if (!vk) { | 7082 | if (!vk) { |
7082 | dasm_put(Dst, 5289, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM); | 7083 | dasm_put(Dst, 5290, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM); |
7083 | } else { | 7084 | } else { |
7084 | dasm_put(Dst, 5307, -LJ_TISNUM); | 7085 | dasm_put(Dst, 5308, -LJ_TISNUM); |
7085 | if (op == BC_IFORL) { | 7086 | if (op == BC_IFORL) { |
7086 | dasm_put(Dst, 5315); | 7087 | dasm_put(Dst, 5316); |
7087 | } else { | 7088 | } else { |
7088 | dasm_put(Dst, 5317); | 7089 | dasm_put(Dst, 5318); |
7089 | } | 7090 | } |
7090 | dasm_put(Dst, 5320); | 7091 | dasm_put(Dst, 5321); |
7091 | } | 7092 | } |
7092 | dasm_put(Dst, 5325); | 7093 | dasm_put(Dst, 5326); |
7093 | if (op == BC_FORI) { | 7094 | if (op == BC_FORI) { |
7094 | dasm_put(Dst, 5327); | 7095 | dasm_put(Dst, 5328); |
7095 | } else if (op == BC_JFORI) { | 7096 | } else if (op == BC_JFORI) { |
7096 | dasm_put(Dst, 5329); | 7097 | dasm_put(Dst, 5330); |
7097 | } else if (op == BC_IFORL) { | 7098 | } else if (op == BC_IFORL) { |
7098 | dasm_put(Dst, 5332); | 7099 | dasm_put(Dst, 5333); |
7099 | } | 7100 | } |
7100 | if (vk) { | 7101 | if (vk) { |
7101 | dasm_put(Dst, 5334); | 7102 | dasm_put(Dst, 5335); |
7102 | } | 7103 | } |
7103 | dasm_put(Dst, 5336); | 7104 | dasm_put(Dst, 5337); |
7104 | if (op == BC_JFORI || op == BC_JFORL) { | 7105 | if (op == BC_JFORI || op == BC_JFORL) { |
7105 | dasm_put(Dst, 5341, BC_JLOOP); | 7106 | dasm_put(Dst, 5342, BC_JLOOP); |
7106 | } | 7107 | } |
7107 | dasm_put(Dst, 5344); | 7108 | dasm_put(Dst, 5345); |
7108 | if (!vk) { | 7109 | if (!vk) { |
7109 | dasm_put(Dst, 5351); | 7110 | dasm_put(Dst, 5352); |
7110 | } else { | 7111 | } else { |
7111 | dasm_put(Dst, 5353); | 7112 | dasm_put(Dst, 5354); |
7112 | } | 7113 | } |
7113 | dasm_put(Dst, 5355); | 7114 | dasm_put(Dst, 5356); |
7114 | if (!vk) { | 7115 | if (!vk) { |
7115 | dasm_put(Dst, 5359, -LJ_TISNUM, -LJ_TISNUM); | 7116 | dasm_put(Dst, 5360, -LJ_TISNUM, -LJ_TISNUM); |
7116 | } else { | 7117 | } else { |
7117 | dasm_put(Dst, 5371); | 7118 | dasm_put(Dst, 5372); |
7118 | } | 7119 | } |
7119 | dasm_put(Dst, 5380); | 7120 | dasm_put(Dst, 5381); |
7120 | if (op == BC_FORI) { | 7121 | if (op == BC_FORI) { |
7121 | dasm_put(Dst, 5384); | 7122 | dasm_put(Dst, 5385); |
7122 | } else if (op == BC_JFORI) { | 7123 | } else if (op == BC_JFORI) { |
7123 | dasm_put(Dst, 5386, BC_JLOOP); | 7124 | dasm_put(Dst, 5387, BC_JLOOP); |
7124 | } else if (op == BC_IFORL) { | 7125 | } else if (op == BC_IFORL) { |
7125 | dasm_put(Dst, 5391); | 7126 | dasm_put(Dst, 5392); |
7126 | } else { | 7127 | } else { |
7127 | dasm_put(Dst, 5393, BC_JLOOP); | 7128 | dasm_put(Dst, 5394, BC_JLOOP); |
7128 | } | 7129 | } |
7129 | dasm_put(Dst, 5396); | 7130 | dasm_put(Dst, 5397); |
7130 | if (vk) { | 7131 | if (vk) { |
7131 | dasm_put(Dst, 5402); | 7132 | dasm_put(Dst, 5403); |
7132 | } | 7133 | } |
7133 | dasm_put(Dst, 5407); | 7134 | dasm_put(Dst, 5408); |
7134 | break; | 7135 | break; |
7135 | 7136 | ||
7136 | case BC_ITERL: | 7137 | case BC_ITERL: |
7137 | #if LJ_HASJIT | 7138 | #if LJ_HASJIT |
7138 | dasm_put(Dst, 5413, -GG_DISP2HOT); | 7139 | dasm_put(Dst, 5414, -GG_DISP2HOT); |
7139 | #endif | 7140 | #endif |
7140 | break; | 7141 | break; |
7141 | 7142 | ||
@@ -7144,40 +7145,40 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
7144 | break; | 7145 | break; |
7145 | #endif | 7146 | #endif |
7146 | case BC_IITERL: | 7147 | case BC_IITERL: |
7147 | dasm_put(Dst, 5423); | 7148 | dasm_put(Dst, 5424); |
7148 | if (op == BC_JITERL) { | 7149 | if (op == BC_JITERL) { |
7149 | dasm_put(Dst, 5425, -LJ_TNIL, BC_JLOOP); | 7150 | dasm_put(Dst, 5426, -LJ_TNIL, BC_JLOOP); |
7150 | } else { | 7151 | } else { |
7151 | dasm_put(Dst, 5431, -LJ_TNIL); | 7152 | dasm_put(Dst, 5432, -LJ_TNIL); |
7152 | } | 7153 | } |
7153 | dasm_put(Dst, 5437); | 7154 | dasm_put(Dst, 5438); |
7154 | break; | 7155 | break; |
7155 | 7156 | ||
7156 | case BC_LOOP: | 7157 | case BC_LOOP: |
7157 | #if LJ_HASJIT | 7158 | #if LJ_HASJIT |
7158 | dasm_put(Dst, 5444, -GG_DISP2HOT); | 7159 | dasm_put(Dst, 5445, -GG_DISP2HOT); |
7159 | #endif | 7160 | #endif |
7160 | break; | 7161 | break; |
7161 | 7162 | ||
7162 | case BC_ILOOP: | 7163 | case BC_ILOOP: |
7163 | dasm_put(Dst, 5454); | 7164 | dasm_put(Dst, 5455); |
7164 | break; | 7165 | break; |
7165 | 7166 | ||
7166 | case BC_JLOOP: | 7167 | case BC_JLOOP: |
7167 | #if LJ_HASJIT | 7168 | #if LJ_HASJIT |
7168 | dasm_put(Dst, 5461, DISPATCH_J(trace), DISPATCH_GL(vmstate), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); | 7169 | dasm_put(Dst, 5462, DISPATCH_J(trace), DISPATCH_GL(vmstate), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); |
7169 | #endif | 7170 | #endif |
7170 | break; | 7171 | break; |
7171 | 7172 | ||
7172 | case BC_JMP: | 7173 | case BC_JMP: |
7173 | dasm_put(Dst, 5475); | 7174 | dasm_put(Dst, 5476); |
7174 | break; | 7175 | break; |
7175 | 7176 | ||
7176 | /* -- Function headers -------------------------------------------------- */ | 7177 | /* -- Function headers -------------------------------------------------- */ |
7177 | 7178 | ||
7178 | case BC_FUNCF: | 7179 | case BC_FUNCF: |
7179 | #if LJ_HASJIT | 7180 | #if LJ_HASJIT |
7180 | dasm_put(Dst, 5484, -GG_DISP2HOT); | 7181 | dasm_put(Dst, 5485, -GG_DISP2HOT); |
7181 | #endif | 7182 | #endif |
7182 | case BC_FUNCV: /* NYI: compiled vararg functions. */ | 7183 | case BC_FUNCV: /* NYI: compiled vararg functions. */ |
7183 | break; | 7184 | break; |
@@ -7187,42 +7188,42 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
7187 | break; | 7188 | break; |
7188 | #endif | 7189 | #endif |
7189 | case BC_IFUNCF: | 7190 | case BC_IFUNCF: |
7190 | dasm_put(Dst, 5494, Dt1(->maxstack), -4+PC2PROTO(numparams), -4+PC2PROTO(k)); | 7191 | dasm_put(Dst, 5495, Dt1(->maxstack), -4+PC2PROTO(numparams), -4+PC2PROTO(k)); |
7191 | if (op != BC_JFUNCF) { | 7192 | if (op != BC_JFUNCF) { |
7192 | dasm_put(Dst, 5504); | 7193 | dasm_put(Dst, 5505); |
7193 | } | 7194 | } |
7194 | dasm_put(Dst, 5507, ~LJ_TNIL); | 7195 | dasm_put(Dst, 5508, ~LJ_TNIL); |
7195 | if (op == BC_JFUNCF) { | 7196 | if (op == BC_JFUNCF) { |
7196 | dasm_put(Dst, 5514, BC_JLOOP); | 7197 | dasm_put(Dst, 5515, BC_JLOOP); |
7197 | } else { | 7198 | } else { |
7198 | dasm_put(Dst, 5518); | 7199 | dasm_put(Dst, 5519); |
7199 | } | 7200 | } |
7200 | dasm_put(Dst, 5523); | 7201 | dasm_put(Dst, 5524); |
7201 | break; | 7202 | break; |
7202 | 7203 | ||
7203 | case BC_JFUNCV: | 7204 | case BC_JFUNCV: |
7204 | #if !LJ_HASJIT | 7205 | #if !LJ_HASJIT |
7205 | break; | 7206 | break; |
7206 | #endif | 7207 | #endif |
7207 | dasm_put(Dst, 5529); | 7208 | dasm_put(Dst, 5530); |
7208 | break; /* NYI: compiled vararg functions. */ | 7209 | break; /* NYI: compiled vararg functions. */ |
7209 | 7210 | ||
7210 | case BC_IFUNCV: | 7211 | case BC_IFUNCV: |
7211 | dasm_put(Dst, 5531, Dt1(->maxstack), 8+FRAME_VARG, -4+PC2PROTO(k), -4+PC2PROTO(numparams), ~LJ_TNIL); | 7212 | dasm_put(Dst, 5532, Dt1(->maxstack), 8+FRAME_VARG, -4+PC2PROTO(k), -4+PC2PROTO(numparams), ~LJ_TNIL); |
7212 | break; | 7213 | break; |
7213 | 7214 | ||
7214 | case BC_FUNCC: | 7215 | case BC_FUNCC: |
7215 | case BC_FUNCCW: | 7216 | case BC_FUNCCW: |
7216 | if (op == BC_FUNCC) { | 7217 | if (op == BC_FUNCC) { |
7217 | dasm_put(Dst, 5572, Dt8(->f)); | 7218 | dasm_put(Dst, 5573, Dt8(->f)); |
7218 | } else { | 7219 | } else { |
7219 | dasm_put(Dst, 5575, DISPATCH_GL(wrapf)); | 7220 | dasm_put(Dst, 5576, DISPATCH_GL(wrapf)); |
7220 | } | 7221 | } |
7221 | dasm_put(Dst, 5578, Dt1(->maxstack), Dt1(->base), Dt1(->top)); | 7222 | dasm_put(Dst, 5579, Dt1(->maxstack), Dt1(->base), Dt1(->top)); |
7222 | if (op == BC_FUNCCW) { | 7223 | if (op == BC_FUNCCW) { |
7223 | dasm_put(Dst, 5588, Dt8(->f)); | 7224 | dasm_put(Dst, 5589, Dt8(->f)); |
7224 | } | 7225 | } |
7225 | dasm_put(Dst, 5591, LJ_VMST_C, DISPATCH_GL(vmstate), Dt1(->base), LJ_VMST_INTERP, Dt1(->top), DISPATCH_GL(vmstate)); | 7226 | dasm_put(Dst, 5592, LJ_VMST_C, DISPATCH_GL(vmstate), Dt1(->base), LJ_VMST_INTERP, Dt1(->top), DISPATCH_GL(vmstate)); |
7226 | break; | 7227 | break; |
7227 | 7228 | ||
7228 | /* ---------------------------------------------------------------------- */ | 7229 | /* ---------------------------------------------------------------------- */ |
@@ -7242,7 +7243,7 @@ static int build_backend(BuildCtx *ctx) | |||
7242 | 7243 | ||
7243 | build_subroutines(ctx); | 7244 | build_subroutines(ctx); |
7244 | 7245 | ||
7245 | dasm_put(Dst, 5613); | 7246 | dasm_put(Dst, 5614); |
7246 | for (op = 0; op < BC__MAX; op++) | 7247 | for (op = 0; op < BC__MAX; op++) |
7247 | build_ins(ctx, (BCOp)op, op); | 7248 | build_ins(ctx, (BCOp)op, op); |
7248 | 7249 | ||