diff options
author | Sandra Loosemore <sandra@codesourcery.com> | 2015-07-14 18:43:46 -0400 |
---|---|---|
committer | Sandra Loosemore <sandra@gcc.gnu.org> | 2015-07-14 18:43:46 -0400 |
commit | a03c6ae38806e3ec5e017ff42471d8f6bff70a41 (patch) | |
tree | da6a85144159d95069986041158078fac30ef848 /libgcc | |
parent | 973590f32087d0b9d5330d9a14a066b18a4ca832 (diff) | |
download | gcc-a03c6ae38806e3ec5e017ff42471d8f6bff70a41.zip gcc-a03c6ae38806e3ec5e017ff42471d8f6bff70a41.tar.gz gcc-a03c6ae38806e3ec5e017ff42471d8f6bff70a41.tar.bz2 |
tramp.c (MOVHI, ORI, JMP): Conditionalize for __nios2_arch__ level.
2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
Cesar Philippidis <cesar@codesourcery.com>
Chung-Lin Tang <cltang@codesourcery.com>
libgcc/
* config/nios2/tramp.c (MOVHI, ORI, JMP): Conditionalize
for __nios2_arch__ level.
Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com>
From-SVN: r225794
Diffstat (limited to 'libgcc')
-rw-r--r-- | libgcc/ChangeLog | 7 | ||||
-rw-r--r-- | libgcc/config/nios2/tramp.c | 20 |
2 files changed, 24 insertions, 3 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 26362b3..13b3a94 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,10 @@ +2015-07-14 Sandra Loosemore <sandra@codesourcery.com> + Cesar Philippidis <cesar@codesourcery.com> + Chung-Lin Tang <cltang@codesourcery.com> + + * config/nios2/tramp.c (MOVHI, ORI, JMP): Conditionalize + for __nios2_arch__ level. + 2015-07-13 John Marino <gnugcc@marino.st> * config/i386/t-dragonfly: New. diff --git a/libgcc/config/nios2/tramp.c b/libgcc/config/nios2/tramp.c index 73473a1..e108c7a 100644 --- a/libgcc/config/nios2/tramp.c +++ b/libgcc/config/nios2/tramp.c @@ -33,13 +33,27 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #define SC_REGNO 12 -#define MOVHI(reg,imm16) \ +/* Instruction encodings depend on the ISA level. */ +#if __nios2_arch__ == 2 +#define MOVHI(reg,imm16) \ + (((reg) << 11) | ((imm16) << 16) | 0x34) +#define ORI(reg,imm16) \ + (((reg) << 11) | ((reg) << 6) | ((imm16) << 16) | 0x14) +#define JMP(reg) \ + (((reg) << 6) | (0x0d << 26) | 0x20) + +#elif __nios2_arch__ == 1 +#define MOVHI(reg,imm16) \ (((reg) << 22) | ((imm16) << 6) | 0x34) -#define ORI(reg,imm16) \ +#define ORI(reg,imm16) \ (((reg) << 27) | ((reg) << 22) | ((imm16) << 6) | 0x14) -#define JMP(reg) \ +#define JMP(reg) \ (((reg) << 27) | (0x0d << 11) | 0x3a) +#else +#error "Unknown Nios II architecture level" +#endif + void __trampoline_setup (unsigned int *addr, void *fnptr, void *chainptr) { |