Author: Armin Rigo <[email protected]>
Branch:
Changeset: r75323:f6b89b5d806d
Date: 2015-01-14 15:19 +0100
http://bitbucket.org/pypy/pypy/changeset/f6b89b5d806d/
Log: Consolidate the various 'cmov*' and 'j*' operations
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
@@ -588,13 +588,6 @@
else:
return []
- # The various cmov* operations
- for name in '''
- e ne g ge l le a ae b be nb p np s ns o no
- '''.split():
- locals()['visit_cmov' + name] = binary_insn
- locals()['visit_cmov' + name + 'l'] = binary_insn
-
def _visit_and(self, line):
match = self.r_binaryinsn.match(line)
target = match.group("target")
@@ -828,23 +821,18 @@
return prefix + [InsnCondJump(label)] + postfix
visit_jmpl = visit_jmp
- visit_jg = conditional_jump
- visit_jge = conditional_jump
- visit_jl = conditional_jump
- visit_jle = conditional_jump
- visit_ja = conditional_jump
- visit_jae = conditional_jump
- visit_jb = conditional_jump
- visit_jbe = conditional_jump
- visit_jp = conditional_jump
- visit_jnb = conditional_jump
- visit_jnp = conditional_jump
- visit_js = conditional_jump
- visit_jns = conditional_jump
- visit_jo = conditional_jump
- visit_jno = conditional_jump
- visit_jc = conditional_jump
- visit_jnc = conditional_jump
+
+ # The various conditional jumps and cmov* operations
+ for name in '''
+ e g ge l le a ae b be p s o c
+ '''.split():
+ # NB. visit_je() and visit_jne() are overridden below
+ locals()['visit_j' + name] = conditional_jump
+ locals()['visit_jn' + name] = conditional_jump
+ locals()['visit_cmov' + name] = binary_insn
+ locals()['visit_cmov' + name + 'l'] = binary_insn
+ locals()['visit_cmovn' + name] = binary_insn
+ locals()['visit_cmovn' + name + 'l'] = binary_insn
def visit_je(self, line):
return self.conditional_jump(line, je=True)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit