diff options
Diffstat (limited to 'm68k-unknown-amigaos/recipes/patches/gcc/gcc.config.m68k.m68k.md.p')
-rw-r--r-- | m68k-unknown-amigaos/recipes/patches/gcc/gcc.config.m68k.m68k.md.p | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/m68k-unknown-amigaos/recipes/patches/gcc/gcc.config.m68k.m68k.md.p b/m68k-unknown-amigaos/recipes/patches/gcc/gcc.config.m68k.m68k.md.p new file mode 100644 index 0000000..c63b8d5 --- /dev/null +++ b/m68k-unknown-amigaos/recipes/patches/gcc/gcc.config.m68k.m68k.md.p @@ -0,0 +1,82 @@ +--- m68k.md.orig 2005-07-26 21:32:25.000000000 +0100 ++++ gcc/config/m68k/m68k.md 2015-01-01 14:46:17.666994805 +0000 +@@ -3679,7 +3679,7 @@ + target = operand_subword_force (operands[0], 0, SFmode); + result = expand_binop (SImode, xor_optab, + operand_subword_force (operands[1], 0, SFmode), +- GEN_INT (0x80000000), target, 0, OPTAB_WIDEN); ++ GEN_INT (-2147483647 - 1), target, 0, OPTAB_WIDEN); + if (result == 0) + abort (); + +@@ -3723,7 +3723,7 @@ + target = operand_subword (operands[0], 0, 1, DFmode); + result = expand_binop (SImode, xor_optab, + operand_subword_force (operands[1], 0, DFmode), +- GEN_INT (0x80000000), target, 0, OPTAB_WIDEN); ++ GEN_INT (-2147483647 - 1), target, 0, OPTAB_WIDEN); + if (result == 0) + abort (); + +@@ -6418,7 +6418,7 @@ + (match_operand:SI 1 "general_operand" "g"))] + ;; Operand 1 not really used on the m68000. + +- "! flag_pic" ++ "(! flag_pic || flag_pic >= 3)" + { + #if MOTOROLA && !defined (USE_GAS) + return "jsr %0"; +@@ -6433,7 +6433,7 @@ + (match_operand:SI 1 "general_operand" "g"))] + ;; Operand 1 not really used on the m68000. + +- "flag_pic" ++ "(flag_pic && flag_pic < 3)" + { + m68k_output_pic_call(operands[0]); + return ""; +@@ -6460,7 +6460,7 @@ + (call (match_operand:QI 1 "memory_operand" "o") + (match_operand:SI 2 "general_operand" "g")))] + ;; Operand 2 not really used on the m68000. +- "! flag_pic" ++ "(! flag_pic || flag_pic >= 3)" + { + #if MOTOROLA && !defined (USE_GAS) + return "jsr %1"; +@@ -6475,7 +6475,7 @@ + (call (match_operand:QI 1 "memory_operand" "o") + (match_operand:SI 2 "general_operand" "g")))] + ;; Operand 2 not really used on the m68000. +- "flag_pic" ++ "(flag_pic && flag_pic < 3)" + { + m68k_output_pic_call(operands[1]); + return ""; +@@ -7170,7 +7170,7 @@ + target = operand_subword (operands[0], 0, 1, XFmode); + result = expand_binop (SImode, xor_optab, + operand_subword_force (operands[1], 0, XFmode), +- GEN_INT (0x80000000), target, 0, OPTAB_WIDEN); ++ GEN_INT (-2147483647 - 1), target, 0, OPTAB_WIDEN); + if (result == 0) + abort (); + +@@ -7334,3 +7334,16 @@ + default: abort(); + } + }) ++ ++; This is only needed for some subtargets. ++(define_expand "allocate_stack" ++ [(set (match_operand:SI 0 "register_operand" "=r") ++ (minus:SI (reg:SI 15) (match_operand:SI 1 "general_operand" ""))) ++ (set (reg:SI 15) (minus:SI (reg:SI 15) (match_dup 1)))] ++ "TARGET_ALTERNATE_ALLOCATE_STACK" ++ " ++{ ++#ifdef ALTERNATE_ALLOCATE_STACK ++ ALTERNATE_ALLOCATE_STACK(operands); ++#endif ++}") |