diff options
Diffstat (limited to 'gcc/config/pa')
-rw-r--r-- | gcc/config/pa/pa-linux.h | 3 | ||||
-rw-r--r-- | gcc/config/pa/pa.c | 6 | ||||
-rw-r--r-- | gcc/config/pa/pa.md | 12 |
3 files changed, 15 insertions, 6 deletions
diff --git a/gcc/config/pa/pa-linux.h b/gcc/config/pa/pa-linux.h index fd4d22a7aad..c20c7ccd02f 100644 --- a/gcc/config/pa/pa-linux.h +++ b/gcc/config/pa/pa-linux.h @@ -22,6 +22,9 @@ along with GCC; see the file COPYING3. If not see #define TARGET_OS_CPP_BUILTINS() \ do \ { \ + builtin_define ("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1"); \ + builtin_define ("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2"); \ + builtin_define ("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4"); \ GNU_USER_TARGET_OS_CPP_BUILTINS(); \ builtin_assert ("machine=bigendian"); \ } \ diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index b6f54108214..260830f00d7 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -513,6 +513,12 @@ pa_option_override (void) write_symbols = NO_DEBUG; } +#ifdef AUTO_INC_DEC + /* FIXME: Disable auto increment and decrement processing until reload + is completed. See PR middle-end 56791. */ + flag_auto_inc_dec = reload_completed; +#endif + /* We only support the "big PIC" model now. And we always generate PIC code when in 64bit mode. */ if (flag_pic == 1 || TARGET_64BIT) diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md index 80c4d43401d..c990950f111 100644 --- a/gcc/config/pa/pa.md +++ b/gcc/config/pa/pa.md @@ -836,7 +836,7 @@ [(match_operand:SI 1 "reg_or_0_operand" "rM") (match_operand:SI 2 "arith11_operand" "rI")]))] "" - "{com%I2clr|cmp%I2clr},%B3 %2,%1,%0\;ldi 1,%0" + "{com%I2clr|cmp%I2clr},%B3 %2,%r1,%0\;ldi 1,%0" [(set_attr "type" "binary") (set_attr "length" "8")]) @@ -846,7 +846,7 @@ [(match_operand:DI 1 "reg_or_0_operand" "rM") (match_operand:DI 2 "arith11_operand" "rI")]))] "TARGET_64BIT" - "cmp%I2clr,*%B3 %2,%1,%0\;ldi 1,%0" + "cmp%I2clr,*%B3 %2,%r1,%0\;ldi 1,%0" [(set_attr "type" "binary") (set_attr "length" "8")]) @@ -859,7 +859,7 @@ [(match_operand:SI 4 "reg_or_0_operand" "rM") (match_operand:SI 5 "arith11_operand" "rI")])))] "" - "{com%I2clr|cmp%I2clr},%S3 %2,%1,%%r0\;{com%I5clr|cmp%I5clr},%B6 %5,%4,%0\;ldi 1,%0" + "{com%I2clr|cmp%I2clr},%S3 %2,%r1,%%r0\;{com%I5clr|cmp%I5clr},%B6 %5,%r4,%0\;ldi 1,%0" [(set_attr "type" "binary") (set_attr "length" "12")]) @@ -872,7 +872,7 @@ [(match_operand:DI 4 "reg_or_0_operand" "rM") (match_operand:DI 5 "arith11_operand" "rI")])))] "TARGET_64BIT" - "cmp%I2clr,*%S3 %2,%1,%%r0\;cmp%I5clr,*%B6 %5,%4,%0\;ldi 1,%0" + "cmp%I2clr,*%S3 %2,%r1,%%r0\;cmp%I5clr,*%B6 %5,%r4,%0\;ldi 1,%0" [(set_attr "type" "binary") (set_attr "length" "12")]) @@ -884,7 +884,7 @@ [(match_operand:SI 1 "reg_or_0_operand" "rM") (match_operand:SI 2 "arith11_operand" "rI")])))] "" - "{com%I2clr|cmp%I2clr},%B3 %2,%1,%0\;ldi -1,%0" + "{com%I2clr|cmp%I2clr},%B3 %2,%r1,%0\;ldi -1,%0" [(set_attr "type" "binary") (set_attr "length" "8")]) @@ -894,7 +894,7 @@ [(match_operand:DI 1 "reg_or_0_operand" "rM") (match_operand:DI 2 "arith11_operand" "rI")])))] "TARGET_64BIT" - "cmp%I2clr,*%B3 %2,%1,%0\;ldi -1,%0" + "cmp%I2clr,*%B3 %2,%r1,%0\;ldi -1,%0" [(set_attr "type" "binary") (set_attr "length" "8")]) |