Author: Armin Rigo <[email protected]>
Branch: stmgc-c7
Changeset: r70204:05d2f79f365d
Date: 2014-03-23 16:20 +0100
http://bitbucket.org/pypy/pypy/changeset/05d2f79f365d/
Log: fixes
diff --git a/rpython/jit/backend/x86/assembler.py
b/rpython/jit/backend/x86/assembler.py
--- a/rpython/jit/backend/x86/assembler.py
+++ b/rpython/jit/backend/x86/assembler.py
@@ -1685,18 +1685,21 @@
base_loc = arglocs[0]
basesize, itemsize, ofs_length = symbolic.get_array_token(rstr.STR,
self.cpu.translate_support_code)
- self.mc.MOV(resloc, addr_add_const(base_loc, ofs_length))
+ self.mc.MOV(resloc,
+ addr_add_const(self.SEGMENT_GC, base_loc, ofs_length))
def genop_unicodelen(self, op, arglocs, resloc):
base_loc = arglocs[0]
basesize, itemsize, ofs_length = symbolic.get_array_token(rstr.UNICODE,
self.cpu.translate_support_code)
- self.mc.MOV(resloc, addr_add_const(base_loc, ofs_length))
+ self.mc.MOV(resloc,
+ addr_add_const(self.SEGMENT_GC, base_loc, ofs_length))
def genop_arraylen_gc(self, op, arglocs, resloc):
base_loc, ofs_loc = arglocs
assert isinstance(ofs_loc, ImmedLoc)
- self.mc.MOV(resloc, addr_add_const(base_loc, ofs_loc.value))
+ self.mc.MOV(resloc,
+ addr_add_const(self.SEGMENT_GC, base_loc, ofs_loc.value))
def genop_strgetitem(self, op, arglocs, resloc):
base_loc, ofs_loc = arglocs
@@ -2215,7 +2218,8 @@
assert loc_base is ebp
loc = self.raw_stack(descr.jit_wb_if_flag_byteofs)
else:
- loc = addr_add_const(loc_base, descr.jit_wb_if_flag_byteofs)
+ loc = addr_add_const(self.SEGMENT_GC, loc_base,
+ descr.jit_wb_if_flag_byteofs)
mc.TEST8(loc, imm(mask))
mc.J_il8(rx86.Conditions['Z'], 0) # patched later
jz_location = mc.get_relative_pos()
@@ -2284,7 +2288,7 @@
# XOR tmp, -8
mc.XOR_ri(tmp1.value, -8)
# BTS [loc_base], tmp
- mc.BTS(addr_add_const(loc_base, 0), tmp1)
+ mc.BTS(addr_add_const(self.SEGMENT_GC, loc_base, 0), tmp1)
# done
if final_pop:
mc.POP_r(loc_index.value)
@@ -2293,7 +2297,8 @@
byte_index = loc_index.value >> descr.jit_wb_card_page_shift
byte_ofs = ~(byte_index >> 3)
byte_val = 1 << (byte_index & 7)
- mc.OR8(addr_add_const(loc_base, byte_ofs), imm(byte_val))
+ mc.OR8(addr_add_const(self.SEGMENT_GC, loc_base, byte_ofs),
+ imm(byte_val))
else:
raise AssertionError("index is neither RegLoc nor ImmedLoc")
#
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit