* config/i386/i386.md (subdi3_1): Add call to ix86_binary_operator_ok.
PR target/6981
* config/i386/i386.md (adddi3_1): Add call to ix86_binary_operator_ok.
* gcc.c-torture/execute/
20021024-1.c: New test.
From-SVN: r58497
+2002-10-22 Jim Wilson <wilson@redhat.com>
+
+ * config/i386/i386.md (subdi3_1): Add call to ix86_binary_operator_ok.
+
+2002-10-15 Jim Wilson <wilson@redhat.com>
+
+ PR target/6981
+ * config/i386/i386.md (adddi3_1): Add call to ix86_binary_operator_ok.
+
2002-10-24 Richard Henderson <rth@redhat.com>
PR opt/7944
(plus:DI (match_operand:DI 1 "nonimmediate_operand" "%0,0")
(match_operand:DI 2 "general_operand" "roiF,riF")))
(clobber (reg:CC 17))]
- "!TARGET_64BIT"
+ "!TARGET_64BIT && ix86_binary_operator_ok (PLUS, DImode, operands)"
"#")
(define_split
(minus:DI (match_operand:DI 1 "nonimmediate_operand" "0,0")
(match_operand:DI 2 "general_operand" "roiF,riF")))
(clobber (reg:CC 17))]
- "!TARGET_64BIT"
+ "!TARGET_64BIT && ix86_binary_operator_ok (MINUS, DImode, operands)"
"#")
(define_split
+2002-10-24 Jakub Jelinek <jakub@redhat.com>
+
+ * gcc.c-torture/execute/20021024-1.c: New test.
+
2002-10-23 Mark Mitchell <mark@codesourcery.com>
PR c++/8067
--- /dev/null
+/* Origin: PR target/6981 from Mattias Engdegaard <mattias@virtutech.se>. */
+
+void exit (int);
+void abort (void);
+
+unsigned long long *cp, m;
+
+void foo (void)
+{
+}
+
+void bar (unsigned rop, unsigned long long *r)
+{
+ unsigned rs1, rs2, rd;
+
+top:
+ rs2 = (rop >> 23) & 0x1ff;
+ rs1 = (rop >> 9) & 0x1ff;
+ rd = rop & 0x1ff;
+
+ *cp = 1;
+ m = r[rs1] + r[rs2];
+ *cp = 2;
+ foo();
+ if (!rd)
+ goto top;
+ r[rd] = 1;
+}
+
+int main(void)
+{
+ static unsigned long long r[64];
+ unsigned long long cr;
+ cp = &cr;
+
+ r[4] = 47;
+ r[8] = 11;
+ bar((8 << 23) | (4 << 9) | 15, r);
+
+ if (m != 47 + 11)
+ abort ();
+ exit (0);
+}