OSDN Git Service

* pa.h (HARD_REGNO_MODE_OK): Do not accept integer modes
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 5 Apr 1993 00:18:07 +0000 (00:18 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 5 Apr 1993 00:18:07 +0000 (00:18 +0000)
greater than 32 bits in 1.0 FP registers.
* pa.md (movdi patterns): Do not accept 1.0 FP registers.
(floatunsdisf, floatunsdidf expanders): Disable unless TARGET_SNAKE.
(floatdisf2, floatdidf2 patterns): Likewise.
(fix_truncdisf2, fix_truncdidf2): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@4017 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/config/pa/pa.h

index 8a65f74..64067cc 100644 (file)
@@ -404,7 +404,9 @@ extern int target_flags;
 #define HARD_REGNO_MODE_OK(REGNO, MODE) \
   ((REGNO) == 0 ? (MODE) == CCmode || (MODE) == CCFPmode               \
    : (REGNO) < 32 ? ((GET_MODE_SIZE (MODE) <= 4) ? 1 : ((REGNO) & 1) == 0)\
-   : (REGNO) < 44 ? (GET_MODE_SIZE (MODE) >= 4)                                \
+   : (REGNO) < 44 ? (GET_MODE_SIZE (MODE) == 4                         \
+                    || (GET_MODE_SIZE (MODE) > 4                       \
+                        && GET_MODE_CLASS (MODE) == MODE_FLOAT))       \
    : (GET_MODE_SIZE (MODE) > 4 ? ((REGNO) & 1) == 0                    \
       : 1))