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

Reply via email to