X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/df79e5886f7fb77a7bcba54b2e948bdfd962885c..97ae61108d5e5e6b5f0d53e2694c8ff8cafcd976:/toolchain/binutils/patches/2.18/500-avr32.patch diff --git a/toolchain/binutils/patches/2.18/500-avr32.patch b/toolchain/binutils/patches/2.18/500-avr32.patch index bc0fb43f2..40239aaf6 100644 --- a/toolchain/binutils/patches/2.18/500-avr32.patch +++ b/toolchain/binutils/patches/2.18/500-avr32.patch @@ -4362,311 +4362,6 @@ input_scrub_end (); ---- a/gas/config/bfin-aux.h -+++ b/gas/config/bfin-aux.h -@@ -1,151 +1,151 @@ --/* bfin-aux.h ADI Blackfin Header file for gas -- Copyright 2005, 2007 -- Free Software Foundation, Inc. -- -- This file is part of GAS, the GNU Assembler. -- -- GAS is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 3, or (at your option) -- any later version. -- -- GAS is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with GAS; see the file COPYING. If not, write to the Free -- Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA -- 02110-1301, USA. */ -- --#include "bfin-defs.h" -- --#define REG_T Register * -- --INSTR_T --bfin_gen_dsp32mac (int op1, int mm, int mmod, int w1, int p, -- int h01, int h11, int h00, int h10, -- int op0, REG_T dst, REG_T src0, REG_T src1, int w0); -- --INSTR_T --bfin_gen_dsp32mult (int op1, int mm, int mmod, int w1, int p, -- int h01, int h11, int h00, int h10, -- int op0, REG_T dst, REG_T src0, REG_T src1, int w0); -- --INSTR_T --bfin_gen_dsp32alu (int HL, int aopcde, int aop, int s, int x, -- REG_T dst0, REG_T dst1, REG_T src0, REG_T src1); -- --INSTR_T --bfin_gen_dsp32shift (int sopcde, REG_T dst0, REG_T src0, REG_T src1, -- int sop, int hls); -- --INSTR_T --bfin_gen_dsp32shiftimm (int sopcde, REG_T dst0, int immag, REG_T src1, -- int sop, int hls); -- --INSTR_T --bfin_gen_ldimmhalf (REG_T reg, int h, int s, int z, Expr_Node *hword, -- int reloc); -- --INSTR_T --bfin_gen_ldstidxi (REG_T ptr, REG_T reg, int w, int sz, int z, -- Expr_Node *offset); -- --INSTR_T --bfin_gen_ldst (REG_T ptr, REG_T reg, int aop, int sz, int z, int w); -- --INSTR_T --bfin_gen_ldstii (REG_T ptr, REG_T reg, Expr_Node *offset, int w, int op); -- --INSTR_T --bfin_gen_ldstiifp (REG_T reg, Expr_Node *offset, int w); -- --INSTR_T --bfin_gen_ldstpmod (REG_T ptr, REG_T reg, int aop, int w, REG_T idx); -- --INSTR_T --bfin_gen_dspldst (REG_T i, REG_T reg, int aop, int w, int m); -- --INSTR_T --bfin_gen_alu2op (REG_T dst, REG_T src, int opc); -- --INSTR_T --bfin_gen_compi2opd (REG_T dst, int src, int op); -- --INSTR_T --bfin_gen_compi2opp (REG_T dst, int src, int op); -- --INSTR_T --bfin_gen_dagmodik (REG_T i, int op); -- --INSTR_T --bfin_gen_dagmodim (REG_T i, REG_T m, int op, int br); -- --INSTR_T --bfin_gen_ptr2op (REG_T dst, REG_T src, int opc); -- --INSTR_T --bfin_gen_logi2op (int dst, int src, int opc); -- --INSTR_T --bfin_gen_comp3op (REG_T src0, REG_T src1, REG_T dst, int opc); -- --INSTR_T --bfin_gen_ccmv (REG_T src, REG_T dst, int t); -- --INSTR_T --bfin_gen_ccflag (REG_T x, int y, int opc, int i, int g); -- --INSTR_T --bfin_gen_cc2stat (int cbit, int op, int d); -- --INSTR_T --bfin_gen_regmv (REG_T src, REG_T dst); -- --INSTR_T --bfin_gen_cc2dreg (int op, REG_T reg); -- --INSTR_T --bfin_gen_brcc (int t, int b, Expr_Node *offset); -- --INSTR_T --bfin_gen_ujump (Expr_Node *offset); -- --INSTR_T --bfin_gen_cactrl (REG_T reg, int a, int op); -- --INSTR_T --bfin_gen_progctrl (int prgfunc, int poprnd); -- --INSTR_T --bfin_gen_loopsetup (Expr_Node *soffset, REG_T c, int rop, -- Expr_Node *eoffset, REG_T reg); -- --INSTR_T --bfin_gen_loop (Expr_Node *expr, REG_T reg, int rop, REG_T preg); -- --INSTR_T --bfin_gen_pushpopmultiple (int dr, int pr, int d, int p, int w); -- --INSTR_T --bfin_gen_pushpopreg (REG_T reg, int w); -- --INSTR_T --bfin_gen_calla (Expr_Node *addr, int s); -- --INSTR_T --bfin_gen_linkage (int r, int framesize); -- --INSTR_T --bfin_gen_pseudodbg (int fn, int reg, int grp); -- --INSTR_T --bfin_gen_pseudodbg_assert (int dbgop, REG_T regtest, int expected); -- --bfd_boolean --bfin_resource_conflict (INSTR_T dsp32, INSTR_T dsp16_grp1, INSTR_T dsp16_grp2); -- --INSTR_T --bfin_gen_multi_instr (INSTR_T dsp32, INSTR_T dsp16_grp1, INSTR_T dsp16_grp2); -+/* bfin-aux.h ADI Blackfin Header file for gas -+ Copyright 2005, 2007 -+ Free Software Foundation, Inc. -+ -+ This file is part of GAS, the GNU Assembler. -+ -+ GAS is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by -+ the Free Software Foundation; either version 3, or (at your option) -+ any later version. -+ -+ GAS is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ GNU General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License -+ along with GAS; see the file COPYING. If not, write to the Free -+ Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA -+ 02110-1301, USA. */ -+ -+#include "bfin-defs.h" -+ -+#define REG_T Register * -+ -+INSTR_T -+bfin_gen_dsp32mac (int op1, int mm, int mmod, int w1, int p, -+ int h01, int h11, int h00, int h10, -+ int op0, REG_T dst, REG_T src0, REG_T src1, int w0); -+ -+INSTR_T -+bfin_gen_dsp32mult (int op1, int mm, int mmod, int w1, int p, -+ int h01, int h11, int h00, int h10, -+ int op0, REG_T dst, REG_T src0, REG_T src1, int w0); -+ -+INSTR_T -+bfin_gen_dsp32alu (int HL, int aopcde, int aop, int s, int x, -+ REG_T dst0, REG_T dst1, REG_T src0, REG_T src1); -+ -+INSTR_T -+bfin_gen_dsp32shift (int sopcde, REG_T dst0, REG_T src0, REG_T src1, -+ int sop, int hls); -+ -+INSTR_T -+bfin_gen_dsp32shiftimm (int sopcde, REG_T dst0, int immag, REG_T src1, -+ int sop, int hls); -+ -+INSTR_T -+bfin_gen_ldimmhalf (REG_T reg, int h, int s, int z, Expr_Node *hword, -+ int reloc); -+ -+INSTR_T -+bfin_gen_ldstidxi (REG_T ptr, REG_T reg, int w, int sz, int z, -+ Expr_Node *offset); -+ -+INSTR_T -+bfin_gen_ldst (REG_T ptr, REG_T reg, int aop, int sz, int z, int w); -+ -+INSTR_T -+bfin_gen_ldstii (REG_T ptr, REG_T reg, Expr_Node *offset, int w, int op); -+ -+INSTR_T -+bfin_gen_ldstiifp (REG_T reg, Expr_Node *offset, int w); -+ -+INSTR_T -+bfin_gen_ldstpmod (REG_T ptr, REG_T reg, int aop, int w, REG_T idx); -+ -+INSTR_T -+bfin_gen_dspldst (REG_T i, REG_T reg, int aop, int w, int m); -+ -+INSTR_T -+bfin_gen_alu2op (REG_T dst, REG_T src, int opc); -+ -+INSTR_T -+bfin_gen_compi2opd (REG_T dst, int src, int op); -+ -+INSTR_T -+bfin_gen_compi2opp (REG_T dst, int src, int op); -+ -+INSTR_T -+bfin_gen_dagmodik (REG_T i, int op); -+ -+INSTR_T -+bfin_gen_dagmodim (REG_T i, REG_T m, int op, int br); -+ -+INSTR_T -+bfin_gen_ptr2op (REG_T dst, REG_T src, int opc); -+ -+INSTR_T -+bfin_gen_logi2op (int dst, int src, int opc); -+ -+INSTR_T -+bfin_gen_comp3op (REG_T src0, REG_T src1, REG_T dst, int opc); -+ -+INSTR_T -+bfin_gen_ccmv (REG_T src, REG_T dst, int t); -+ -+INSTR_T -+bfin_gen_ccflag (REG_T x, int y, int opc, int i, int g); -+ -+INSTR_T -+bfin_gen_cc2stat (int cbit, int op, int d); -+ -+INSTR_T -+bfin_gen_regmv (REG_T src, REG_T dst); -+ -+INSTR_T -+bfin_gen_cc2dreg (int op, REG_T reg); -+ -+INSTR_T -+bfin_gen_brcc (int t, int b, Expr_Node *offset); -+ -+INSTR_T -+bfin_gen_ujump (Expr_Node *offset); -+ -+INSTR_T -+bfin_gen_cactrl (REG_T reg, int a, int op); -+ -+INSTR_T -+bfin_gen_progctrl (int prgfunc, int poprnd); -+ -+INSTR_T -+bfin_gen_loopsetup (Expr_Node *soffset, REG_T c, int rop, -+ Expr_Node *eoffset, REG_T reg); -+ -+INSTR_T -+bfin_gen_loop (Expr_Node *expr, REG_T reg, int rop, REG_T preg); -+ -+INSTR_T -+bfin_gen_pushpopmultiple (int dr, int pr, int d, int p, int w); -+ -+INSTR_T -+bfin_gen_pushpopreg (REG_T reg, int w); -+ -+INSTR_T -+bfin_gen_calla (Expr_Node *addr, int s); -+ -+INSTR_T -+bfin_gen_linkage (int r, int framesize); -+ -+INSTR_T -+bfin_gen_pseudodbg (int fn, int reg, int grp); -+ -+INSTR_T -+bfin_gen_pseudodbg_assert (int dbgop, REG_T regtest, int expected); -+ -+bfd_boolean -+bfin_resource_conflict (INSTR_T dsp32, INSTR_T dsp16_grp1, INSTR_T dsp16_grp2); -+ -+INSTR_T -+bfin_gen_multi_instr (INSTR_T dsp32, INSTR_T dsp16_grp1, INSTR_T dsp16_grp2); --- /dev/null +++ b/gas/config/tc-avr32.c @@ -0,0 +1,4806 @@ @@ -18408,15 +18103,6 @@ extern int print_insn_bfin (bfd_vma, disassemble_info *); extern int print_insn_big_arm (bfd_vma, disassemble_info *); extern int print_insn_big_mips (bfd_vma, disassemble_info *); -@@ -242,7 +243,7 @@ extern int print_insn_little_arm (bfd_vm - extern int print_insn_little_mips (bfd_vma, disassemble_info *); - extern int print_insn_little_or32 (bfd_vma, disassemble_info *); - extern int print_insn_little_powerpc (bfd_vma, disassemble_info *); --extern int print_insn_little_score (bfd_vma, disassemble_info *); -+extern int print_insn_little_score (bfd_vma, disassemble_info *); - extern int print_insn_m32c (bfd_vma, disassemble_info *); - extern int print_insn_m32r (bfd_vma, disassemble_info *); - extern int print_insn_m68hc11 (bfd_vma, disassemble_info *); @@ -290,7 +291,9 @@ extern void print_i386_disassembler_opti extern void print_mips_disassembler_options (FILE *); extern void print_ppc_disassembler_options (FILE *); @@ -19673,162 +19359,6 @@ + ${RELOCATING+${STACKNOTE}} +} +EOF ---- a/ld/testsuite/ld-auto-import/client.c -+++ b/ld/testsuite/ld-auto-import/client.c -@@ -1,55 +1,55 @@ --#include -- --extern int var; --extern void (*func_ptr)(void); --extern void print_var (void); --extern void print_foo (void); --extern int foo; --extern int var2[2]; -- --typedef struct --{ -- int * var; -- void (* func_ptr)(void); --} --TEST; -- --TEST xyz = { &var, print_var }; -- --int --main (void) --{ -- print_var (); -- -- printf ("We see var = %d\n", var); -- printf ("Setting var = 456\n"); -- -- var = 456; -- -- print_var (); -- printf ("We see var = %d\n\n", var); -- -- var = 90; -- print_var (); -- printf ("We see var = %d\n\n", var); -- -- print_foo (); -- printf ("We see foo = %d\n", foo); -- printf ("Setting foo = 19\n"); -- foo = 19; -- print_foo (); -- printf ("We see foo = %d\n\n", foo); -- fflush (stdout); -- -- printf ("Calling dllimported function pointer\n"); -- func_ptr (); -- -- printf ("Calling functions using global structure\n"); -- xyz.func_ptr (); -- * xyz.var = 40; -- xyz.func_ptr (); -- -- printf ("We see var2[0] = %d\n\n", var2[0]); -- -- return 0; --} -+#include -+ -+extern int var; -+extern void (*func_ptr)(void); -+extern void print_var (void); -+extern void print_foo (void); -+extern int foo; -+extern int var2[2]; -+ -+typedef struct -+{ -+ int * var; -+ void (* func_ptr)(void); -+} -+TEST; -+ -+TEST xyz = { &var, print_var }; -+ -+int -+main (void) -+{ -+ print_var (); -+ -+ printf ("We see var = %d\n", var); -+ printf ("Setting var = 456\n"); -+ -+ var = 456; -+ -+ print_var (); -+ printf ("We see var = %d\n\n", var); -+ -+ var = 90; -+ print_var (); -+ printf ("We see var = %d\n\n", var); -+ -+ print_foo (); -+ printf ("We see foo = %d\n", foo); -+ printf ("Setting foo = 19\n"); -+ foo = 19; -+ print_foo (); -+ printf ("We see foo = %d\n\n", foo); -+ fflush (stdout); -+ -+ printf ("Calling dllimported function pointer\n"); -+ func_ptr (); -+ -+ printf ("Calling functions using global structure\n"); -+ xyz.func_ptr (); -+ * xyz.var = 40; -+ xyz.func_ptr (); -+ -+ printf ("We see var2[0] = %d\n\n", var2[0]); -+ -+ return 0; -+} ---- a/ld/testsuite/ld-auto-import/dll.c -+++ b/ld/testsuite/ld-auto-import/dll.c -@@ -1,20 +1,20 @@ --int var = 123; --int foo = 121; -- --int var2[2]= { 123, 456 }; -- --#include -- --void --print_var (void) --{ -- printf ("DLL sees var = %d\n", var); --} -- --void --print_foo (void) --{ -- printf ("DLL sees foo = %d\n", foo); --} -- --void (* func_ptr)(void) = print_foo; -+int var = 123; -+int foo = 121; -+ -+int var2[2]= { 123, 456 }; -+ -+#include -+ -+void -+print_var (void) -+{ -+ printf ("DLL sees var = %d\n", var); -+} -+ -+void -+print_foo (void) -+{ -+ printf ("DLL sees foo = %d\n", foo); -+} -+ -+void (* func_ptr)(void) = print_foo; --- /dev/null +++ b/ld/testsuite/ld-avr32/avr32.exp @@ -0,0 +1,25 @@