Maciej Fijalkowski avatar Maciej Fijalkowski committed 407182a

use scratch reg on 64bit

Comments (0)

Files changed (1)

pypy/jit/backend/x86/assembler.py

         frame_info_addr = rffi.cast(lltype.Signed, frame_info)
         frame_info_ofs = self.cpu.get_ofs_of_frame_field('jf_frame_info')
         jfi_gc_map_ofs = self.cpu.get_ofs_of_frame_field('jfi_gcmap')
-        self.mc.MOV_bi(gcmap_ofs, frame_info_addr + jfi_gc_map_ofs)
-        self.mc.MOV_bi(frame_info_ofs, frame_info_addr)
+        if IS_X86_32:
+            self.mc.MOV_bi(gcmap_ofs, frame_info_addr + jfi_gc_map_ofs)
+            self.mc.MOV_bi(frame_info_ofs, frame_info_addr)
+        else:
+            self.mc.MOV_ri(X86_64_SCRATCH_REG.value,
+                           frame_info_addr + jfi_gc_map_ofs)
+            self.mc.MOV_br(gcmap_ofs, X86_64_SCRATCH_REG.value)
+            self.mc.MOV_ri(X86_64_SCRATCH_REG.value, frame_info_addr)
+            self.mc.MOV_br(frame_info_ofs, X86_64_SCRATCH_REG.value)
+            
 
     def _patch_stackadjust(self, adr, allocated_depth):
         mc = codebuf.MachineCodeBlockWrapper()
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.