Author: Armin Rigo <[email protected]>
Branch: 
Changeset: r63131:33015def606f
Date: 2013-04-08 11:45 +0200
http://bitbucket.org/pypy/pypy/changeset/33015def606f/

Log:    Support for 'rep ret'

diff --git 
a/rpython/translator/c/gcc/test/elf64/track_basic_argument_registers.s 
b/rpython/translator/c/gcc/test/elf64/track_basic_argument_registers.s
--- a/rpython/translator/c/gcc/test/elf64/track_basic_argument_registers.s
+++ b/rpython/translator/c/gcc/test/elf64/track_basic_argument_registers.s
@@ -25,7 +25,8 @@
        /* GCROOT -48(%rbp) */
        movq    -24(%rbp), %rax
        leave
-       ret
+       ; try out a "rep ret" instead of just a "ret", for bad reasons
+       rep ret
        .cfi_endproc
 .LFE0:
        .size   foobar, .-foobar
diff --git a/rpython/translator/c/gcc/trackgcroot.py 
b/rpython/translator/c/gcc/trackgcroot.py
--- a/rpython/translator/c/gcc/trackgcroot.py
+++ b/rpython/translator/c/gcc/trackgcroot.py
@@ -664,6 +664,12 @@
     def visit_ret(self, line):
         return InsnRet(self.CALLEE_SAVE_REGISTERS)
 
+    def visit_rep(self, line):
+        # 'rep ret': bad reasons for this bogus 'rep' here
+        if line.split()[:2] == ['rep', 'ret']:
+            return self.visit_ret(line)
+        return []
+
     def visit_jmp(self, line):
         tablelabels = []
         match = self.r_jmp_switch.match(line)
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to