[pypy-svn] r31731 - pypy/dist/pypy/jit/codegen/i386
ac at codespeak.net
ac at codespeak.net
Sun Aug 27 15:39:43 CEST 2006
Author: ac
Date: Sun Aug 27 15:39:43 2006
New Revision: 31731
Modified:
pypy/dist/pypy/jit/codegen/i386/ri386genop.py
Log:
(pedronis, arre) Add op_setfield and op_getsubstruct.
Modified: pypy/dist/pypy/jit/codegen/i386/ri386genop.py
==============================================================================
--- pypy/dist/pypy/jit/codegen/i386/ri386genop.py (original)
+++ pypy/dist/pypy/jit/codegen/i386/ri386genop.py Sun Aug 27 15:39:43 2006
@@ -252,6 +252,20 @@
self.mc.MOV(edx, gv_ptr.operand(self))
return self.push(mem(edx, offset))
+ def op_setfield(self, (gv_ptr, gv_offset, gv_value), gv_RESTYPE):
+ # XXX only for ints for now.
+ assert isinstance(gv_offset, IntConst)
+ offset = gv_offset.value
+ self.mc.MOV(eax, gv_value.operand(self))
+ self.mc.MOV(edx, gv_ptr.operand(self))
+ self.mc.MOV(mem(edx, offset), eax)
+
+ def op_getsubstruct(self, (gv_ptr, gv_offset), gv_RESTYPE):
+ assert isinstance(gv_offset, IntConst)
+ offset = gv_offset.value
+ self.mc.MOV(edx, gv_ptr.operand(self))
+ self.mc.LEA(eax, mem(edx, offset))
+ return self.push(eax)
class Link(CodeGenLink):
More information about the Pypy-commit
mailing list