aboutsummaryrefslogtreecommitdiffstats
path: root/toolchain/gcc/patches/4.2.4/903-avr32_fix_expanding_builtin_xchg.patch
diff options
context:
space:
mode:
Diffstat (limited to 'toolchain/gcc/patches/4.2.4/903-avr32_fix_expanding_builtin_xchg.patch')
-rw-r--r--toolchain/gcc/patches/4.2.4/903-avr32_fix_expanding_builtin_xchg.patch14
1 files changed, 14 insertions, 0 deletions
diff --git a/toolchain/gcc/patches/4.2.4/903-avr32_fix_expanding_builtin_xchg.patch b/toolchain/gcc/patches/4.2.4/903-avr32_fix_expanding_builtin_xchg.patch
new file mode 100644
index 0000000000..be89cd752f
--- /dev/null
+++ b/toolchain/gcc/patches/4.2.4/903-avr32_fix_expanding_builtin_xchg.patch
@@ -0,0 +1,14 @@
+Index: gcc-4.2.3/gcc/config/avr32/avr32.c
+===================================================================
+--- gcc-4.2.3.orig/gcc/config/avr32/avr32.c 2008-05-21 13:45:57.202289511 +0200
++++ gcc-4.2.3/gcc/config/avr32/avr32.c 2008-05-21 13:45:58.533289214 +0200
+@@ -1388,7 +1388,8 @@
+ op1 = copy_to_mode_reg (mode1, op1);
+ }
+
+- op0 = gen_rtx_MEM (SImode, op0);
++ op0 = force_reg (GET_MODE (op0), op0);
++ op0 = gen_rtx_MEM (GET_MODE (op0), op0);
+ if (!(*insn_data[icode].operand[1].predicate) (op0, mode0))
+ {
+ error