[pypy-commit] pypy default: Support for 'rep ret'
arigo
noreply at buildbot.pypy.org
Mon Apr 8 11:45:53 CEST 2013
Author: Armin Rigo <arigo at tunes.org>
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)
More information about the pypy-commit
mailing list