diff options
Diffstat (limited to 'src/lj_emit_ppc.h')
-rw-r--r-- | src/lj_emit_ppc.h | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/lj_emit_ppc.h b/src/lj_emit_ppc.h index e993d294..69765528 100644 --- a/src/lj_emit_ppc.h +++ b/src/lj_emit_ppc.h | |||
@@ -98,7 +98,7 @@ static void emit_loadi(ASMState *as, Reg r, int32_t i) | |||
98 | 98 | ||
99 | #define emit_loada(as, r, addr) emit_loadi(as, (r), i32ptr((addr))) | 99 | #define emit_loada(as, r, addr) emit_loadi(as, (r), i32ptr((addr))) |
100 | 100 | ||
101 | static Reg ra_allock(ASMState *as, int32_t k, RegSet allow); | 101 | static Reg ra_allock(ASMState *as, intptr_t k, RegSet allow); |
102 | 102 | ||
103 | /* Get/set from constant pointer. */ | 103 | /* Get/set from constant pointer. */ |
104 | static void emit_lsptr(ASMState *as, PPCIns pi, Reg r, void *p, RegSet allow) | 104 | static void emit_lsptr(ASMState *as, PPCIns pi, Reg r, void *p, RegSet allow) |
@@ -115,8 +115,8 @@ static void emit_lsptr(ASMState *as, PPCIns pi, Reg r, void *p, RegSet allow) | |||
115 | emit_tai(as, pi, r, base, i); | 115 | emit_tai(as, pi, r, base, i); |
116 | } | 116 | } |
117 | 117 | ||
118 | #define emit_loadn(as, r, tv) \ | 118 | #define emit_loadk64(as, r, ir) \ |
119 | emit_lsptr(as, PPCI_LFD, ((r) & 31), (void *)(tv), RSET_GPR) | 119 | emit_lsptr(as, PPCI_LFD, ((r) & 31), (void *)&ir_knum((ir))->u64, RSET_GPR) |
120 | 120 | ||
121 | /* Get/set global_State fields. */ | 121 | /* Get/set global_State fields. */ |
122 | static void emit_lsglptr(ASMState *as, PPCIns pi, Reg r, int32_t ofs) | 122 | static void emit_lsglptr(ASMState *as, PPCIns pi, Reg r, int32_t ofs) |
@@ -186,22 +186,22 @@ static void emit_movrr(ASMState *as, IRIns *ir, Reg dst, Reg src) | |||
186 | emit_fb(as, PPCI_FMR, dst, src); | 186 | emit_fb(as, PPCI_FMR, dst, src); |
187 | } | 187 | } |
188 | 188 | ||
189 | /* Generic load of register from stack slot. */ | 189 | /* Generic load of register with base and (small) offset address. */ |
190 | static void emit_spload(ASMState *as, IRIns *ir, Reg r, int32_t ofs) | 190 | static void emit_loadofs(ASMState *as, IRIns *ir, Reg r, Reg base, int32_t ofs) |
191 | { | 191 | { |
192 | if (r < RID_MAX_GPR) | 192 | if (r < RID_MAX_GPR) |
193 | emit_tai(as, PPCI_LWZ, r, RID_SP, ofs); | 193 | emit_tai(as, PPCI_LWZ, r, base, ofs); |
194 | else | 194 | else |
195 | emit_fai(as, irt_isnum(ir->t) ? PPCI_LFD : PPCI_LFS, r, RID_SP, ofs); | 195 | emit_fai(as, irt_isnum(ir->t) ? PPCI_LFD : PPCI_LFS, r, base, ofs); |
196 | } | 196 | } |
197 | 197 | ||
198 | /* Generic store of register to stack slot. */ | 198 | /* Generic store of register with base and (small) offset address. */ |
199 | static void emit_spstore(ASMState *as, IRIns *ir, Reg r, int32_t ofs) | 199 | static void emit_storeofs(ASMState *as, IRIns *ir, Reg r, Reg base, int32_t ofs) |
200 | { | 200 | { |
201 | if (r < RID_MAX_GPR) | 201 | if (r < RID_MAX_GPR) |
202 | emit_tai(as, PPCI_STW, r, RID_SP, ofs); | 202 | emit_tai(as, PPCI_STW, r, base, ofs); |
203 | else | 203 | else |
204 | emit_fai(as, irt_isnum(ir->t) ? PPCI_STFD : PPCI_STFS, r, RID_SP, ofs); | 204 | emit_fai(as, irt_isnum(ir->t) ? PPCI_STFD : PPCI_STFS, r, base, ofs); |
205 | } | 205 | } |
206 | 206 | ||
207 | /* Emit a compare (for equality) with a constant operand. */ | 207 | /* Emit a compare (for equality) with a constant operand. */ |