dotgnu-pnet-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dotgnu-pnet-commits] libjit ChangeLog jit/jit-rules-x86.ins


From: Aleksey Demakov
Subject: [dotgnu-pnet-commits] libjit ChangeLog jit/jit-rules-x86.ins
Date: Fri, 10 Nov 2006 21:03:09 +0000

CVSROOT:        /sources/dotgnu-pnet
Module name:    libjit
Changes by:     Aleksey Demakov <avd>   06/11/10 21:03:09

Modified files:
        .              : ChangeLog 
        jit            : jit-rules-x86.ins 

Log message:
        add JIT_OP_IABS and JIT_OP_LABS rules

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/libjit/ChangeLog?cvsroot=dotgnu-pnet&r1=1.278&r2=1.279
http://cvs.savannah.gnu.org/viewcvs/libjit/jit/jit-rules-x86.ins?cvsroot=dotgnu-pnet&r1=1.18&r2=1.19

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/dotgnu-pnet/libjit/ChangeLog,v
retrieving revision 1.278
retrieving revision 1.279
diff -u -b -r1.278 -r1.279
--- ChangeLog   4 Nov 2006 14:57:10 -0000       1.278
+++ ChangeLog   10 Nov 2006 21:03:09 -0000      1.279
@@ -1,3 +1,7 @@
+2006-11-11  Aleksey Demakov  <address@hidden>
+
+       * jit/jit-rules-x86.ins: add JIT_OP_IABS and JIT_OP_LABS rules.
+
 2006-11-04  Aleksey Demakov  <address@hidden>
 
        * jit/jit-rules-x86.ins: make comparison opcodes use three-address

Index: jit/jit-rules-x86.ins
===================================================================
RCS file: /sources/dotgnu-pnet/libjit/jit/jit-rules-x86.ins,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- jit/jit-rules-x86.ins       4 Nov 2006 14:57:10 -0000       1.18
+++ jit/jit-rules-x86.ins       10 Nov 2006 21:03:09 -0000      1.19
@@ -1248,6 +1248,27 @@
                x86_fsqrt(inst);
        }
 
+/*
+ * Absolute, minimum, maximum, and sign.
+ */
+
+JIT_OP_IABS:
+       [reg("eax"), scratch("edx")] -> {
+               x86_cdq(inst);
+               x86_alu_reg_reg(inst, X86_XOR, $1, $2);
+               x86_alu_reg_reg(inst, X86_SUB, $1, $2);
+       }
+
+JIT_OP_LABS:
+       [lreg, scratch("?")] -> {
+               x86_mov_reg_reg(inst, $2, %1, 4);
+               x86_shift_reg_imm(inst, X86_SAR, $2, 31);
+               x86_alu_reg_reg(inst, X86_XOR, $1, $2);
+               x86_alu_reg_reg(inst, X86_XOR, %1, $2);
+               x86_alu_reg_reg(inst, X86_SUB, $1, $2);
+               x86_alu_reg_reg(inst, X86_SBB, %1, $2);
+       }
+
 JIT_OP_FABS, JIT_OP_DABS, JIT_OP_NFABS: unary, stack
        [freg] -> {
                x86_fabs(inst);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]