2013-02-06 Sandra Loosemore <sandra@codesourcery.com>
Andrew Jenner <andrew@codesourcery.com> Based on patches from Altera Corporation. bfd/ * Makefile.am (ALL_MACHINES): Add cpu-nios2.lo. (ALL_MACHINES_CFILES): Add cpu-nios2.c. (BFD_BACKENDS): Add elf32-nios2.lo. (BFD32_BACKENDS_CFILES): Add elf32-nios2.c. * Makefile.in: Regenerated. * configure.in: Add entries for bfd_elf32_bignios2_vec and bfd_elf32_littlenios2_vec. * configure: Regenerated. * config.bfd: Add cases for nios2. * archures.c (enum bfd_architecture): Add bfd_arch_nios2. (bfd_mach_nios2): Define. (bfd_nios2_arch): Declare. (bfd_archures_list): Add bfd_nios2_arch. * targets.c (bfd_elf32_bignios2_vec): Declare. (bfd_elf32_littlenios2_vec): Declare. (_bfd_target_vector): Add entries for bfd_elf32_bignios2_vec and bfd_elf32_littlenios2_vec. * elf-bfd.h (enum elf_target_id): Add NIOS2_ELF_DATA. * reloc.c (enum bfd_reloc_code_real): Add Nios II relocations. * bfd-in2.h: Regenerated. * libbfd.h: Regenerated. * cpu-nios2.c: New file. * elf32-nios2.c: New file. opcodes/ * Makefile.am (TARGET_LIBOPCODES_CFILES): Add nios2-dis.c and nios2-opc.c. * Makefile.in: Regenerated. * configure.in: Add case for bfd_nios2_arch. * configure: Regenerated. * disassemble.c (ARCH_nios2): Define. (disassembler): Add case for bfd_arch_nios2. * nios2-dis.c: New file. * nios2-opc.c: New file. include/ * dis-asm.h (print_insn_big_nios2): Declare. (print_insn_little_nios2): Declare. include/elf * nios2.h: New file. include/opcode/ * nios2.h: New file. gas/ * Makefile.am (TARGET_CPU_CFILES): Add config/tc-nios2.c. (TARGET_CPU_HFILES): Add config/tc-nios2.h. * Makefile.in: Regenerated. * configure.tgt: Add case for nios2*-linux*. * config/obj-elf.c: Conditionally include elf/nios2.h. * config/tc-nios2.c: New file. * config/tc-nios2.h: New file. * doc/Makefile.am (CPU_DOCS): Add c-nios2.texi. * doc/Makefile.in: Regenerated. * doc/all.texi: Set NIOSII. * doc/as.texinfo (Overview): Add Nios II options. (Machine Dependencies): Include c-nios2.texi. * doc/c-nios2.texi: New file. * NEWS: Note Altera Nios II support. gas/testsuite/ * gas/nios2/add.d: New. * gas/nios2/add.s: New. * gas/nios2/align_fill.d: New. * gas/nios2/align_fill.s: New. * gas/nios2/align_text.d: New. * gas/nios2/align_text.s: New. * gas/nios2/and.d: New. * gas/nios2/and.s: New. * gas/nios2/branch.d: New. * gas/nios2/branch.s: New. * gas/nios2/break.d: New. * gas/nios2/break.s: New. * gas/nios2/bret.d: New. * gas/nios2/bret.s: New. * gas/nios2/cache.d: New. * gas/nios2/cache.s: New. * gas/nios2/call26.d: New. * gas/nios2/call26.s: New. * gas/nios2/call.d: New. * gas/nios2/call.s: New. * gas/nios2/cmp.d: New. * gas/nios2/cmp.s: New. * gas/nios2/comments.d: New. * gas/nios2/comments.s: New. * gas/nios2/complex.d: New. * gas/nios2/complex.s: New. * gas/nios2/ctl.d: New. * gas/nios2/ctl.s: New. * gas/nios2/custom.d: New. * gas/nios2/custom.s: New. * gas/nios2/etbt.d: New. * gas/nios2/etbt.s: New. * gas/nios2/flushda.d: New. * gas/nios2/flushda.s: New. * gas/nios2/illegal.l: New. * gas/nios2/illegal.s: New. * gas/nios2/jmp.d: New. * gas/nios2/jmp.s: New. * gas/nios2/ldb.d: New. * gas/nios2/ldb.s: New. * gas/nios2/ldh.d: New. * gas/nios2/ldh.s: New. * gas/nios2/ldw.d: New. * gas/nios2/ldw.s: New. * gas/nios2/lineseparator.d: New. * gas/nios2/lineseparator.s: New. * gas/nios2/mov.d: New. * gas/nios2/movia.d: New. * gas/nios2/movia.s: New. * gas/nios2/movi.d: New. * gas/nios2/movi.s: New. * gas/nios2/mov.s: New. * gas/nios2/mul.d: New. * gas/nios2/mul.s: New. * gas/nios2/nios2.exp: New. * gas/nios2/nor.d: New. * gas/nios2/nor.s: New. * gas/nios2/or.d: New. * gas/nios2/or.s: New. * gas/nios2/ret.d: New. * gas/nios2/ret.s: New. * gas/nios2/rol.d: New. * gas/nios2/rol.s: New. * gas/nios2/rotate.d: New. * gas/nios2/rotate.s: New. * gas/nios2/stb.d: New. * gas/nios2/stb.s: New. * gas/nios2/sth.d: New. * gas/nios2/sth.s: New. * gas/nios2/stw.d: New. * gas/nios2/stw.s: New. * gas/nios2/sub.d: New. * gas/nios2/sub.s: New. * gas/nios2/sync.d: New. * gas/nios2/sync.s: New. * gas/nios2/trap.d: New. * gas/nios2/trap.s: New. * gas/nios2/tret.d: New. * gas/nios2/tret.s: New. * gas/nios2/warn_noat.l: New. * gas/nios2/warn_noat.s: New. * gas/nios2/warn_nobreak.l: New. * gas/nios2/warn_nobreak.s: New. * gas/nios2/xor.d: New. * gas/nios2/xor.s: New. ld/ * Makefile.am (enios2elf.c): New rule. * Makefile.in: Regenerated. * configure.tgt: Add case for nios2*-*-*. * emulparams/nios2elf.sh: New file. * NEWS: Note Altera Nios II support. ld/testsuite/ * ld-nios2/emit-relocs-1a.s: New. * ld-nios2/emit-relocs-1b.s: New. * ld-nios2/emit-relocs-1.d: New. * ld-nios2/emit-relocs-1.ld: New. * ld-nios2/gprel.d: New. * ld-nios2/gprel.s: New. * ld-nios2/hilo16.d: New. * ld-nios2/hilo16.s: New. * ld-nios2/hilo16_symbol.s: New. * ld-nios2/imm5.d: New. * ld-nios2/imm5.s: New. * ld-nios2/imm5_symbol.s: New. * ld-nios2/nios2.exp: New. * ld-nios2/pcrel16.d: New. * ld-nios2/pcrel16_label.s: New. * ld-nios2/pcrel16.s: New. * ld-nios2/relax_callr.d: New. * ld-nios2/relax_callr.ld: New. * ld-nios2/relax_callr.s: New. * ld-nios2/relax_cjmp.d: New. * ld-nios2/relax_cjmp.s: New. * ld-nios2/relax_jmp.ld: New. * ld-nios2/relax_section.d: New. * ld-nios2/relax_section.s: New. * ld-nios2/relax_ujmp.d: New. * ld-nios2/relax_ujmp.s: New. * ld-nios2/reloc.d: New. * ld-nios2/reloc.s: New. * ld-nios2/reloc_symbol.s: New. * ld-nios2/s16.d: New. * ld-nios2/s16.s: New. * ld-nios2/s16_symbol.s: New. * ld-nios2/u16.d: New. * ld-nios2/u16.s: New. * ld-nios2/u16_symbol.s: New. * ld-elf/indirect.exp: Skip on targets that don't support -shared -fPIC. * ld-elfcomm/elfcomm.exp: Build with -G0 for nios2. * ld-plugin/lto.exp: Skip shared library tests on targets that don't support them. Skip execution tests on non-native targets. binutils/ * readelf.c: Include elf/nios2.h. (dump_relocations): Add case for EM_ALTERA_NIOS2. (get_nios2_dynamic_type): New. (get_dynamic_type): Add case for EM_ALTERA_NIOS2. (is_32bit_abs_reloc): Fix EM_ALTERA_NIOS2 case. (is_16bit_abs_reloc): Likewise. (is_none_reloc): Add EM_ALTERA_NIOS2 and EM_NIOS32 cases. * NEWS: Note Altera Nios II support. * MAINTAINERS: Add Nios II maintainers.
This commit is contained in:
parent
574b0b3165
commit
36591ba149
176 changed files with 13183 additions and 4 deletions
|
@ -1,3 +1,32 @@
|
|||
2013-02-06 Sandra Loosemore <sandra@codesourcery.com>
|
||||
Andrew Jenner <andrew@codesourcery.com>
|
||||
|
||||
Based on patches from Altera Corporation.
|
||||
|
||||
* Makefile.am (ALL_MACHINES): Add cpu-nios2.lo.
|
||||
(ALL_MACHINES_CFILES): Add cpu-nios2.c.
|
||||
(BFD_BACKENDS): Add elf32-nios2.lo.
|
||||
(BFD32_BACKENDS_CFILES): Add elf32-nios2.c.
|
||||
* Makefile.in: Regenerated.
|
||||
* configure.in: Add entries for bfd_elf32_bignios2_vec and
|
||||
bfd_elf32_littlenios2_vec.
|
||||
* configure: Regenerated.
|
||||
* config.bfd: Add cases for nios2.
|
||||
* archures.c (enum bfd_architecture): Add bfd_arch_nios2.
|
||||
(bfd_mach_nios2): Define.
|
||||
(bfd_nios2_arch): Declare.
|
||||
(bfd_archures_list): Add bfd_nios2_arch.
|
||||
* targets.c (bfd_elf32_bignios2_vec): Declare.
|
||||
(bfd_elf32_littlenios2_vec): Declare.
|
||||
(_bfd_target_vector): Add entries for bfd_elf32_bignios2_vec and
|
||||
bfd_elf32_littlenios2_vec.
|
||||
* elf-bfd.h (enum elf_target_id): Add NIOS2_ELF_DATA.
|
||||
* reloc.c (enum bfd_reloc_code_real): Add Nios II relocations.
|
||||
* bfd-in2.h: Regenerated.
|
||||
* libbfd.h: Regenerated.
|
||||
* cpu-nios2.c: New file.
|
||||
* elf32-nios2.c: New file.
|
||||
|
||||
2013-02-06 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* elf32-arm.c (elf32_arm_final_link_relocate): Only test for
|
||||
|
|
|
@ -136,6 +136,7 @@ ALL_MACHINES = \
|
|||
cpu-moxie.lo \
|
||||
cpu-msp430.lo \
|
||||
cpu-mt.lo \
|
||||
cpu-nios2.lo \
|
||||
cpu-ns32k.lo \
|
||||
cpu-openrisc.lo \
|
||||
cpu-or32.lo \
|
||||
|
@ -220,6 +221,7 @@ ALL_MACHINES_CFILES = \
|
|||
cpu-msp430.c \
|
||||
cpu-mt.c \
|
||||
cpu-ns32k.c \
|
||||
cpu-nios2.c \
|
||||
cpu-openrisc.c \
|
||||
cpu-or32.c \
|
||||
cpu-pdp11.c \
|
||||
|
@ -348,6 +350,7 @@ BFD32_BACKENDS = \
|
|||
elf32-moxie.lo \
|
||||
elf32-msp430.lo \
|
||||
elf32-mt.lo \
|
||||
elf32-nios2.lo \
|
||||
elf32-openrisc.lo \
|
||||
elf32-or32.lo \
|
||||
elf32-pj.lo \
|
||||
|
@ -537,6 +540,7 @@ BFD32_BACKENDS_CFILES = \
|
|||
elf32-moxie.c \
|
||||
elf32-msp430.c \
|
||||
elf32-mt.c \
|
||||
elf32-nios2.c \
|
||||
elf32-openrisc.c \
|
||||
elf32-or32.c \
|
||||
elf32-pj.c \
|
||||
|
|
|
@ -437,6 +437,7 @@ ALL_MACHINES = \
|
|||
cpu-moxie.lo \
|
||||
cpu-msp430.lo \
|
||||
cpu-mt.lo \
|
||||
cpu-nios2.lo \
|
||||
cpu-ns32k.lo \
|
||||
cpu-openrisc.lo \
|
||||
cpu-or32.lo \
|
||||
|
@ -521,6 +522,7 @@ ALL_MACHINES_CFILES = \
|
|||
cpu-msp430.c \
|
||||
cpu-mt.c \
|
||||
cpu-ns32k.c \
|
||||
cpu-nios2.c \
|
||||
cpu-openrisc.c \
|
||||
cpu-or32.c \
|
||||
cpu-pdp11.c \
|
||||
|
@ -650,6 +652,7 @@ BFD32_BACKENDS = \
|
|||
elf32-moxie.lo \
|
||||
elf32-msp430.lo \
|
||||
elf32-mt.lo \
|
||||
elf32-nios2.lo \
|
||||
elf32-openrisc.lo \
|
||||
elf32-or32.lo \
|
||||
elf32-pj.lo \
|
||||
|
@ -839,6 +842,7 @@ BFD32_BACKENDS_CFILES = \
|
|||
elf32-moxie.c \
|
||||
elf32-msp430.c \
|
||||
elf32-mt.c \
|
||||
elf32-nios2.c \
|
||||
elf32-openrisc.c \
|
||||
elf32-or32.c \
|
||||
elf32-pj.c \
|
||||
|
@ -1345,6 +1349,7 @@ distclean-compile:
|
|||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-moxie.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-msp430.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-mt.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-nios2.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-ns32k.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-openrisc.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-or32.Plo@am__quote@
|
||||
|
@ -1433,6 +1438,7 @@ distclean-compile:
|
|||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-moxie.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-msp430.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-mt.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-nios2.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-openrisc.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-or32.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-pj.Plo@am__quote@
|
||||
|
|
|
@ -468,6 +468,8 @@ DESCRIPTION
|
|||
.#define bfd_mach_tilegx32 2
|
||||
. bfd_arch_aarch64, {* AArch64 *}
|
||||
.#define bfd_mach_aarch64 0
|
||||
. bfd_arch_nios2,
|
||||
.#define bfd_mach_nios2 0
|
||||
. bfd_arch_last
|
||||
. };
|
||||
*/
|
||||
|
@ -560,6 +562,7 @@ extern const bfd_arch_info_type bfd_mn10300_arch;
|
|||
extern const bfd_arch_info_type bfd_moxie_arch;
|
||||
extern const bfd_arch_info_type bfd_msp430_arch;
|
||||
extern const bfd_arch_info_type bfd_mt_arch;
|
||||
extern const bfd_arch_info_type bfd_nios2_arch;
|
||||
extern const bfd_arch_info_type bfd_ns32k_arch;
|
||||
extern const bfd_arch_info_type bfd_openrisc_arch;
|
||||
extern const bfd_arch_info_type bfd_or32_arch;
|
||||
|
@ -648,6 +651,7 @@ static const bfd_arch_info_type * const bfd_archures_list[] =
|
|||
&bfd_moxie_arch,
|
||||
&bfd_msp430_arch,
|
||||
&bfd_mt_arch,
|
||||
&bfd_nios2_arch,
|
||||
&bfd_ns32k_arch,
|
||||
&bfd_openrisc_arch,
|
||||
&bfd_or32_arch,
|
||||
|
|
|
@ -2199,6 +2199,8 @@ enum bfd_architecture
|
|||
#define bfd_mach_tilegx32 2
|
||||
bfd_arch_aarch64, /* AArch64 */
|
||||
#define bfd_mach_aarch64 0
|
||||
bfd_arch_nios2,
|
||||
#define bfd_mach_nios2 0
|
||||
bfd_arch_last
|
||||
};
|
||||
|
||||
|
@ -4913,6 +4915,42 @@ a matching LO8XG part. */
|
|||
BFD_RELOC_MSP430_2X_PCREL,
|
||||
BFD_RELOC_MSP430_RL_PCREL,
|
||||
|
||||
/* Relocations used by the Altera Nios II core. */
|
||||
BFD_RELOC_NIOS2_S16,
|
||||
BFD_RELOC_NIOS2_U16,
|
||||
BFD_RELOC_NIOS2_CALL26,
|
||||
BFD_RELOC_NIOS2_IMM5,
|
||||
BFD_RELOC_NIOS2_CACHE_OPX,
|
||||
BFD_RELOC_NIOS2_IMM6,
|
||||
BFD_RELOC_NIOS2_IMM8,
|
||||
BFD_RELOC_NIOS2_HI16,
|
||||
BFD_RELOC_NIOS2_LO16,
|
||||
BFD_RELOC_NIOS2_HIADJ16,
|
||||
BFD_RELOC_NIOS2_GPREL,
|
||||
BFD_RELOC_NIOS2_UJMP,
|
||||
BFD_RELOC_NIOS2_CJMP,
|
||||
BFD_RELOC_NIOS2_CALLR,
|
||||
BFD_RELOC_NIOS2_ALIGN,
|
||||
BFD_RELOC_NIOS2_GOT16,
|
||||
BFD_RELOC_NIOS2_CALL16,
|
||||
BFD_RELOC_NIOS2_GOTOFF_LO,
|
||||
BFD_RELOC_NIOS2_GOTOFF_HA,
|
||||
BFD_RELOC_NIOS2_PCREL_LO,
|
||||
BFD_RELOC_NIOS2_PCREL_HA,
|
||||
BFD_RELOC_NIOS2_TLS_GD16,
|
||||
BFD_RELOC_NIOS2_TLS_LDM16,
|
||||
BFD_RELOC_NIOS2_TLS_LDO16,
|
||||
BFD_RELOC_NIOS2_TLS_IE16,
|
||||
BFD_RELOC_NIOS2_TLS_LE16,
|
||||
BFD_RELOC_NIOS2_TLS_DTPMOD,
|
||||
BFD_RELOC_NIOS2_TLS_DTPREL,
|
||||
BFD_RELOC_NIOS2_TLS_TPREL,
|
||||
BFD_RELOC_NIOS2_COPY,
|
||||
BFD_RELOC_NIOS2_GLOB_DAT,
|
||||
BFD_RELOC_NIOS2_JUMP_SLOT,
|
||||
BFD_RELOC_NIOS2_RELATIVE,
|
||||
BFD_RELOC_NIOS2_GOTOFF,
|
||||
|
||||
/* IQ2000 Relocations. */
|
||||
BFD_RELOC_IQ2000_OFFSET_16,
|
||||
BFD_RELOC_IQ2000_OFFSET_21,
|
||||
|
|
|
@ -109,6 +109,7 @@ m68*) targ_archs=bfd_m68k_arch ;;
|
|||
m88*) targ_archs=bfd_m88k_arch ;;
|
||||
microblaze*) targ_archs=bfd_microblaze_arch ;;
|
||||
mips*) targ_archs=bfd_mips_arch ;;
|
||||
nios2*) targ_archs=bfd_nios2_arch ;;
|
||||
or32*) targ_archs=bfd_or32_arch ;;
|
||||
pdp11*) targ_archs=bfd_pdp11_arch ;;
|
||||
pj*) targ_archs="bfd_pj_arch bfd_i386_arch";;
|
||||
|
@ -1144,6 +1145,21 @@ case "${targ}" in
|
|||
targ_underscore=yes
|
||||
;;
|
||||
|
||||
nios2eb-*-*)
|
||||
targ_defvec=bfd_elf32_bignios2_vec
|
||||
targ_selvecs=bfd_elf32_littlenios2_vec
|
||||
;;
|
||||
|
||||
nios2el-*-*)
|
||||
targ_defvec=bfd_elf32_littlenios2_vec
|
||||
targ_selvecs=bfd_elf32_bignios2_vec
|
||||
;;
|
||||
|
||||
nios2-*-*)
|
||||
targ_defvec=bfd_elf32_littlenios2_vec
|
||||
targ_selvecs=bfd_elf32_bignios2_vec
|
||||
;;
|
||||
|
||||
openrisc-*-elf)
|
||||
targ_defvec=bfd_elf32_openrisc_vec
|
||||
;;
|
||||
|
|
2
bfd/configure
vendored
2
bfd/configure
vendored
|
@ -15228,6 +15228,7 @@ do
|
|||
bfd_elf32_bigmips_vxworks_vec)
|
||||
tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
|
||||
bfd_elf32_bigmoxie_vec) tb="$tb elf32-moxie.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_bignios2_vec) tb="$tb elf32-nios2.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_cr16_vec) tb="$tb elf32-cr16.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_cr16c_vec) tb="$tb elf32-cr16c.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_cris_vec) tb="$tb elf32-cris.lo elf32.lo $elf" ;;
|
||||
|
@ -15270,6 +15271,7 @@ do
|
|||
bfd_elf32_littlemips_vxworks_vec)
|
||||
tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
|
||||
bfd_elf32_littlemoxie_vec) tb="$tb elf32-moxie.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_littlenios2_vec) tb="$tb elf32-nios2.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_m32c_vec) tb="$tb elf32-m32c.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_m32r_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_m32rle_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
|
||||
|
|
|
@ -725,6 +725,7 @@ do
|
|||
bfd_elf32_bigmips_vxworks_vec)
|
||||
tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
|
||||
bfd_elf32_bigmoxie_vec) tb="$tb elf32-moxie.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_bignios2_vec) tb="$tb elf32-nios2.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_cr16_vec) tb="$tb elf32-cr16.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_cr16c_vec) tb="$tb elf32-cr16c.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_cris_vec) tb="$tb elf32-cris.lo elf32.lo $elf" ;;
|
||||
|
@ -767,6 +768,7 @@ do
|
|||
bfd_elf32_littlemips_vxworks_vec)
|
||||
tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
|
||||
bfd_elf32_littlemoxie_vec) tb="$tb elf32-moxie.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_littlenios2_vec) tb="$tb elf32-nios2.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_m32c_vec) tb="$tb elf32-m32c.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_m32r_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_m32rle_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
|
||||
|
|
44
bfd/cpu-nios2.c
Normal file
44
bfd/cpu-nios2.c
Normal file
|
@ -0,0 +1,44 @@
|
|||
/* BFD support for the Altera Nios II processor.
|
||||
Copyright (C) 2012, 2013 Free Software Foundation, Inc.
|
||||
Contributed by Nigel Gray (ngray@altera.com).
|
||||
Contributed by Mentor Graphics, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
This program 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 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
|
||||
MA 02110-1301, USA. */
|
||||
|
||||
#include "sysdep.h"
|
||||
#include "bfd.h"
|
||||
#include "libbfd.h"
|
||||
|
||||
#define N(BITS_WORD, BITS_ADDR, NUMBER, PRINT, DEFAULT, NEXT) \
|
||||
{ \
|
||||
BITS_WORD, /* bits in a word */ \
|
||||
BITS_ADDR, /* bits in an address */ \
|
||||
8, /* 8 bits in a byte */ \
|
||||
bfd_arch_nios2, \
|
||||
NUMBER, \
|
||||
"nios2", \
|
||||
PRINT, \
|
||||
3, \
|
||||
DEFAULT, \
|
||||
bfd_default_compatible, \
|
||||
bfd_default_scan, \
|
||||
bfd_arch_default_fill, \
|
||||
NEXT \
|
||||
}
|
||||
|
||||
const bfd_arch_info_type bfd_nios2_arch = N (32, 32, 0, "nios2", TRUE, NULL);
|
|
@ -421,6 +421,7 @@ enum elf_target_id
|
|||
MICROBLAZE_ELF_DATA,
|
||||
MIPS_ELF_DATA,
|
||||
MN10300_ELF_DATA,
|
||||
NIOS2_ELF_DATA,
|
||||
PPC32_ELF_DATA,
|
||||
PPC64_ELF_DATA,
|
||||
S390_ELF_DATA,
|
||||
|
|
4141
bfd/elf32-nios2.c
Normal file
4141
bfd/elf32-nios2.c
Normal file
File diff suppressed because it is too large
Load diff
34
bfd/libbfd.h
34
bfd/libbfd.h
|
@ -2370,6 +2370,40 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
|
|||
"BFD_RELOC_MSP430_16_BYTE",
|
||||
"BFD_RELOC_MSP430_2X_PCREL",
|
||||
"BFD_RELOC_MSP430_RL_PCREL",
|
||||
"BFD_RELOC_NIOS2_S16",
|
||||
"BFD_RELOC_NIOS2_U16",
|
||||
"BFD_RELOC_NIOS2_CALL26",
|
||||
"BFD_RELOC_NIOS2_IMM5",
|
||||
"BFD_RELOC_NIOS2_CACHE_OPX",
|
||||
"BFD_RELOC_NIOS2_IMM6",
|
||||
"BFD_RELOC_NIOS2_IMM8",
|
||||
"BFD_RELOC_NIOS2_HI16",
|
||||
"BFD_RELOC_NIOS2_LO16",
|
||||
"BFD_RELOC_NIOS2_HIADJ16",
|
||||
"BFD_RELOC_NIOS2_GPREL",
|
||||
"BFD_RELOC_NIOS2_UJMP",
|
||||
"BFD_RELOC_NIOS2_CJMP",
|
||||
"BFD_RELOC_NIOS2_CALLR",
|
||||
"BFD_RELOC_NIOS2_ALIGN",
|
||||
"BFD_RELOC_NIOS2_GOT16",
|
||||
"BFD_RELOC_NIOS2_CALL16",
|
||||
"BFD_RELOC_NIOS2_GOTOFF_LO",
|
||||
"BFD_RELOC_NIOS2_GOTOFF_HA",
|
||||
"BFD_RELOC_NIOS2_PCREL_LO",
|
||||
"BFD_RELOC_NIOS2_PCREL_HA",
|
||||
"BFD_RELOC_NIOS2_TLS_GD16",
|
||||
"BFD_RELOC_NIOS2_TLS_LDM16",
|
||||
"BFD_RELOC_NIOS2_TLS_LDO16",
|
||||
"BFD_RELOC_NIOS2_TLS_IE16",
|
||||
"BFD_RELOC_NIOS2_TLS_LE16",
|
||||
"BFD_RELOC_NIOS2_TLS_DTPMOD",
|
||||
"BFD_RELOC_NIOS2_TLS_DTPREL",
|
||||
"BFD_RELOC_NIOS2_TLS_TPREL",
|
||||
"BFD_RELOC_NIOS2_COPY",
|
||||
"BFD_RELOC_NIOS2_GLOB_DAT",
|
||||
"BFD_RELOC_NIOS2_JUMP_SLOT",
|
||||
"BFD_RELOC_NIOS2_RELATIVE",
|
||||
"BFD_RELOC_NIOS2_GOTOFF",
|
||||
"BFD_RELOC_IQ2000_OFFSET_16",
|
||||
"BFD_RELOC_IQ2000_OFFSET_21",
|
||||
"BFD_RELOC_IQ2000_UHI16",
|
||||
|
|
71
bfd/reloc.c
71
bfd/reloc.c
|
@ -5664,6 +5664,77 @@ ENUMX
|
|||
ENUMDOC
|
||||
msp430 specific relocation codes
|
||||
|
||||
ENUM
|
||||
BFD_RELOC_NIOS2_S16
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_U16
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_CALL26
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_IMM5
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_CACHE_OPX
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_IMM6
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_IMM8
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_HI16
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_LO16
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_HIADJ16
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_GPREL
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_UJMP
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_CJMP
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_CALLR
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_ALIGN
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_GOT16
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_CALL16
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_GOTOFF_LO
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_GOTOFF_HA
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_PCREL_LO
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_PCREL_HA
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_TLS_GD16
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_TLS_LDM16
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_TLS_LDO16
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_TLS_IE16
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_TLS_LE16
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_TLS_DTPMOD
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_TLS_DTPREL
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_TLS_TPREL
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_COPY
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_GLOB_DAT
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_JUMP_SLOT
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_RELATIVE
|
||||
ENUMX
|
||||
BFD_RELOC_NIOS2_GOTOFF
|
||||
ENUMDOC
|
||||
Relocations used by the Altera Nios II core.
|
||||
|
||||
ENUM
|
||||
BFD_RELOC_IQ2000_OFFSET_16
|
||||
ENUMX
|
||||
|
|
|
@ -607,6 +607,7 @@ extern const bfd_target bfd_elf32_bigarm_vxworks_vec;
|
|||
extern const bfd_target bfd_elf32_bigmips_vec;
|
||||
extern const bfd_target bfd_elf32_bigmips_vxworks_vec;
|
||||
extern const bfd_target bfd_elf32_bigmoxie_vec;
|
||||
extern const bfd_target bfd_elf32_bignios2_vec;
|
||||
extern const bfd_target bfd_elf32_cr16_vec;
|
||||
extern const bfd_target bfd_elf32_cr16c_vec;
|
||||
extern const bfd_target bfd_elf32_cris_vec;
|
||||
|
@ -646,6 +647,7 @@ extern const bfd_target bfd_elf32_littlearm_vxworks_vec;
|
|||
extern const bfd_target bfd_elf32_littlemips_vec;
|
||||
extern const bfd_target bfd_elf32_littlemips_vxworks_vec;
|
||||
extern const bfd_target bfd_elf32_littlemoxie_vec;
|
||||
extern const bfd_target bfd_elf32_littlenios2_vec;
|
||||
extern const bfd_target bfd_elf32_m32c_vec;
|
||||
extern const bfd_target bfd_elf32_m32r_vec;
|
||||
extern const bfd_target bfd_elf32_m32rle_vec;
|
||||
|
@ -984,6 +986,7 @@ static const bfd_target * const _bfd_target_vector[] =
|
|||
&bfd_elf32_bigmips_vec,
|
||||
&bfd_elf32_bigmips_vxworks_vec,
|
||||
&bfd_elf32_bigmoxie_vec,
|
||||
&bfd_elf32_bignios2_vec,
|
||||
&bfd_elf32_cr16_vec,
|
||||
&bfd_elf32_cr16c_vec,
|
||||
&bfd_elf32_cris_vec,
|
||||
|
@ -1025,6 +1028,7 @@ static const bfd_target * const _bfd_target_vector[] =
|
|||
&bfd_elf32_littlemips_vec,
|
||||
&bfd_elf32_littlemips_vxworks_vec,
|
||||
&bfd_elf32_littlemoxie_vec,
|
||||
&bfd_elf32_littlenios2_vec,
|
||||
&bfd_elf32_m32c_vec,
|
||||
&bfd_elf32_m32r_vec,
|
||||
&bfd_elf32_m32rle_vec,
|
||||
|
|
|
@ -1,3 +1,18 @@
|
|||
2013-02-06 Sandra Loosemore <sandra@codesourcery.com>
|
||||
Andrew Jenner <andrew@codesourcery.com>
|
||||
|
||||
Based on patches from Altera Corporation.
|
||||
|
||||
* readelf.c: Include elf/nios2.h.
|
||||
(dump_relocations): Add case for EM_ALTERA_NIOS2.
|
||||
(get_nios2_dynamic_type): New.
|
||||
(get_dynamic_type): Add case for EM_ALTERA_NIOS2.
|
||||
(is_32bit_abs_reloc): Fix EM_ALTERA_NIOS2 case.
|
||||
(is_16bit_abs_reloc): Likewise.
|
||||
(is_none_reloc): Add EM_ALTERA_NIOS2 and EM_NIOS32 cases.
|
||||
* NEWS: Note Altera Nios II support.
|
||||
* MAINTAINERS: Add Nios II maintainers.
|
||||
|
||||
2013-01-29 Xi Wang <xi.wang@gmail.com>
|
||||
|
||||
* readelf.c (process_version_sections): Fix overflow checks to
|
||||
|
|
|
@ -107,6 +107,8 @@ responsibility among the other maintainers.
|
|||
Moxie Anthony Green <green@moxielogic.com>
|
||||
MSP430 Dmitry Diky <diwil@spec.ru>
|
||||
NetBSD support Matt Thomas <matt@netbsd.org>
|
||||
Nios II Sandra Loosemore <sandra@codesourcery.com>
|
||||
Nios II Andrew Jenner <andrew@codesourcery.com>
|
||||
PPC Geoff Keating <geoffk@geoffk.org>
|
||||
PPC Alan Modra <amodra@gmail.com>
|
||||
PPC vector ext Aldy Hernandez <aldyh@redhat.com>
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
-*- text -*-
|
||||
|
||||
* Add support for Altera Nios II.
|
||||
|
||||
Changes in 2.23:
|
||||
|
||||
* Add support for the VLE extension to the PowerPC architecture.
|
||||
|
|
|
@ -153,6 +153,8 @@
|
|||
#include "elf/xstormy16.h"
|
||||
#include "elf/xtensa.h"
|
||||
|
||||
#include "elf/nios2.h"
|
||||
|
||||
#include "getopt.h"
|
||||
#include "libiberty.h"
|
||||
#include "safe-ctype.h"
|
||||
|
@ -1288,6 +1290,10 @@ dump_relocations (FILE * file,
|
|||
case EM_XGATE:
|
||||
rtype = elf_xgate_reloc_type (type);
|
||||
break;
|
||||
|
||||
case EM_ALTERA_NIOS2:
|
||||
rtype = elf_nios2_reloc_type (type);
|
||||
break;
|
||||
}
|
||||
|
||||
if (rtype == NULL)
|
||||
|
@ -1686,6 +1692,17 @@ get_tic6x_dynamic_type (unsigned long type)
|
|||
}
|
||||
}
|
||||
|
||||
static const char *
|
||||
get_nios2_dynamic_type (unsigned long type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case DT_NIOS2_GP: return "NIOS2_GP";
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static const char *
|
||||
get_dynamic_type (unsigned long type)
|
||||
{
|
||||
|
@ -1800,6 +1817,9 @@ get_dynamic_type (unsigned long type)
|
|||
case EM_TI_C6000:
|
||||
result = get_tic6x_dynamic_type (type);
|
||||
break;
|
||||
case EM_ALTERA_NIOS2:
|
||||
result = get_nios2_dynamic_type (type);
|
||||
break;
|
||||
default:
|
||||
result = NULL;
|
||||
break;
|
||||
|
@ -10074,6 +10094,7 @@ is_32bit_abs_reloc (unsigned int reloc_type)
|
|||
case EM_MT:
|
||||
return reloc_type == 2; /* R_MT_32. */
|
||||
case EM_ALTERA_NIOS2:
|
||||
return reloc_type == 12; /* R_NIOS2_BFD_RELOC_32. */
|
||||
case EM_NIOS32:
|
||||
return reloc_type == 1; /* R_NIOS_32. */
|
||||
case EM_OPENRISC:
|
||||
|
@ -10324,6 +10345,7 @@ is_16bit_abs_reloc (unsigned int reloc_type)
|
|||
case EM_MSP430_OLD:
|
||||
return reloc_type == 5; /* R_MSP430_16_BYTE. */
|
||||
case EM_ALTERA_NIOS2:
|
||||
return reloc_type == 13; /* R_NIOS2_BFD_RELOC_16. */
|
||||
case EM_NIOS32:
|
||||
return reloc_type == 9; /* R_NIOS_16. */
|
||||
case EM_TI_C6000:
|
||||
|
@ -10380,6 +10402,8 @@ is_none_reloc (unsigned int reloc_type)
|
|||
case EM_TILEPRO: /* R_TILEPRO_NONE. */
|
||||
case EM_XC16X:
|
||||
case EM_C166: /* R_XC16X_NONE. */
|
||||
case EM_ALTERA_NIOS2: /* R_NIOS2_NONE. */
|
||||
case EM_NIOS32: /* R_NIOS_NONE. */
|
||||
return reloc_type == 0;
|
||||
case EM_AARCH64:
|
||||
return reloc_type == 0 || reloc_type == 256;
|
||||
|
|
|
@ -1,3 +1,23 @@
|
|||
2013-02-06 Sandra Loosemore <sandra@codesourcery.com>
|
||||
Andrew Jenner <andrew@codesourcery.com>
|
||||
|
||||
Based on patches from Altera Corporation.
|
||||
|
||||
* Makefile.am (TARGET_CPU_CFILES): Add config/tc-nios2.c.
|
||||
(TARGET_CPU_HFILES): Add config/tc-nios2.h.
|
||||
* Makefile.in: Regenerated.
|
||||
* configure.tgt: Add case for nios2*-linux*.
|
||||
* config/obj-elf.c: Conditionally include elf/nios2.h.
|
||||
* config/tc-nios2.c: New file.
|
||||
* config/tc-nios2.h: New file.
|
||||
* doc/Makefile.am (CPU_DOCS): Add c-nios2.texi.
|
||||
* doc/Makefile.in: Regenerated.
|
||||
* doc/all.texi: Set NIOSII.
|
||||
* doc/as.texinfo (Overview): Add Nios II options.
|
||||
(Machine Dependencies): Include c-nios2.texi.
|
||||
* doc/c-nios2.texi: New file.
|
||||
* NEWS: Note Altera Nios II support.
|
||||
|
||||
2013-02-06 Alan Modra <amodra@gmail.com>
|
||||
|
||||
PR gas/14255
|
||||
|
|
|
@ -164,6 +164,7 @@ TARGET_CPU_CFILES = \
|
|||
config/tc-moxie.c \
|
||||
config/tc-msp430.c \
|
||||
config/tc-mt.c \
|
||||
config/tc-nios2.c \
|
||||
config/tc-ns32k.c \
|
||||
config/tc-openrisc.c \
|
||||
config/tc-or32.c \
|
||||
|
@ -234,6 +235,7 @@ TARGET_CPU_HFILES = \
|
|||
config/tc-mn10300.h \
|
||||
config/tc-msp430.h \
|
||||
config/tc-mt.h \
|
||||
config/tc-nios2.h \
|
||||
config/tc-ns32k.h \
|
||||
config/tc-openrisc.h \
|
||||
config/tc-or32.h \
|
||||
|
|
|
@ -433,6 +433,7 @@ TARGET_CPU_CFILES = \
|
|||
config/tc-moxie.c \
|
||||
config/tc-msp430.c \
|
||||
config/tc-mt.c \
|
||||
config/tc-nios2.c \
|
||||
config/tc-ns32k.c \
|
||||
config/tc-openrisc.c \
|
||||
config/tc-or32.c \
|
||||
|
@ -503,6 +504,7 @@ TARGET_CPU_HFILES = \
|
|||
config/tc-mn10300.h \
|
||||
config/tc-msp430.h \
|
||||
config/tc-mt.h \
|
||||
config/tc-nios2.h \
|
||||
config/tc-ns32k.h \
|
||||
config/tc-openrisc.h \
|
||||
config/tc-or32.h \
|
||||
|
@ -855,6 +857,7 @@ distclean-compile:
|
|||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-moxie.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-msp430.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-mt.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-nios2.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-ns32k.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-openrisc.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-or32.Po@am__quote@
|
||||
|
@ -1468,6 +1471,20 @@ tc-mt.obj: config/tc-mt.c
|
|||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tc-mt.obj `if test -f 'config/tc-mt.c'; then $(CYGPATH_W) 'config/tc-mt.c'; else $(CYGPATH_W) '$(srcdir)/config/tc-mt.c'; fi`
|
||||
|
||||
tc-nios2.o: config/tc-nios2.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tc-nios2.o -MD -MP -MF $(DEPDIR)/tc-nios2.Tpo -c -o tc-nios2.o `test -f 'config/tc-nios2.c' || echo '$(srcdir)/'`config/tc-nios2.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/tc-nios2.Tpo $(DEPDIR)/tc-nios2.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config/tc-nios2.c' object='tc-nios2.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tc-nios2.o `test -f 'config/tc-nios2.c' || echo '$(srcdir)/'`config/tc-nios2.c
|
||||
|
||||
tc-nios2.obj: config/tc-nios2.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tc-nios2.obj -MD -MP -MF $(DEPDIR)/tc-nios2.Tpo -c -o tc-nios2.obj `if test -f 'config/tc-nios2.c'; then $(CYGPATH_W) 'config/tc-nios2.c'; else $(CYGPATH_W) '$(srcdir)/config/tc-nios2.c'; fi`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/tc-nios2.Tpo $(DEPDIR)/tc-nios2.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config/tc-nios2.c' object='tc-nios2.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tc-nios2.obj `if test -f 'config/tc-nios2.c'; then $(CYGPATH_W) 'config/tc-nios2.c'; else $(CYGPATH_W) '$(srcdir)/config/tc-nios2.c'; fi`
|
||||
|
||||
tc-ns32k.o: config/tc-ns32k.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tc-ns32k.o -MD -MP -MF $(DEPDIR)/tc-ns32k.Tpo -c -o tc-ns32k.o `test -f 'config/tc-ns32k.c' || echo '$(srcdir)/'`config/tc-ns32k.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/tc-ns32k.Tpo $(DEPDIR)/tc-ns32k.Po
|
||||
|
|
2
gas/NEWS
2
gas/NEWS
|
@ -1,5 +1,7 @@
|
|||
-*- text -*-
|
||||
|
||||
* Add support for Altera Nios II.
|
||||
|
||||
* Add support for the Imagination Technologies Meta processor.
|
||||
|
||||
* Add support for the v850e3v5.
|
||||
|
|
|
@ -62,6 +62,10 @@
|
|||
#include "elf/mep.h"
|
||||
#endif
|
||||
|
||||
#ifdef TC_NIOS2
|
||||
#include "elf/nios2.h"
|
||||
#endif
|
||||
|
||||
static void obj_elf_line (int);
|
||||
static void obj_elf_size (int);
|
||||
static void obj_elf_type (int);
|
||||
|
|
3067
gas/config/tc-nios2.c
Normal file
3067
gas/config/tc-nios2.c
Normal file
File diff suppressed because it is too large
Load diff
125
gas/config/tc-nios2.h
Normal file
125
gas/config/tc-nios2.h
Normal file
|
@ -0,0 +1,125 @@
|
|||
/* Definitions for Altera Nios II assembler.
|
||||
Copyright (C) 2012, 2013 Free Software Foundation, Inc.
|
||||
Contributed by Nigel Gray (ngray@altera.com).
|
||||
Contributed by Mentor Graphics, 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. */
|
||||
|
||||
#ifndef TC_NIOS2
|
||||
#define TC_NIOS2
|
||||
|
||||
/* If unspecified, default to little endian. We can explicitly specify
|
||||
* a big-endian default by configuring with --target=nios2eb-elf. We
|
||||
* can override the default with the -EB and -EL options. */
|
||||
#ifndef TARGET_BYTES_BIG_ENDIAN
|
||||
#define TARGET_BYTES_BIG_ENDIAN 0
|
||||
#endif
|
||||
|
||||
/* Words are big enough to hold addresses. */
|
||||
#define WORKING_DOT_WORD 1
|
||||
|
||||
#ifdef OBJ_ELF
|
||||
extern const char *nios2_target_format (void);
|
||||
#define TARGET_FORMAT nios2_target_format ()
|
||||
#define TARGET_ARCH bfd_arch_nios2
|
||||
#endif
|
||||
|
||||
/* A NIOS2 instruction consists of tokens and separator characters
|
||||
the tokens are things like the instruction name (add, or jmp etc),
|
||||
the register indices ($5, $7 etc), and constant expressions. The
|
||||
separator characters are commas, brackets and space.
|
||||
The instruction name is always separated from other tokens by a space
|
||||
The maximum number of tokens in an instruction is 5 (the instruction name,
|
||||
3 arguments, and a 4th string representing the expected instructin opcode
|
||||
after assembly. The latter is only used when the assemble is running in
|
||||
self test mode, otherwise its presence will generate an error. */
|
||||
#define NIOS2_MAX_INSN_TOKENS 6
|
||||
|
||||
/* There are no machine-specific operands so we #define this to nothing. */
|
||||
#define md_operand(x)
|
||||
|
||||
/* Function prototypes exported to rest of GAS. */
|
||||
extern void md_assemble (char *op_str);
|
||||
extern void md_end (void);
|
||||
extern void md_begin (void);
|
||||
|
||||
#define TC_FORCE_RELOCATION(fixp) nios2_force_relocation (fixp)
|
||||
extern int nios2_force_relocation (struct fix *);
|
||||
|
||||
#define tc_fix_adjustable(fixp) nios2_fix_adjustable (fixp)
|
||||
extern int nios2_fix_adjustable (struct fix *);
|
||||
|
||||
#define tc_frob_label(lab) nios2_frob_label (lab)
|
||||
extern void nios2_frob_label (symbolS *);
|
||||
|
||||
#define tc_frob_symbol(symp, punt) punt = nios2_frob_symbol (symp) ? 1 : punt
|
||||
extern int nios2_frob_symbol (symbolS * symp);
|
||||
|
||||
#define md_cons_align(nbytes) nios2_cons_align (nbytes)
|
||||
extern void nios2_cons_align (int);
|
||||
|
||||
extern void md_convert_frag (bfd * headers, segT sec, fragS * fragP);
|
||||
|
||||
/* When relaxing, we need to generate relocations for alignment
|
||||
directives. */
|
||||
#define HANDLE_ALIGN(frag) nios2_handle_align (frag)
|
||||
extern void nios2_handle_align (fragS *);
|
||||
|
||||
#define md_relax_frag nios2_relax_frag
|
||||
extern long nios2_relax_frag (segT segment, fragS * fragP, long stretch);
|
||||
|
||||
#ifdef OBJ_ELF
|
||||
#define ELF_TC_SPECIAL_SECTIONS \
|
||||
{ ".sdata", SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_NIOS2_GPREL }, \
|
||||
{ ".sbss", SHT_NOBITS, SHF_ALLOC + SHF_WRITE + SHF_NIOS2_GPREL }, \
|
||||
{ ".lit4", SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_NIOS2_GPREL }, \
|
||||
{ ".lit8", SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_NIOS2_GPREL },
|
||||
|
||||
/* Processor-specific section directives. */
|
||||
#define md_elf_section_letter nios2_elf_section_letter
|
||||
extern int nios2_elf_section_letter (int, char **);
|
||||
#define md_elf_section_flags nios2_elf_section_flags
|
||||
extern flagword nios2_elf_section_flags (flagword, int, int);
|
||||
#endif
|
||||
|
||||
#define GLOBAL_OFFSET_TABLE_NAME "_GLOBAL_OFFSET_TABLE_"
|
||||
|
||||
#define DIFF_EXPR_OK
|
||||
|
||||
/* Nios2 ABI doesn't have 32-bit PCREL relocation, and, as relocations for
|
||||
CFI information will be in section other than .text, we can't use PC-biased
|
||||
relocs. */
|
||||
#define CFI_DIFF_EXPR_OK 0
|
||||
|
||||
#define TC_PARSE_CONS_EXPRESSION(EXP, NBYTES) nios2_cons (EXP, NBYTES)
|
||||
extern void nios2_cons (expressionS *exp, int size);
|
||||
|
||||
#define TC_CONS_FIX_NEW nios2_cons_fix_new
|
||||
extern void nios2_cons_fix_new (struct frag *frag, int where,
|
||||
unsigned int nbytes, struct expressionS *exp);
|
||||
|
||||
/* We want .cfi_* pseudo-ops for generating unwind info. */
|
||||
#define TARGET_USE_CFIPOP 1
|
||||
#define DWARF2_DEFAULT_RETURN_COLUMN 31
|
||||
#define DWARF2_CIE_DATA_ALIGNMENT (-4)
|
||||
#define tc_regname_to_dw2regnum nios2_regname_to_dw2regnum
|
||||
extern int nios2_regname_to_dw2regnum (char *regname);
|
||||
#define tc_cfi_frame_initial_instructions nios2_frame_initial_instructions
|
||||
extern void nios2_frame_initial_instructions (void);
|
||||
|
||||
#endif /* TC_NIOS2 */
|
|
@ -350,6 +350,8 @@ case ${generic_target} in
|
|||
|
||||
msp430-*-*) fmt=elf ;;
|
||||
|
||||
nios2*-linux*) fmt=elf em=linux ;;
|
||||
|
||||
ns32k-pc532-mach*) fmt=aout em=pc532mach ;;
|
||||
ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
|
||||
ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
|
||||
|
|
|
@ -74,6 +74,7 @@ CPU_DOCS = \
|
|||
c-mmix.texi \
|
||||
c-mt.texi \
|
||||
c-msp430.texi \
|
||||
c-nios2.texi \
|
||||
c-ns32k.texi \
|
||||
c-pdp11.texi \
|
||||
c-pj.texi \
|
||||
|
|
|
@ -316,6 +316,7 @@ CPU_DOCS = \
|
|||
c-mmix.texi \
|
||||
c-mt.texi \
|
||||
c-msp430.texi \
|
||||
c-nios2.texi \
|
||||
c-ns32k.texi \
|
||||
c-pdp11.texi \
|
||||
c-pj.texi \
|
||||
|
@ -410,17 +411,17 @@ as.info: as.texinfo $(as_TEXINFOS)
|
|||
fi; \
|
||||
rm -rf $$backupdir; exit $$rc
|
||||
|
||||
as.dvi: as.texinfo $(as_TEXINFOS)
|
||||
as.dvi: as.texinfo $(as_TEXINFOS)
|
||||
TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
|
||||
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
|
||||
$(TEXI2DVI) -o $@ `test -f 'as.texinfo' || echo '$(srcdir)/'`as.texinfo
|
||||
|
||||
as.pdf: as.texinfo $(as_TEXINFOS)
|
||||
as.pdf: as.texinfo $(as_TEXINFOS)
|
||||
TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
|
||||
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
|
||||
$(TEXI2PDF) -o $@ `test -f 'as.texinfo' || echo '$(srcdir)/'`as.texinfo
|
||||
|
||||
as.html: as.texinfo $(as_TEXINFOS)
|
||||
as.html: as.texinfo $(as_TEXINFOS)
|
||||
rm -rf $(@:.html=.htp)
|
||||
if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
|
||||
-o $(@:.html=.htp) `test -f 'as.texinfo' || echo '$(srcdir)/'`as.texinfo; \
|
||||
|
|
|
@ -58,6 +58,7 @@
|
|||
@set MMIX
|
||||
@set MS1
|
||||
@set MSP430
|
||||
@set NIOSII
|
||||
@set NS32K
|
||||
@set PDP11
|
||||
@set PJ
|
||||
|
|
|
@ -431,6 +431,12 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
|
|||
[@b{--no-expand}] [@b{--no-merge-gregs}] [@b{-x}]
|
||||
[@b{--linker-allocated-gregs}]
|
||||
@end ifset
|
||||
@ifset NIOSII
|
||||
|
||||
@emph{Target Nios II options:}
|
||||
[@b{-relax-all}] [@b{-relax-section}] [@b{-no-relax}]
|
||||
[@b{-EB}] [@b{-EL}]
|
||||
@end ifset
|
||||
@ifset PDP11
|
||||
|
||||
@emph{Target PDP11 options:}
|
||||
|
@ -1028,6 +1034,24 @@ unit coprocessor. The default is to assume an MMU for 68020 and up.
|
|||
@end table
|
||||
@end ifset
|
||||
|
||||
@ifset NIOSII
|
||||
|
||||
@ifclear man
|
||||
@xref{Nios II Options}, for the options available when @value{AS} is configured
|
||||
for an Altera Nios II processor.
|
||||
@end ifclear
|
||||
|
||||
@ifset man
|
||||
@c man begin OPTIONS
|
||||
The following options are available when @value{AS} is configured for an
|
||||
Altera Nios II processor.
|
||||
@c man end
|
||||
@c man begin INCLUDE
|
||||
@include c-nios2.texi
|
||||
@c ended inside the included file
|
||||
@end ifset
|
||||
@end ifset
|
||||
|
||||
@ifset PDP11
|
||||
|
||||
For details about the PDP-11 machine dependent features options,
|
||||
|
@ -7059,6 +7083,9 @@ subject, see the hardware manufacturer's manual.
|
|||
@ifset MSP430
|
||||
* MSP430-Dependent:: MSP430 Dependent Features
|
||||
@end ifset
|
||||
@ifset NIOSII
|
||||
* NiosII-Dependent:: Altera Nios II Dependent Features
|
||||
@end ifset
|
||||
@ifset NS32K
|
||||
* NS32K-Dependent:: NS32K Dependent Features
|
||||
@end ifset
|
||||
|
@ -7270,6 +7297,10 @@ family.
|
|||
@include c-msp430.texi
|
||||
@end ifset
|
||||
|
||||
@ifset NIOSII
|
||||
@include c-nios2.texi
|
||||
@end ifset
|
||||
|
||||
@ifset NS32K
|
||||
@include c-ns32k.texi
|
||||
@end ifset
|
||||
|
|
249
gas/doc/c-nios2.texi
Normal file
249
gas/doc/c-nios2.texi
Normal file
|
@ -0,0 +1,249 @@
|
|||
@c Copyright 2012, 2013 Free Software Foundation, Inc.
|
||||
@c This is part of the GAS manual.
|
||||
@c For copying conditions, see the file as.texinfo.
|
||||
@c man end
|
||||
@ifset GENERIC
|
||||
@page
|
||||
@node NiosII-Dependent
|
||||
@chapter Nios II Dependent Features
|
||||
@end ifset
|
||||
@ifclear GENERIC
|
||||
@node Machine Dependencies
|
||||
@chapter Nios II Dependent Features
|
||||
@end ifclear
|
||||
|
||||
@cindex Altera Nios II support
|
||||
@cindex Nios support
|
||||
@cindex Nios II support
|
||||
@menu
|
||||
* Nios II Options:: Options
|
||||
* Nios II Syntax:: Syntax
|
||||
* Nios II Relocations:: Relocations
|
||||
* Nios II Directives:: Nios II Machine Directives
|
||||
* Nios II Opcodes:: Opcodes
|
||||
@end menu
|
||||
|
||||
@node Nios II Options
|
||||
@section Options
|
||||
@cindex Nios II options
|
||||
@cindex options for Nios II
|
||||
|
||||
@c man begin OPTIONS
|
||||
@table @gcctabopt
|
||||
|
||||
@cindex @code{relax-section} command line option, Nios II
|
||||
@item -relax-section
|
||||
Replace identified out-of-range branches with PC-relative @code{jmp}
|
||||
sequences when possible. The generated code sequences are suitable
|
||||
for use in position-independent code, but there is a practical limit
|
||||
on the extended branch range because of the length of the sequences.
|
||||
This option is the default.
|
||||
|
||||
@cindex @code{relax-all} command line option, Nios II
|
||||
@item -relax-all
|
||||
Replace branch instructions not determinable to be in range
|
||||
and all call instructions with @code{jmp} and @code{callr} sequences
|
||||
(respectively). This option generates absolute relocations against the
|
||||
target symbols and is not appropriate for position-independent code.
|
||||
|
||||
@cindex @code{no-relax} command line option, Nios II
|
||||
@item -no-relax
|
||||
Do not replace any branches or calls.
|
||||
|
||||
@cindex @code{EB} command line option, Nios II
|
||||
@item -EB
|
||||
Generate big-endian output.
|
||||
|
||||
@cindex @code{EL} command line option, Nios II
|
||||
@item -EL
|
||||
Generate little-endian output. This is the default.
|
||||
|
||||
@end table
|
||||
@c man end
|
||||
|
||||
@node Nios II Syntax
|
||||
@section Syntax
|
||||
@menu
|
||||
* Nios II Chars:: Special Characters
|
||||
@end menu
|
||||
|
||||
|
||||
@node Nios II Chars
|
||||
@subsection Special Characters
|
||||
|
||||
@cindex line comment character, Nios II
|
||||
@cindex Nios II line comment character
|
||||
@cindex line separator character, Nios II
|
||||
@cindex Nios II line separator character
|
||||
@samp{#} is the line comment character.
|
||||
@samp{;} is the line separator character.
|
||||
|
||||
|
||||
@node Nios II Relocations
|
||||
@section Nios II Machine Relocations
|
||||
|
||||
@cindex machine relocations, Nios II
|
||||
@cindex Nios II machine relocations
|
||||
|
||||
@table @code
|
||||
@cindex @code{hiadj} directive, Nios II
|
||||
@item %hiadj(@var{expression})
|
||||
Extract the upper 16 bits of @var{expression} and add
|
||||
one if the 15th bit is set.
|
||||
|
||||
The value of @code{%hiadj(@var{expression})} is:
|
||||
@smallexample
|
||||
((@var{expression} >> 16) & 0xffff) + ((@var{expression} >> 15) & 0x01)
|
||||
@end smallexample
|
||||
|
||||
The @code{%hiadj} relocation is intended to be used with
|
||||
the @code{addi}, @code{ld} or @code{st} instructions
|
||||
along with a @code{%lo}, in order to load a 32-bit constant.
|
||||
|
||||
@smallexample
|
||||
movhi r2, %hiadj(symbol)
|
||||
addi r2, r2, %lo(symbol)
|
||||
@end smallexample
|
||||
|
||||
@cindex @code{hi} directive, Nios II
|
||||
@item %hi(@var{expression})
|
||||
Extract the upper 16 bits of @var{expression}.
|
||||
|
||||
@cindex @code{lo} directive, Nios II
|
||||
@item %lo(@var{expression})
|
||||
Extract the lower 16 bits of @var{expression}.
|
||||
|
||||
@cindex @code{gprel} directive, Nios II
|
||||
@item %gprel(@var{expression})
|
||||
Subtract the value of the symbol @code{_gp} from
|
||||
@var{expression}.
|
||||
|
||||
The intention of the @code{%gprel} relocation is
|
||||
to have a fast small area of memory which only
|
||||
takes a 16-bit immediate to access.
|
||||
|
||||
@smallexample
|
||||
.section .sdata
|
||||
fastint:
|
||||
.int 123
|
||||
.section .text
|
||||
ldw r4, %gprel(fastint)(gp)
|
||||
@end smallexample
|
||||
|
||||
@cindex @code{call} directive, Nios II
|
||||
@cindex @code{got} directive, Nios II
|
||||
@cindex @code{gotoff} directive, Nios II
|
||||
@cindex @code{gotoff_lo} directive, Nios II
|
||||
@cindex @code{gotoff_hiadj} directive, Nios II
|
||||
@cindex @code{tls_gd} directive, Nios II
|
||||
@cindex @code{tls_ie} directive, Nios II
|
||||
@cindex @code{tls_le} directive, Nios II
|
||||
@cindex @code{tls_ldm} directive, Nios II
|
||||
@cindex @code{tls_ldo} directive, Nios II
|
||||
@item %call(@var{expression})
|
||||
@itemx %got(@var{expression})
|
||||
@itemx %gotoff(@var{expression})
|
||||
@itemx %gotoff_lo(@var{expression})
|
||||
@itemx %gotoff_hiadj(@var{expression})
|
||||
@itemx %tls_gd(@var{expression})
|
||||
@itemx %tls_ie(@var{expression})
|
||||
@itemx %tls_le(@var{expression})
|
||||
@itemx %tls_ldm(@var{expression})
|
||||
@itemx %tls_ldo(@var{expression})
|
||||
|
||||
These relocations support the ABI for Linux Systems documented in the
|
||||
@cite{Nios II Processor Reference Handbook}.
|
||||
@end table
|
||||
|
||||
|
||||
@node Nios II Directives
|
||||
@section Nios II Machine Directives
|
||||
|
||||
@cindex machine directives, Nios II
|
||||
@cindex Nios II machine directives
|
||||
|
||||
@table @code
|
||||
|
||||
@cindex @code{align} directive, Nios II
|
||||
@item .align @var{expression} [, @var{expression}]
|
||||
This is the generic @code{.align} directive, however
|
||||
this aligns to a power of two.
|
||||
|
||||
@cindex @code{half} directive, Nios II
|
||||
@item .half @var{expression}
|
||||
Create an aligned constant 2 bytes in size.
|
||||
|
||||
@cindex @code{word} directive, Nios II
|
||||
@item .word @var{expression}
|
||||
Create an aligned constant 4 bytes in size.
|
||||
|
||||
@cindex @code{dword} directive, Nios II
|
||||
@item .dword @var{expression}
|
||||
Create an aligned constant 8 bytes in size.
|
||||
|
||||
@cindex @code{2byte} directive, Nios II
|
||||
@item .2byte @var{expression}
|
||||
Create an unaligned constant 2 bytes in size.
|
||||
|
||||
@cindex @code{4byte} directive, Nios II
|
||||
@item .4byte @var{expression}
|
||||
Create an unaligned constant 4 bytes in size.
|
||||
|
||||
@cindex @code{8byte} directive, Nios II
|
||||
@item .8byte @var{expression}
|
||||
Create an unaligned constant 8 bytes in size.
|
||||
|
||||
@cindex @code{16byte} directive, Nios II
|
||||
@item .16byte @var{expression}
|
||||
Create an unaligned constant 16 bytes in size.
|
||||
|
||||
@cindex @code{set noat} directive, Nios II
|
||||
@item .set noat
|
||||
Allows assembly code to use @code{at} register without
|
||||
warning. Macro or relaxation expansions
|
||||
generate warnings.
|
||||
|
||||
@cindex @code{set at} directive, Nios II
|
||||
@item .set at
|
||||
Assembly code using @code{at} register generates
|
||||
warnings, and macro expansion and relaxation are
|
||||
enabled.
|
||||
|
||||
@cindex @code{set nobreak} directive, Nios II
|
||||
@item .set nobreak
|
||||
Allows assembly code to use @code{ba} and @code{bt}
|
||||
registers without warning.
|
||||
|
||||
@cindex @code{set break} directive, Nios II
|
||||
@item .set break
|
||||
Turns warnings back on for using @code{ba} and @code{bt}
|
||||
registers.
|
||||
|
||||
@cindex @code{set norelax} directive, Nios II
|
||||
@item .set norelax
|
||||
Do not replace any branches or calls.
|
||||
|
||||
@cindex @code{set relaxsection} directive, Nios II
|
||||
@item .set relaxsection
|
||||
Replace identified out-of-range branches with
|
||||
@code{jmp} sequences (default).
|
||||
|
||||
@cindex @code{set relaxall} directive, Nios II
|
||||
@item .set relaxsection
|
||||
Replace all branch and call instructions with
|
||||
@code{jmp} and @code{callr} sequences.
|
||||
|
||||
@cindex @code{set} directive, Nios II
|
||||
@item .set @dots{}
|
||||
All other @code{.set} are the normal use.
|
||||
|
||||
@end table
|
||||
|
||||
@node Nios II Opcodes
|
||||
@section Opcodes
|
||||
|
||||
@cindex Nios II opcodes
|
||||
@cindex opcodes for Nios II
|
||||
@code{@value{AS}} implements all the standard Nios II opcodes documented in the
|
||||
@cite{Nios II Processor Reference Handbook}, including the assembler
|
||||
pseudo-instructions.
|
|
@ -1,3 +1,94 @@
|
|||
2013-02-06 Sandra Loosemore <sandra@codesourcery.com>
|
||||
Andrew Jenner <andrew@codesourcery.com>
|
||||
|
||||
Based on patches from Altera Corporation.
|
||||
|
||||
* gas/nios2/add.d: New.
|
||||
* gas/nios2/add.s: New.
|
||||
* gas/nios2/align_fill.d: New.
|
||||
* gas/nios2/align_fill.s: New.
|
||||
* gas/nios2/align_text.d: New.
|
||||
* gas/nios2/align_text.s: New.
|
||||
* gas/nios2/and.d: New.
|
||||
* gas/nios2/and.s: New.
|
||||
* gas/nios2/branch.d: New.
|
||||
* gas/nios2/branch.s: New.
|
||||
* gas/nios2/break.d: New.
|
||||
* gas/nios2/break.s: New.
|
||||
* gas/nios2/bret.d: New.
|
||||
* gas/nios2/bret.s: New.
|
||||
* gas/nios2/cache.d: New.
|
||||
* gas/nios2/cache.s: New.
|
||||
* gas/nios2/call26.d: New.
|
||||
* gas/nios2/call26.s: New.
|
||||
* gas/nios2/call.d: New.
|
||||
* gas/nios2/call.s: New.
|
||||
* gas/nios2/cmp.d: New.
|
||||
* gas/nios2/cmp.s: New.
|
||||
* gas/nios2/comments.d: New.
|
||||
* gas/nios2/comments.s: New.
|
||||
* gas/nios2/complex.d: New.
|
||||
* gas/nios2/complex.s: New.
|
||||
* gas/nios2/ctl.d: New.
|
||||
* gas/nios2/ctl.s: New.
|
||||
* gas/nios2/custom.d: New.
|
||||
* gas/nios2/custom.s: New.
|
||||
* gas/nios2/etbt.d: New.
|
||||
* gas/nios2/etbt.s: New.
|
||||
* gas/nios2/flushda.d: New.
|
||||
* gas/nios2/flushda.s: New.
|
||||
* gas/nios2/illegal.l: New.
|
||||
* gas/nios2/illegal.s: New.
|
||||
* gas/nios2/jmp.d: New.
|
||||
* gas/nios2/jmp.s: New.
|
||||
* gas/nios2/ldb.d: New.
|
||||
* gas/nios2/ldb.s: New.
|
||||
* gas/nios2/ldh.d: New.
|
||||
* gas/nios2/ldh.s: New.
|
||||
* gas/nios2/ldw.d: New.
|
||||
* gas/nios2/ldw.s: New.
|
||||
* gas/nios2/lineseparator.d: New.
|
||||
* gas/nios2/lineseparator.s: New.
|
||||
* gas/nios2/mov.d: New.
|
||||
* gas/nios2/movia.d: New.
|
||||
* gas/nios2/movia.s: New.
|
||||
* gas/nios2/movi.d: New.
|
||||
* gas/nios2/movi.s: New.
|
||||
* gas/nios2/mov.s: New.
|
||||
* gas/nios2/mul.d: New.
|
||||
* gas/nios2/mul.s: New.
|
||||
* gas/nios2/nios2.exp: New.
|
||||
* gas/nios2/nor.d: New.
|
||||
* gas/nios2/nor.s: New.
|
||||
* gas/nios2/or.d: New.
|
||||
* gas/nios2/or.s: New.
|
||||
* gas/nios2/ret.d: New.
|
||||
* gas/nios2/ret.s: New.
|
||||
* gas/nios2/rol.d: New.
|
||||
* gas/nios2/rol.s: New.
|
||||
* gas/nios2/rotate.d: New.
|
||||
* gas/nios2/rotate.s: New.
|
||||
* gas/nios2/stb.d: New.
|
||||
* gas/nios2/stb.s: New.
|
||||
* gas/nios2/sth.d: New.
|
||||
* gas/nios2/sth.s: New.
|
||||
* gas/nios2/stw.d: New.
|
||||
* gas/nios2/stw.s: New.
|
||||
* gas/nios2/sub.d: New.
|
||||
* gas/nios2/sub.s: New.
|
||||
* gas/nios2/sync.d: New.
|
||||
* gas/nios2/sync.s: New.
|
||||
* gas/nios2/trap.d: New.
|
||||
* gas/nios2/trap.s: New.
|
||||
* gas/nios2/tret.d: New.
|
||||
* gas/nios2/tret.s: New.
|
||||
* gas/nios2/warn_noat.l: New.
|
||||
* gas/nios2/warn_noat.s: New.
|
||||
* gas/nios2/warn_nobreak.l: New.
|
||||
* gas/nios2/warn_nobreak.s: New.
|
||||
* gas/nios2/xor.d: New.
|
||||
* gas/nios2/xor.s: New.
|
||||
|
||||
2013-01-31 Tristan Gingold <gingold@adacore.com>
|
||||
|
||||
* gas/ppc/test1xcoff32.d: Updated.
|
||||
|
|
16
gas/testsuite/gas/nios2/add.d
Normal file
16
gas/testsuite/gas/nios2/add.d
Normal file
|
@ -0,0 +1,16 @@
|
|||
#objdump: -dr --prefix-addresses
|
||||
#name: NIOS2 add
|
||||
|
||||
# Test the add instruction
|
||||
|
||||
.*: +file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
0+0000 <[^>]*> add r4,r4,r4
|
||||
0+0004 <[^>]*> addi r4,r4,32767
|
||||
0+0008 <[^>]*> addi r4,r4,-32768
|
||||
0+000c <[^>]*> addi r4,r4,0
|
||||
0+0010 <[^>]*> addi r4,r4,-1
|
||||
0+0014 <[^>]*> addi r4,r4,-1
|
||||
0+0018 <[^>]*> addi r4,r4,13398
|
||||
0+001c <[^>]*> nop
|
13
gas/testsuite/gas/nios2/add.s
Normal file
13
gas/testsuite/gas/nios2/add.s
Normal file
|
@ -0,0 +1,13 @@
|
|||
# Source file used to test the add and addi instructions.
|
||||
|
||||
foo:
|
||||
add r4,r4,r4
|
||||
addi r4,r4,0x7fff
|
||||
addi r4,r4,-0x8000
|
||||
addi r4,r4,0x0
|
||||
addi r4,r4,-0x01
|
||||
subi r4,r4,0x01
|
||||
addi r4,r4,0x3456
|
||||
|
||||
# should disassemble to add r0,0,r0
|
||||
nop
|
23
gas/testsuite/gas/nios2/align_fill.d
Normal file
23
gas/testsuite/gas/nios2/align_fill.d
Normal file
|
@ -0,0 +1,23 @@
|
|||
#objdump: -dr --prefix-addresses
|
||||
#name: NIOS2 align_fill
|
||||
|
||||
# Test the and macro.
|
||||
|
||||
.*: +file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
0+0000 <[^>]*> addi sp,sp,-8
|
||||
0+0004 <[^>]*> stw fp,4\(sp\)
|
||||
0+0008 <[^>]*> mov fp,sp
|
||||
0+000c <[^>]*> mov r3,zero
|
||||
0+0010 <[^>]*> nop
|
||||
0+0014 <[^>]*> nop
|
||||
0+0018 <[^>]*> nop
|
||||
0+001c <[^>]*> nop
|
||||
0+0020 <[^>]*> addi r3,r3,1
|
||||
0+0024 <[^>]*> cmplti r2,r3,100
|
||||
0+0028 <[^>]*> bne r2,zero,0+0020 <[^>*]*>
|
||||
0+002c <[^>]*> ldw fp,4\(sp\)
|
||||
0+0030 <[^>]*> addi sp,sp,8
|
||||
0+0034 <[^>]*> ret
|
||||
...
|
20
gas/testsuite/gas/nios2/align_fill.s
Normal file
20
gas/testsuite/gas/nios2/align_fill.s
Normal file
|
@ -0,0 +1,20 @@
|
|||
.file "a.c"
|
||||
.section .text
|
||||
.align 3
|
||||
.global x
|
||||
.type x, @function
|
||||
x:
|
||||
addi sp, sp, -8
|
||||
stw fp, 4(sp)
|
||||
mov fp, sp
|
||||
mov r3, zero
|
||||
.align 5
|
||||
.L6:
|
||||
addi r3, r3, 1
|
||||
cmplti r2, r3, 100
|
||||
bne r2, zero, .L6
|
||||
ldw fp, 4(sp)
|
||||
addi sp, sp, 8
|
||||
ret
|
||||
.size x, .-x
|
||||
.ident "GCC: (GNU) 3.3.3 (Altera Nios II 1.0 b302)"
|
22
gas/testsuite/gas/nios2/align_text.d
Normal file
22
gas/testsuite/gas/nios2/align_text.d
Normal file
|
@ -0,0 +1,22 @@
|
|||
#objdump: -dr
|
||||
#name: NIOS2 align_test
|
||||
|
||||
# Test alignment in text sections.
|
||||
|
||||
.*: +file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
00000000 <label-0x20>:
|
||||
0: 00000000 call 0 <label-0x20>
|
||||
4: 0001883a nop
|
||||
8: 0001883a nop
|
||||
c: 0001883a nop
|
||||
10: 0001883a nop
|
||||
14: 0001883a nop
|
||||
18: 0001883a nop
|
||||
1c: 0001883a nop
|
||||
|
||||
00000020 <label>:
|
||||
20: 0001883a nop
|
||||
00000024 <label2>:
|
||||
...
|
15
gas/testsuite/gas/nios2/align_text.s
Normal file
15
gas/testsuite/gas/nios2/align_text.s
Normal file
|
@ -0,0 +1,15 @@
|
|||
.asciz "" # empty string
|
||||
.align 2
|
||||
|
||||
nop
|
||||
nop
|
||||
label:
|
||||
.align 5
|
||||
nop
|
||||
label2:
|
||||
.section mysection
|
||||
.align 2
|
||||
|
||||
|
||||
|
||||
|
17
gas/testsuite/gas/nios2/and.d
Normal file
17
gas/testsuite/gas/nios2/and.d
Normal file
|
@ -0,0 +1,17 @@
|
|||
#objdump: -dr --prefix-addresses
|
||||
#name: NIOS2 and
|
||||
|
||||
# Test the and macro.
|
||||
|
||||
.*: +file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
0+0000 <[^>]*> and r4,r4,r4
|
||||
0+0004 <[^>]*> andi r4,r4,32767
|
||||
0+0008 <[^>]*> andi r4,r4,32768
|
||||
0+000c <[^>]*> andi r4,r4,65535
|
||||
0+0010 <[^>]*> andi r4,r4,0
|
||||
0+0014 <[^>]*> andhi r4,r4,32767
|
||||
0+0018 <[^>]*> andhi r4,r4,32768
|
||||
0+001c <[^>]*> andhi r4,r4,65535
|
||||
0+0020 <[^>]*> andhi r4,r4,0
|
13
gas/testsuite/gas/nios2/and.s
Normal file
13
gas/testsuite/gas/nios2/and.s
Normal file
|
@ -0,0 +1,13 @@
|
|||
# Source file used to test the and, andhi and andi instructions
|
||||
|
||||
foo:
|
||||
and r4,r4,r4
|
||||
andi r4,r4,0x7fff
|
||||
andi r4,r4,0x8000
|
||||
andi r4,r4,0xffff
|
||||
andi r4,r4,0x0
|
||||
andhi r4,r4,0x7fff
|
||||
andhi r4,r4,0x8000
|
||||
andhi r4,r4,0xffff
|
||||
andhi r4,r4,0x0
|
||||
|
21
gas/testsuite/gas/nios2/branch.d
Normal file
21
gas/testsuite/gas/nios2/branch.d
Normal file
|
@ -0,0 +1,21 @@
|
|||
#objdump: -dr --prefix-addresses
|
||||
#name: NIOS2 branch
|
||||
|
||||
# Test the branch instructions.
|
||||
dump.o: file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
0+0000 <[^>]*> beq r4,r5,00000004 <text_label\+0x4>
|
||||
[ ]*0: R_NIOS2_PCREL16 text_label
|
||||
0+0004 <[^>]*> bge r4,r5,00000008 <text_label\+0x8>
|
||||
[ ]*4: R_NIOS2_PCREL16 text_label
|
||||
0+0008 <[^>]*> bgeu r4,r5,0000000c <text_label\+0xc>
|
||||
[ ]*8: R_NIOS2_PCREL16 text_label
|
||||
0+000c <[^>]*> blt r4,r5,00000010 <text_label\+0x10>
|
||||
[ ]*c: R_NIOS2_PCREL16 text_label
|
||||
0+0010 <[^>]*> bltu r4,r5,00000014 <text_label\+0x14>
|
||||
[ ]*10: R_NIOS2_PCREL16 text_label
|
||||
0+0014 <[^>]*> bne r4,r5,00000018 <text_label\+0x18>
|
||||
[ ]*14: R_NIOS2_PCREL16 text_label
|
||||
0+0018 <[^>]*> br 0000001c <text_label\+0x1c>
|
||||
[ ]*18: R_NIOS2_PCREL16 external_label
|
15
gas/testsuite/gas/nios2/branch.s
Normal file
15
gas/testsuite/gas/nios2/branch.s
Normal file
|
@ -0,0 +1,15 @@
|
|||
# Source file used to test the beq macro.
|
||||
.globl text_label
|
||||
.text
|
||||
.set norelax
|
||||
text_label:
|
||||
beq r4,r5,text_label
|
||||
bge r4,r5,text_label
|
||||
bgeu r4,r5,text_label
|
||||
blt r4,r5,text_label
|
||||
bltu r4,r5,text_label
|
||||
bne r4,r5,text_label
|
||||
|
||||
# Branch to an external label.
|
||||
br external_label
|
||||
|
12
gas/testsuite/gas/nios2/break.d
Normal file
12
gas/testsuite/gas/nios2/break.d
Normal file
|
@ -0,0 +1,12 @@
|
|||
#objdump: -dr --prefix-addresses
|
||||
#name: NIOS2 break
|
||||
|
||||
.*: +file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
0+0000 <[^>]*> break 0
|
||||
0+0004 <[^>]*> break 0
|
||||
0+0008 <[^>]*> break 31
|
||||
0+000c <[^>]*> break 14
|
||||
|
||||
|
8
gas/testsuite/gas/nios2/break.s
Normal file
8
gas/testsuite/gas/nios2/break.s
Normal file
|
@ -0,0 +1,8 @@
|
|||
# Source file used to test the 20-bit break instructions
|
||||
foo:
|
||||
break
|
||||
break 0
|
||||
break 31
|
||||
break 14
|
||||
|
||||
|
8
gas/testsuite/gas/nios2/bret.d
Normal file
8
gas/testsuite/gas/nios2/bret.d
Normal file
|
@ -0,0 +1,8 @@
|
|||
#objdump: -dr --prefix-addresses
|
||||
#name: NIOS2 bret
|
||||
|
||||
.*: +file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
0+0000 <[^>]*> bret
|
||||
|
5
gas/testsuite/gas/nios2/bret.s
Normal file
5
gas/testsuite/gas/nios2/bret.s
Normal file
|
@ -0,0 +1,5 @@
|
|||
# Source file used to test the bret instructions
|
||||
foo:
|
||||
bret
|
||||
|
||||
|
17
gas/testsuite/gas/nios2/cache.d
Normal file
17
gas/testsuite/gas/nios2/cache.d
Normal file
|
@ -0,0 +1,17 @@
|
|||
#objdump: -dr --prefix-addresses
|
||||
#name: NIOS2 cache
|
||||
|
||||
.*: +file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
0+0000 <[^>]*> flushd -32768\(r6\)
|
||||
0+0004 <[^>]*> flushd 32767\(r6\)
|
||||
0+0008 <[^>]*> flushd 0\(r6\)
|
||||
0+000c <[^>]*> flushd -1\(r6\)
|
||||
0+0010 <[^>]*> flushd 0\(r6\)
|
||||
[ ]*10: R_NIOS2_S16 .text
|
||||
0+0014 <[^>]*> flushd 0\(r6\)
|
||||
[ ]*14: R_NIOS2_S16 external
|
||||
0+0018 <[^>]*> flushi r2
|
||||
0+001c <[^>]*> flushp
|
||||
|
21
gas/testsuite/gas/nios2/cache.s
Normal file
21
gas/testsuite/gas/nios2/cache.s
Normal file
|
@ -0,0 +1,21 @@
|
|||
# Source file used to test the cache instruction
|
||||
foo:
|
||||
flushd -0x8000(r6)
|
||||
flushd 0x7fff(r6)
|
||||
flushd 0x0(r6)
|
||||
flushd -0x0001(r6)
|
||||
|
||||
# use symbol for offset
|
||||
flushd foo(r6)
|
||||
|
||||
# use external symbol
|
||||
.global external
|
||||
flushd external(r6)
|
||||
|
||||
# flushi
|
||||
flushi r2
|
||||
|
||||
#flushp
|
||||
flushp
|
||||
|
||||
|
11
gas/testsuite/gas/nios2/call.d
Normal file
11
gas/testsuite/gas/nios2/call.d
Normal file
|
@ -0,0 +1,11 @@
|
|||
# objdump: -dr --prefix-addresses
|
||||
#name: NIOS2 call
|
||||
|
||||
.*: +file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
0+0000 <[^>]*> call 00000000 <foo>
|
||||
[ ]*0: R_NIOS2_CALL26 .text\+0xc
|
||||
0+0004 <[^>]*> callr r10
|
||||
0+0008 <[^>]*> call 00000000 <foo>
|
||||
[ ]*8: R_NIOS2_CALL26 external
|
13
gas/testsuite/gas/nios2/call.s
Normal file
13
gas/testsuite/gas/nios2/call.s
Normal file
|
@ -0,0 +1,13 @@
|
|||
# Source file used to test the call and callr instructions
|
||||
.text
|
||||
.set norelax
|
||||
foo:
|
||||
call func1
|
||||
callr r10
|
||||
# use external symbol
|
||||
.global external
|
||||
call external
|
||||
func1:
|
||||
|
||||
|
||||
|
76
gas/testsuite/gas/nios2/call26.d
Normal file
76
gas/testsuite/gas/nios2/call26.d
Normal file
|
@ -0,0 +1,76 @@
|
|||
#objdump: -dr --prefix-addresses
|
||||
#name: NIOS2 nios2-reloc-r-nios2-call26
|
||||
|
||||
# Test the branch instructions.
|
||||
.*: +file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
[ ]*\.\.\.
|
||||
[ ]*0: R_NIOS2_CALL26 .text\+0x100
|
||||
[ ]*4: R_NIOS2_CALL26 globalfunc
|
||||
0+0008 <[^>]*> nop
|
||||
0+000c <[^>]*> nop
|
||||
0+0010 <[^>]*> nop
|
||||
0+0014 <[^>]*> nop
|
||||
0+0018 <[^>]*> nop
|
||||
0+001c <[^>]*> nop
|
||||
0+0020 <[^>]*> nop
|
||||
0+0024 <[^>]*> nop
|
||||
0+0028 <[^>]*> nop
|
||||
0+002c <[^>]*> nop
|
||||
0+0030 <[^>]*> nop
|
||||
0+0034 <[^>]*> nop
|
||||
0+0038 <[^>]*> nop
|
||||
0+003c <[^>]*> nop
|
||||
0+0040 <[^>]*> nop
|
||||
0+0044 <[^>]*> nop
|
||||
0+0048 <[^>]*> nop
|
||||
0+004c <[^>]*> nop
|
||||
0+0050 <[^>]*> nop
|
||||
0+0054 <[^>]*> nop
|
||||
0+0058 <[^>]*> nop
|
||||
0+005c <[^>]*> nop
|
||||
0+0060 <[^>]*> nop
|
||||
0+0064 <[^>]*> nop
|
||||
0+0068 <[^>]*> nop
|
||||
0+006c <[^>]*> nop
|
||||
0+0070 <[^>]*> nop
|
||||
0+0074 <[^>]*> nop
|
||||
0+0078 <[^>]*> nop
|
||||
0+007c <[^>]*> nop
|
||||
0+0080 <[^>]*> nop
|
||||
0+0084 <[^>]*> nop
|
||||
0+0088 <[^>]*> nop
|
||||
0+008c <[^>]*> nop
|
||||
0+0090 <[^>]*> nop
|
||||
0+0094 <[^>]*> nop
|
||||
0+0098 <[^>]*> nop
|
||||
0+009c <[^>]*> nop
|
||||
0+00a0 <[^>]*> nop
|
||||
0+00a4 <[^>]*> nop
|
||||
0+00a8 <[^>]*> nop
|
||||
0+00ac <[^>]*> nop
|
||||
0+00b0 <[^>]*> nop
|
||||
0+00b4 <[^>]*> nop
|
||||
0+00b8 <[^>]*> nop
|
||||
0+00bc <[^>]*> nop
|
||||
0+00c0 <[^>]*> nop
|
||||
0+00c4 <[^>]*> nop
|
||||
0+00c8 <[^>]*> nop
|
||||
0+00cc <[^>]*> nop
|
||||
0+00d0 <[^>]*> nop
|
||||
0+00d4 <[^>]*> nop
|
||||
0+00d8 <[^>]*> nop
|
||||
0+00dc <[^>]*> nop
|
||||
0+00e0 <[^>]*> nop
|
||||
0+00e4 <[^>]*> nop
|
||||
0+00e8 <[^>]*> nop
|
||||
0+00ec <[^>]*> nop
|
||||
0+00f0 <[^>]*> nop
|
||||
0+00f4 <[^>]*> nop
|
||||
0+00f8 <[^>]*> nop
|
||||
0+00fc <[^>]*> nop
|
||||
0+0100 <[^>]*> nop
|
||||
...
|
||||
|
||||
|
12
gas/testsuite/gas/nios2/call26.s
Normal file
12
gas/testsuite/gas/nios2/call26.s
Normal file
|
@ -0,0 +1,12 @@
|
|||
# Test for Nios II 32-bit relocations
|
||||
|
||||
.global globalfunc
|
||||
.text
|
||||
.set norelax
|
||||
start:
|
||||
call localfunc
|
||||
call globalfunc
|
||||
|
||||
.align 8
|
||||
localfunc:
|
||||
nop
|
24
gas/testsuite/gas/nios2/cmp.d
Normal file
24
gas/testsuite/gas/nios2/cmp.d
Normal file
|
@ -0,0 +1,24 @@
|
|||
#objdump: -dr --prefix-addresses
|
||||
#name: NIOS2 cmp
|
||||
|
||||
.*: +file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
0+0000 <[^>]*> cmpeq r11,r2,r3
|
||||
0+0004 <[^>]*> cmpge r11,r2,r3
|
||||
0+0008 <[^>]*> cmpgeu r11,r2,r3
|
||||
0+000c <[^>]*> cmplt r11,r2,r3
|
||||
0+0010 <[^>]*> cmpltu r11,r2,r3
|
||||
0+0014 <[^>]*> cmpne r11,r2,r3
|
||||
0+0018 <[^>]*> cmpgei r11,r2,0
|
||||
[ ]*18: R_NIOS2_S16 value
|
||||
0+001c <[^>]*> cmpgeui r11,r2,0
|
||||
[ ]*1c: R_NIOS2_U16 value\+0x200
|
||||
0+0020 <[^>]*> cmplti r11,r2,0
|
||||
[ ]*20: R_NIOS2_S16 value
|
||||
0+0024 <[^>]*> cmpltui r11,r2,0
|
||||
[ ]*24: R_NIOS2_U16 value\+0x200
|
||||
0+0028 <[^>]*> cmpgei r11,r2,32767
|
||||
0+002c <[^>]*> cmpgeui r11,r2,32768
|
||||
0+0030 <[^>]*> cmplti r11,r2,-32768
|
||||
0+0034 <[^>]*> cmpltui r11,r2,65535
|
22
gas/testsuite/gas/nios2/cmp.s
Normal file
22
gas/testsuite/gas/nios2/cmp.s
Normal file
|
@ -0,0 +1,22 @@
|
|||
# Source file used to test the compare instructions
|
||||
foo:
|
||||
cmpeq r11,r2,r3
|
||||
cmpge r11,r2,r3
|
||||
cmpgeu r11,r2,r3
|
||||
cmplt r11,r2,r3
|
||||
cmpltu r11,r2,r3
|
||||
cmpne r11,r2,r3
|
||||
# test that cmp generates relocations correctly
|
||||
cmpgei r11,r2,value
|
||||
cmpgeui r11,r2,value+0x200
|
||||
cmplti r11,r2,value
|
||||
cmpltui r11,r2,value+0x200
|
||||
|
||||
cmpgei r11,r2,0x7fff
|
||||
cmpgeui r11,r2,0x8000
|
||||
cmplti r11,r2,-0x8000
|
||||
cmpltui r11,r2,0xFFFF
|
||||
.global value
|
||||
|
||||
|
||||
|
26
gas/testsuite/gas/nios2/comments.d
Normal file
26
gas/testsuite/gas/nios2/comments.d
Normal file
|
@ -0,0 +1,26 @@
|
|||
#objdump: -dr --prefix-addresses
|
||||
#name: NIOS2 comments
|
||||
|
||||
# Test the add instruction
|
||||
|
||||
.*: +file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
0+0000 <[^>]*> br 0000001c <start>
|
||||
0+0004 <[^>]*> br 00000008 <abort>
|
||||
0+0008 <[^>]*> movui r3,0
|
||||
0+000c <[^>]*> movui r2,1
|
||||
0+0010 <[^>]*> movui r3,0
|
||||
0+0014 <[^>]*> movui r2,0
|
||||
0+0018 <[^>]*> br 00000044 <exit>
|
||||
0+001c <[^>]*> addi r2,r2,-4
|
||||
0+0020 <[^>]*> movui r11,1
|
||||
0+0024 <[^>]*> movui r5,0
|
||||
0+0028 <[^>]*> movui r6,0
|
||||
0+002c <[^>]*> br 00000030 <ldst>
|
||||
0+0030 <[^>]*> movui r2,61452
|
||||
0+0034 <[^>]*> movui r20,64206
|
||||
0+0038 <[^>]*> stw r20,0\(r2\)
|
||||
0+003c <[^>]*> ldw r21,0\(r2\)
|
||||
0+0040 <[^>]*> br 00000010 <end>
|
||||
0+0044 <[^>]*> br 00000044 <exit>
|
28
gas/testsuite/gas/nios2/comments.s
Normal file
28
gas/testsuite/gas/nios2/comments.s
Normal file
|
@ -0,0 +1,28 @@
|
|||
.set norelax
|
||||
_main: br start
|
||||
trap:
|
||||
br abort
|
||||
.globl _main
|
||||
abort: movui r3, 0x0
|
||||
movui r2, 0x1
|
||||
|
||||
end: movui r3, 0x0
|
||||
movui r2, 0x0
|
||||
br exit
|
||||
|
||||
start:
|
||||
addi r2, r2, -4 # test for ve numbers
|
||||
movui r11, 0x1
|
||||
ori r5, r0, %lo(0x0) # r5 = 0x0
|
||||
ori r6, r0, %lo(0x0) # r6 = 0x0
|
||||
br ldst
|
||||
|
||||
ldst:
|
||||
movui r2, 0xF00C
|
||||
movui r20, 0xFACE
|
||||
stw r20,(r2)
|
||||
ldw r21, (r2)
|
||||
br end
|
||||
|
||||
|
||||
exit: br exit
|
12
gas/testsuite/gas/nios2/complex.d
Normal file
12
gas/testsuite/gas/nios2/complex.d
Normal file
|
@ -0,0 +1,12 @@
|
|||
#objdump: -dr --prefix-addresses
|
||||
#name: NIOS2 complex
|
||||
|
||||
# Test complex expression parsing
|
||||
|
||||
.*: +file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
0+0000 <[^>]*> ldw r2,-1\(r3\)
|
||||
0+0004 <[^>]*> ldw r2,1\(r3\)
|
||||
0+0008 <[^>]*> ldw r2,0\(r3\)
|
||||
8: R_NIOS2_S16 stack_top-0x1
|
5
gas/testsuite/gas/nios2/complex.s
Normal file
5
gas/testsuite/gas/nios2/complex.s
Normal file
|
@ -0,0 +1,5 @@
|
|||
foo:
|
||||
ldw r2, (2-3)(r3)
|
||||
ldw r2, 2 + (2-3)(r3)
|
||||
ldw r2, 2 + (stack_top-3)(r3)
|
||||
|
20
gas/testsuite/gas/nios2/ctl.d
Normal file
20
gas/testsuite/gas/nios2/ctl.d
Normal file
|
@ -0,0 +1,20 @@
|
|||
#objdump: -dr --prefix-addresses
|
||||
#name: NIOS2 ctl
|
||||
|
||||
# Test the ctl instructions
|
||||
|
||||
.*: +file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
0+0000 <[^>]*> rdctl r8,ctl31
|
||||
0+0004 <[^>]*> rdctl r8,ctl30
|
||||
0+0008 <[^>]*> rdctl r8,ctl29
|
||||
0+000c <[^>]*> rdctl r8,status
|
||||
0+0010 <[^>]*> rdctl r8,bstatus
|
||||
0+0014 <[^>]*> rdctl r8,estatus
|
||||
0+0018 <[^>]*> wrctl ctl31,r8
|
||||
0+001c <[^>]*> wrctl ctl30,r8
|
||||
0+0020 <[^>]*> wrctl ctl29,r8
|
||||
0+0024 <[^>]*> wrctl status,r8
|
||||
0+0028 <[^>]*> wrctl bstatus,r8
|
||||
0+002c <[^>]*> wrctl estatus,r8
|
18
gas/testsuite/gas/nios2/ctl.s
Normal file
18
gas/testsuite/gas/nios2/ctl.s
Normal file
|
@ -0,0 +1,18 @@
|
|||
# Source file used to test the nor instruction
|
||||
|
||||
foo:
|
||||
rdctl r8,ctl31
|
||||
rdctl r8,ctl30
|
||||
rdctl r8,ctl29
|
||||
rdctl r8,status
|
||||
rdctl r8,bstatus
|
||||
rdctl r8,estatus
|
||||
wrctl ctl31,r8
|
||||
wrctl ctl30,r8
|
||||
wrctl ctl29,r8
|
||||
wrctl status,r8
|
||||
wrctl bstatus,r8
|
||||
wrctl estatus,r8
|
||||
|
||||
|
||||
|
13
gas/testsuite/gas/nios2/custom.d
Normal file
13
gas/testsuite/gas/nios2/custom.d
Normal file
|
@ -0,0 +1,13 @@
|
|||
#objdump: -dr --prefix-addresses
|
||||
#name: NIOS2 custom
|
||||
|
||||
# Test the custom instruction
|
||||
|
||||
.*: +file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
0+0000 <[^>]*> custom 0,r11,r2,r3
|
||||
0+0004 <[^>]*> custom 255,r11,r2,r3
|
||||
0+0008 <[^>]*> custom 150,c1,r2,r3
|
||||
0+000c <[^>]*> custom 24,c1,c2,r3
|
||||
0+0010 <[^>]*> custom 56,c1,c2,c3
|
8
gas/testsuite/gas/nios2/custom.s
Normal file
8
gas/testsuite/gas/nios2/custom.s
Normal file
|
@ -0,0 +1,8 @@
|
|||
# test progam for assembling user instructions
|
||||
|
||||
foo:
|
||||
custom 0, r11, r2, r3
|
||||
custom 255, r11, r2, r3
|
||||
custom 150, c1, r2, r3
|
||||
custom 0x18, c1, c2, r3
|
||||
custom 070, c1, c2, c3
|
10
gas/testsuite/gas/nios2/etbt.d
Normal file
10
gas/testsuite/gas/nios2/etbt.d
Normal file
|
@ -0,0 +1,10 @@
|
|||
#objdump: -dr --prefix-addresses
|
||||
#name: NIOS2 etbt
|
||||
|
||||
# Test the et, bt registers
|
||||
|
||||
.*: +file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
0+0000 <[^>]*> add et,bt,r6
|
||||
0+0004 <[^>]*> add et,bt,r6
|
4
gas/testsuite/gas/nios2/etbt.s
Normal file
4
gas/testsuite/gas/nios2/etbt.s
Normal file
|
@ -0,0 +1,4 @@
|
|||
.set nobreak
|
||||
foo:
|
||||
add r24, r25, r6
|
||||
add et, bt, r6
|
10
gas/testsuite/gas/nios2/flushda.d
Normal file
10
gas/testsuite/gas/nios2/flushda.d
Normal file
|
@ -0,0 +1,10 @@
|
|||
#objdump: -dr --prefix-addresses
|
||||
#name: NIOS2 flushda
|
||||
|
||||
# Test the jmp instruction.
|
||||
|
||||
.*: +file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
0+0000 <[^>]*> flushda 12\(r2\)
|
||||
|
6
gas/testsuite/gas/nios2/flushda.s
Normal file
6
gas/testsuite/gas/nios2/flushda.s
Normal file
|
@ -0,0 +1,6 @@
|
|||
# Source file used to test the flushda instruction.
|
||||
.text
|
||||
.set nobreak
|
||||
foo:
|
||||
flushda 12(r2)
|
||||
|
14
gas/testsuite/gas/nios2/illegal.l
Normal file
14
gas/testsuite/gas/nios2/illegal.l
Normal file
|
@ -0,0 +1,14 @@
|
|||
.*illegal.s: Assembler messages:
|
||||
.*illegal.s:5: Error: unknown register r56
|
||||
.*illegal.s:8: Error: expecting \( near 0x1000
|
||||
.*illegal.s:8: Error: missing argument
|
||||
.*illegal.s:9: Error: expecting \) near r5
|
||||
.*illegal.s:10: Error: expecting \( near 0x1000r5\)
|
||||
.*illegal.s:10: Error: missing argument
|
||||
.*illegal.s:11: Error: expecting \( near 0x1000,r5
|
||||
.*illegal.s:11: Error: missing argument
|
||||
.*illegal.s:12: Error: unknown register 0x1000
|
||||
.*illegal.s:14: Error: unrecognised instruction fop
|
||||
.*illegal.s:16: Error: too many arguments
|
||||
.*illegal.s:17: Error: too many arguments
|
||||
.*illegal.s:17: Error: unknown register r2,r4
|
17
gas/testsuite/gas/nios2/illegal.s
Normal file
17
gas/testsuite/gas/nios2/illegal.s
Normal file
|
@ -0,0 +1,17 @@
|
|||
# Source file used to test illegal operands.
|
||||
|
||||
foo:
|
||||
# Illegal registers
|
||||
add r3,r4,r56
|
||||
add r4,r0,r2
|
||||
# Illegal syntax
|
||||
ldw r4,0x1000
|
||||
ldw r4,0x1000(r5
|
||||
ldw r4,0x1000r5)
|
||||
ldw r4,0x1000,r5
|
||||
ldw r4,(0x1000)r5
|
||||
# Illegal opcodes
|
||||
fop r3,r4,r5
|
||||
# Extra operands
|
||||
nop Crapola
|
||||
add r2, r2, r2, r4
|
10
gas/testsuite/gas/nios2/jmp.d
Normal file
10
gas/testsuite/gas/nios2/jmp.d
Normal file
|
@ -0,0 +1,10 @@
|
|||
#objdump: -dr --prefix-addresses
|
||||
#name: NIOS2 jmp
|
||||
|
||||
# Test the jmp instruction.
|
||||
|
||||
.*: +file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
0+0000 <[^>]*> jmp bt
|
||||
|
6
gas/testsuite/gas/nios2/jmp.s
Normal file
6
gas/testsuite/gas/nios2/jmp.s
Normal file
|
@ -0,0 +1,6 @@
|
|||
# Source file used to test the jmp instruction.
|
||||
.text
|
||||
.set nobreak
|
||||
foo:
|
||||
jmp r25
|
||||
|
196
gas/testsuite/gas/nios2/ldb.d
Normal file
196
gas/testsuite/gas/nios2/ldb.d
Normal file
|
@ -0,0 +1,196 @@
|
|||
#objdump: -dr --prefix-addresses
|
||||
#name: NIOS2 ldb
|
||||
|
||||
# Test the ld instruction
|
||||
|
||||
.*: +file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
0+0000 <[^>]*> ldb r4,0\(zero\)
|
||||
0+0004 <[^>]*> ldb r4,4\(zero\)
|
||||
0+0008 <[^>]*> ldb r4,32764\(zero\)
|
||||
0+000c <[^>]*> ldb r4,-32768\(zero\)
|
||||
0+0010 <[^>]*> ldb r4,0\(r5\)
|
||||
0+0014 <[^>]*> ldb r4,4\(r5\)
|
||||
0+0018 <[^>]*> ldb r4,32764\(r5\)
|
||||
0+001c <[^>]*> ldb r4,-32768\(r5\)
|
||||
0+0020 <[^>]*> ldb r4,0\(zero\)
|
||||
[ ]*20: R_NIOS2_S16 .data
|
||||
0+0024 <[^>]*> ldb r4,0\(zero\)
|
||||
[ ]*24: R_NIOS2_S16 big_external_data_label
|
||||
0+0028 <[^>]*> ldb r4,0\(zero\)
|
||||
[ ]*28: R_NIOS2_S16 small_external_data_label
|
||||
0+002c <[^>]*> ldb r4,0\(zero\)
|
||||
[ ]*2c: R_NIOS2_S16 big_external_common
|
||||
0+0030 <[^>]*> ldb r4,0\(zero\)
|
||||
[ ]*30: R_NIOS2_S16 small_external_common
|
||||
0+0034 <[^>]*> ldb r4,0\(zero\)
|
||||
[ ]*34: R_NIOS2_S16 .bss
|
||||
0+0038 <[^>]*> ldb r4,0\(zero\)
|
||||
[ ]*38: R_NIOS2_S16 .bss\+0x4000
|
||||
0+003c <[^>]*> ldb r4,0\(zero\)
|
||||
[ ]*3c: R_NIOS2_S16 .data\+0x4
|
||||
0+0040 <[^>]*> ldb r4,0\(zero\)
|
||||
[ ]*40: R_NIOS2_S16 big_external_data_label\+0x4
|
||||
0+0044 <[^>]*> ldb r4,0\(zero\)
|
||||
[ ]*44: R_NIOS2_S16 small_external_data_label\+0x4
|
||||
0+0048 <[^>]*> ldb r4,0\(zero\)
|
||||
[ ]*48: R_NIOS2_S16 big_external_common\+0x4
|
||||
0+004c <[^>]*> ldb r4,0\(zero\)
|
||||
[ ]*4c: R_NIOS2_S16 small_external_common\+0x4
|
||||
0+0050 <[^>]*> ldb r4,0\(zero\)
|
||||
[ ]*50: R_NIOS2_S16 .bss\+0x4
|
||||
0+0054 <[^>]*> ldb r4,0\(zero\)
|
||||
[ ]*54: R_NIOS2_S16 .bss\+0x4004
|
||||
0+0058 <[^>]*> ldb r4,0\(zero\)
|
||||
[ ]*58: R_NIOS2_S16 .data-0x8000
|
||||
0+005c <[^>]*> ldb r4,0\(zero\)
|
||||
[ ]*5c: R_NIOS2_S16 big_external_data_label-0x8000
|
||||
0+0060 <[^>]*> ldb r4,0\(zero\)
|
||||
[ ]*60: R_NIOS2_S16 small_external_data_label-0x8000
|
||||
0+0064 <[^>]*> ldb r4,0\(zero\)
|
||||
[ ]*64: R_NIOS2_S16 big_external_common-0x8000
|
||||
0+0068 <[^>]*> ldb r4,0\(zero\)
|
||||
[ ]*68: R_NIOS2_S16 small_external_common-0x8000
|
||||
0+006c <[^>]*> ldb r4,0\(zero\)
|
||||
[ ]*6c: R_NIOS2_S16 .bss-0x8000
|
||||
0+0070 <[^>]*> ldb r4,0\(zero\)
|
||||
[ ]*70: R_NIOS2_S16 .bss-0x4000
|
||||
0+0074 <[^>]*> ldb r4,0\(zero\)
|
||||
[ ]*74: R_NIOS2_S16 .data\+0x10000
|
||||
0+0078 <[^>]*> ldb r4,0\(r5\)
|
||||
[ ]*78: R_NIOS2_S16 .data
|
||||
0+007c <[^>]*> ldb r4,0\(r5\)
|
||||
[ ]*7c: R_NIOS2_S16 big_external_data_label
|
||||
0+0080 <[^>]*> ldb r4,0\(r5\)
|
||||
[ ]*80: R_NIOS2_S16 small_external_data_label
|
||||
0+0084 <[^>]*> ldb r4,0\(r5\)
|
||||
[ ]*84: R_NIOS2_S16 big_external_common
|
||||
0+0088 <[^>]*> ldb r4,0\(r5\)
|
||||
[ ]*88: R_NIOS2_S16 small_external_common
|
||||
0+008c <[^>]*> ldb r4,0\(r5\)
|
||||
[ ]*8c: R_NIOS2_S16 .bss
|
||||
0+0090 <[^>]*> ldb r4,0\(r5\)
|
||||
[ ]*90: R_NIOS2_S16 .bss\+0x4000
|
||||
0+0094 <[^>]*> ldb r4,0\(r5\)
|
||||
[ ]*94: R_NIOS2_S16 .data\+0x4
|
||||
0+0098 <[^>]*> ldb r4,0\(r5\)
|
||||
[ ]*98: R_NIOS2_S16 big_external_data_label\+0x4
|
||||
0+009c <[^>]*> ldb r4,0\(r5\)
|
||||
[ ]*9c: R_NIOS2_S16 small_external_data_label\+0x4
|
||||
0+00a0 <[^>]*> ldb r4,0\(r5\)
|
||||
[ ]*a0: R_NIOS2_S16 big_external_common\+0x4
|
||||
0+00a4 <[^>]*> ldb r4,0\(r5\)
|
||||
[ ]*a4: R_NIOS2_S16 small_external_common\+0x4
|
||||
0+00a8 <[^>]*> ldb r4,0\(r5\)
|
||||
[ ]*a8: R_NIOS2_S16 .bss\+0x4
|
||||
0+00ac <[^>]*> ldb r4,0\(r5\)
|
||||
[ ]*ac: R_NIOS2_S16 .bss\+0x4004
|
||||
0+00b0 <[^>]*> ldb r4,0\(r5\)
|
||||
[ ]*b0: R_NIOS2_S16 .data-0x8000
|
||||
0+00b4 <[^>]*> ldb r4,0\(r5\)
|
||||
[ ]*b4: R_NIOS2_S16 big_external_data_label-0x8000
|
||||
0+00b8 <[^>]*> ldb r4,0\(r5\)
|
||||
[ ]*b8: R_NIOS2_S16 small_external_data_label-0x8000
|
||||
0+00bc <[^>]*> ldb r4,0\(r5\)
|
||||
[ ]*bc: R_NIOS2_S16 big_external_common-0x8000
|
||||
0+00c0 <[^>]*> ldb r4,0\(r5\)
|
||||
[ ]*c0: R_NIOS2_S16 small_external_common-0x8000
|
||||
0+00c4 <[^>]*> ldb r4,0\(r5\)
|
||||
[ ]*c4: R_NIOS2_S16 .bss-0x8000
|
||||
0+00c8 <[^>]*> ldb r4,0\(r5\)
|
||||
[ ]*c8: R_NIOS2_S16 .bss-0x4000
|
||||
0+00cc <[^>]*> ldbio r4,0\(zero\)
|
||||
0+00d0 <[^>]*> ldbio r4,4\(zero\)
|
||||
0+00d4 <[^>]*> ldbio r4,32764\(zero\)
|
||||
0+00d8 <[^>]*> ldbio r4,-32768\(zero\)
|
||||
0+00dc <[^>]*> ldbio r4,0\(r5\)
|
||||
0+00e0 <[^>]*> ldbio r4,4\(r5\)
|
||||
0+00e4 <[^>]*> ldbio r4,32764\(r5\)
|
||||
0+00e8 <[^>]*> ldbio r4,-32768\(r5\)
|
||||
0+00ec <[^>]*> ldbio r4,0\(zero\)
|
||||
[ ]*ec: R_NIOS2_S16 .data
|
||||
0+00f0 <[^>]*> ldbio r4,0\(zero\)
|
||||
[ ]*f0: R_NIOS2_S16 big_external_data_label
|
||||
0+00f4 <[^>]*> ldbio r4,0\(zero\)
|
||||
[ ]*f4: R_NIOS2_S16 small_external_data_label
|
||||
0+00f8 <[^>]*> ldbio r4,0\(zero\)
|
||||
[ ]*f8: R_NIOS2_S16 big_external_common
|
||||
0+00fc <[^>]*> ldbio r4,0\(zero\)
|
||||
[ ]*fc: R_NIOS2_S16 small_external_common
|
||||
0+0100 <[^>]*> ldbio r4,0\(zero\)
|
||||
[ ]*100: R_NIOS2_S16 .bss
|
||||
0+0104 <[^>]*> ldbio r4,0\(zero\)
|
||||
[ ]*104: R_NIOS2_S16 .bss\+0x4000
|
||||
0+0108 <[^>]*> ldbio r4,0\(zero\)
|
||||
[ ]*108: R_NIOS2_S16 .data\+0x4
|
||||
0+010c <[^>]*> ldbio r4,0\(zero\)
|
||||
[ ]*10c: R_NIOS2_S16 big_external_data_label\+0x4
|
||||
0+0110 <[^>]*> ldbio r4,0\(zero\)
|
||||
[ ]*110: R_NIOS2_S16 small_external_data_label\+0x4
|
||||
0+0114 <[^>]*> ldbio r4,0\(zero\)
|
||||
[ ]*114: R_NIOS2_S16 big_external_common\+0x4
|
||||
0+0118 <[^>]*> ldbio r4,0\(zero\)
|
||||
[ ]*118: R_NIOS2_S16 small_external_common\+0x4
|
||||
0+011c <[^>]*> ldbio r4,0\(zero\)
|
||||
[ ]*11c: R_NIOS2_S16 .bss\+0x4
|
||||
0+0120 <[^>]*> ldbio r4,0\(zero\)
|
||||
[ ]*120: R_NIOS2_S16 .bss\+0x4004
|
||||
0+0124 <[^>]*> ldbio r4,0\(zero\)
|
||||
[ ]*124: R_NIOS2_S16 .data-0x8000
|
||||
0+0128 <[^>]*> ldbio r4,0\(zero\)
|
||||
[ ]*128: R_NIOS2_S16 big_external_data_label-0x8000
|
||||
0+012c <[^>]*> ldbio r4,0\(zero\)
|
||||
[ ]*12c: R_NIOS2_S16 small_external_data_label-0x8000
|
||||
0+0130 <[^>]*> ldbio r4,0\(zero\)
|
||||
[ ]*130: R_NIOS2_S16 big_external_common-0x8000
|
||||
0+0134 <[^>]*> ldbio r4,0\(zero\)
|
||||
[ ]*134: R_NIOS2_S16 small_external_common-0x8000
|
||||
0+0138 <[^>]*> ldbio r4,0\(zero\)
|
||||
[ ]*138: R_NIOS2_S16 .bss-0x8000
|
||||
0+013c <[^>]*> ldbio r4,0\(zero\)
|
||||
[ ]*13c: R_NIOS2_S16 .bss-0x4000
|
||||
0+0140 <[^>]*> ldbio r4,0\(zero\)
|
||||
[ ]*140: R_NIOS2_S16 .data\+0x10000
|
||||
0+0144 <[^>]*> ldbio r4,0\(r5\)
|
||||
[ ]*144: R_NIOS2_S16 .data
|
||||
0+0148 <[^>]*> ldbio r4,0\(r5\)
|
||||
[ ]*148: R_NIOS2_S16 big_external_data_label
|
||||
0+014c <[^>]*> ldbio r4,0\(r5\)
|
||||
[ ]*14c: R_NIOS2_S16 small_external_data_label
|
||||
0+0150 <[^>]*> ldbio r4,0\(r5\)
|
||||
[ ]*150: R_NIOS2_S16 big_external_common
|
||||
0+0154 <[^>]*> ldbio r4,0\(r5\)
|
||||
[ ]*154: R_NIOS2_S16 small_external_common
|
||||
0+0158 <[^>]*> ldbio r4,0\(r5\)
|
||||
[ ]*158: R_NIOS2_S16 .bss
|
||||
0+015c <[^>]*> ldbio r4,0\(r5\)
|
||||
[ ]*15c: R_NIOS2_S16 .bss\+0x4000
|
||||
0+0160 <[^>]*> ldbio r4,0\(r5\)
|
||||
[ ]*160: R_NIOS2_S16 .data\+0x4
|
||||
0+0164 <[^>]*> ldbio r4,0\(r5\)
|
||||
[ ]*164: R_NIOS2_S16 big_external_data_label\+0x4
|
||||
0+0168 <[^>]*> ldbio r4,0\(r5\)
|
||||
[ ]*168: R_NIOS2_S16 small_external_data_label\+0x4
|
||||
0+016c <[^>]*> ldbio r4,0\(r5\)
|
||||
[ ]*16c: R_NIOS2_S16 big_external_common\+0x4
|
||||
0+0170 <[^>]*> ldbio r4,0\(r5\)
|
||||
[ ]*170: R_NIOS2_S16 small_external_common\+0x4
|
||||
0+0174 <[^>]*> ldbio r4,0\(r5\)
|
||||
[ ]*174: R_NIOS2_S16 .bss\+0x4
|
||||
0+0178 <[^>]*> ldbio r4,0\(r5\)
|
||||
[ ]*178: R_NIOS2_S16 .bss\+0x4004
|
||||
0+017c <[^>]*> ldbio r4,0\(r5\)
|
||||
[ ]*17c: R_NIOS2_S16 .data-0x8000
|
||||
0+0180 <[^>]*> ldbio r4,0\(r5\)
|
||||
[ ]*180: R_NIOS2_S16 big_external_data_label-0x8000
|
||||
0+0184 <[^>]*> ldbio r4,0\(r5\)
|
||||
[ ]*184: R_NIOS2_S16 small_external_data_label-0x8000
|
||||
0+0188 <[^>]*> ldbio r4,0\(r5\)
|
||||
[ ]*188: R_NIOS2_S16 big_external_common-0x8000
|
||||
0+018c <[^>]*> ldbio r4,0\(r5\)
|
||||
[ ]*18c: R_NIOS2_S16 small_external_common-0x8000
|
||||
0+0190 <[^>]*> ldbio r4,0\(r5\)
|
||||
[ ]*190: R_NIOS2_S16 .bss-0x8000
|
||||
0+0194 <[^>]*> ldbio r4,0\(r5\)
|
||||
[ ]*194: R_NIOS2_S16 .bss-0x4000
|
117
gas/testsuite/gas/nios2/ldb.s
Normal file
117
gas/testsuite/gas/nios2/ldb.s
Normal file
|
@ -0,0 +1,117 @@
|
|||
.data
|
||||
data_label:
|
||||
.extern big_external_data_label,0x4000
|
||||
.extern small_external_data_label,4
|
||||
.comm big_external_common,0x4000
|
||||
.comm small_external_common,4
|
||||
.lcomm big_local_common,0x4000
|
||||
.lcomm small_local_common,4
|
||||
|
||||
# the small symbols should have space allocated in the sbss section
|
||||
# but this is not yet supported in the assembler, so space is allocated
|
||||
# in the .bss section and the relocations are not gp-relative. this will
|
||||
# be updated when gp-relative relocations are added
|
||||
.text
|
||||
ldb r4,0(r0)
|
||||
ldb r4,4(r0)
|
||||
ldb r4,0x7ffc(r0)
|
||||
ldb r4,-0x8000(r0)
|
||||
ldb r4,0(r5)
|
||||
ldb r4,4(r5)
|
||||
ldb r4,0x7ffc(r5)
|
||||
ldb r4,-0x8000(r5)
|
||||
ldb r4,data_label(r0)
|
||||
ldb r4,big_external_data_label(r0)
|
||||
ldb r4,small_external_data_label(r0)
|
||||
ldb r4,big_external_common(r0)
|
||||
ldb r4,small_external_common(r0)
|
||||
ldb r4,big_local_common(r0)
|
||||
ldb r4,small_local_common(r0)
|
||||
ldb r4,data_label+4(r0)
|
||||
ldb r4,big_external_data_label+4(r0)
|
||||
ldb r4,small_external_data_label+4(r0)
|
||||
ldb r4,big_external_common+4(r0)
|
||||
ldb r4,small_external_common+4(r0)
|
||||
ldb r4,big_local_common+4(r0)
|
||||
ldb r4,small_local_common+4(r0)
|
||||
ldb r4,data_label-0x8000(r0)
|
||||
ldb r4,big_external_data_label-0x8000(r0)
|
||||
ldb r4,small_external_data_label-0x8000(r0)
|
||||
ldb r4,big_external_common-0x8000(r0)
|
||||
ldb r4,small_external_common-0x8000(r0)
|
||||
ldb r4,big_local_common-0x8000(r0)
|
||||
ldb r4,small_local_common-0x8000(r0)
|
||||
ldb r4,data_label+0x10000(r0)
|
||||
ldb r4,data_label(r5)
|
||||
ldb r4,big_external_data_label(r5)
|
||||
ldb r4,small_external_data_label(r5)
|
||||
ldb r4,big_external_common(r5)
|
||||
ldb r4,small_external_common(r5)
|
||||
ldb r4,big_local_common(r5)
|
||||
ldb r4,small_local_common(r5)
|
||||
ldb r4,data_label+4(r5)
|
||||
ldb r4,big_external_data_label+4(r5)
|
||||
ldb r4,small_external_data_label+4(r5)
|
||||
ldb r4,big_external_common+4(r5)
|
||||
ldb r4,small_external_common+4(r5)
|
||||
ldb r4,big_local_common+4(r5)
|
||||
ldb r4,small_local_common+4(r5)
|
||||
ldb r4,data_label-0x8000(r5)
|
||||
ldb r4,big_external_data_label-0x8000(r5)
|
||||
ldb r4,small_external_data_label-0x8000(r5)
|
||||
ldb r4,big_external_common-0x8000(r5)
|
||||
ldb r4,small_external_common-0x8000(r5)
|
||||
ldb r4,big_local_common-0x8000(r5)
|
||||
ldb r4,small_local_common-0x8000(r5)
|
||||
|
||||
ldbio r4,0(r0)
|
||||
ldbio r4,4(r0)
|
||||
ldbio r4,0x7ffc(r0)
|
||||
ldbio r4,-0x8000(r0)
|
||||
ldbio r4,0(r5)
|
||||
ldbio r4,4(r5)
|
||||
ldbio r4,0x7ffc(r5)
|
||||
ldbio r4,-0x8000(r5)
|
||||
ldbio r4,data_label(r0)
|
||||
ldbio r4,big_external_data_label(r0)
|
||||
ldbio r4,small_external_data_label(r0)
|
||||
ldbio r4,big_external_common(r0)
|
||||
ldbio r4,small_external_common(r0)
|
||||
ldbio r4,big_local_common(r0)
|
||||
ldbio r4,small_local_common(r0)
|
||||
ldbio r4,data_label+4(r0)
|
||||
ldbio r4,big_external_data_label+4(r0)
|
||||
ldbio r4,small_external_data_label+4(r0)
|
||||
ldbio r4,big_external_common+4(r0)
|
||||
ldbio r4,small_external_common+4(r0)
|
||||
ldbio r4,big_local_common+4(r0)
|
||||
ldbio r4,small_local_common+4(r0)
|
||||
ldbio r4,data_label-0x8000(r0)
|
||||
ldbio r4,big_external_data_label-0x8000(r0)
|
||||
ldbio r4,small_external_data_label-0x8000(r0)
|
||||
ldbio r4,big_external_common-0x8000(r0)
|
||||
ldbio r4,small_external_common-0x8000(r0)
|
||||
ldbio r4,big_local_common-0x8000(r0)
|
||||
ldbio r4,small_local_common-0x8000(r0)
|
||||
ldbio r4,data_label+0x10000(r0)
|
||||
ldbio r4,data_label(r5)
|
||||
ldbio r4,big_external_data_label(r5)
|
||||
ldbio r4,small_external_data_label(r5)
|
||||
ldbio r4,big_external_common(r5)
|
||||
ldbio r4,small_external_common(r5)
|
||||
ldbio r4,big_local_common(r5)
|
||||
ldbio r4,small_local_common(r5)
|
||||
ldbio r4,data_label+4(r5)
|
||||
ldbio r4,big_external_data_label+4(r5)
|
||||
ldbio r4,small_external_data_label+4(r5)
|
||||
ldbio r4,big_external_common+4(r5)
|
||||
ldbio r4,small_external_common+4(r5)
|
||||
ldbio r4,big_local_common+4(r5)
|
||||
ldbio r4,small_local_common+4(r5)
|
||||
ldbio r4,data_label-0x8000(r5)
|
||||
ldbio r4,big_external_data_label-0x8000(r5)
|
||||
ldbio r4,small_external_data_label-0x8000(r5)
|
||||
ldbio r4,big_external_common-0x8000(r5)
|
||||
ldbio r4,small_external_common-0x8000(r5)
|
||||
ldbio r4,big_local_common-0x8000(r5)
|
||||
ldbio r4,small_local_common-0x8000(r5)
|
196
gas/testsuite/gas/nios2/ldh.d
Normal file
196
gas/testsuite/gas/nios2/ldh.d
Normal file
|
@ -0,0 +1,196 @@
|
|||
#objdump: -dr --prefix-addresses
|
||||
#name: NIOS2 ldh
|
||||
|
||||
# Test the ld instruction
|
||||
|
||||
.*: +file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
0+0000 <[^>]*> ldh r4,0\(zero\)
|
||||
0+0004 <[^>]*> ldh r4,4\(zero\)
|
||||
0+0008 <[^>]*> ldh r4,32764\(zero\)
|
||||
0+000c <[^>]*> ldh r4,-32768\(zero\)
|
||||
0+0010 <[^>]*> ldh r4,0\(r5\)
|
||||
0+0014 <[^>]*> ldh r4,4\(r5\)
|
||||
0+0018 <[^>]*> ldh r4,32764\(r5\)
|
||||
0+001c <[^>]*> ldh r4,-32768\(r5\)
|
||||
0+0020 <[^>]*> ldh r4,0\(zero\)
|
||||
[ ]*20: R_NIOS2_S16 .data
|
||||
0+0024 <[^>]*> ldh r4,0\(zero\)
|
||||
[ ]*24: R_NIOS2_S16 big_external_data_label
|
||||
0+0028 <[^>]*> ldh r4,0\(zero\)
|
||||
[ ]*28: R_NIOS2_S16 small_external_data_label
|
||||
0+002c <[^>]*> ldh r4,0\(zero\)
|
||||
[ ]*2c: R_NIOS2_S16 big_external_common
|
||||
0+0030 <[^>]*> ldh r4,0\(zero\)
|
||||
[ ]*30: R_NIOS2_S16 small_external_common
|
||||
0+0034 <[^>]*> ldh r4,0\(zero\)
|
||||
[ ]*34: R_NIOS2_S16 .bss
|
||||
0+0038 <[^>]*> ldh r4,0\(zero\)
|
||||
[ ]*38: R_NIOS2_S16 .bss\+0x4000
|
||||
0+003c <[^>]*> ldh r4,0\(zero\)
|
||||
[ ]*3c: R_NIOS2_S16 .data\+0x4
|
||||
0+0040 <[^>]*> ldh r4,0\(zero\)
|
||||
[ ]*40: R_NIOS2_S16 big_external_data_label\+0x4
|
||||
0+0044 <[^>]*> ldh r4,0\(zero\)
|
||||
[ ]*44: R_NIOS2_S16 small_external_data_label\+0x4
|
||||
0+0048 <[^>]*> ldh r4,0\(zero\)
|
||||
[ ]*48: R_NIOS2_S16 big_external_common\+0x4
|
||||
0+004c <[^>]*> ldh r4,0\(zero\)
|
||||
[ ]*4c: R_NIOS2_S16 small_external_common\+0x4
|
||||
0+0050 <[^>]*> ldh r4,0\(zero\)
|
||||
[ ]*50: R_NIOS2_S16 .bss\+0x4
|
||||
0+0054 <[^>]*> ldh r4,0\(zero\)
|
||||
[ ]*54: R_NIOS2_S16 .bss\+0x4004
|
||||
0+0058 <[^>]*> ldh r4,0\(zero\)
|
||||
[ ]*58: R_NIOS2_S16 .data-0x8000
|
||||
0+005c <[^>]*> ldh r4,0\(zero\)
|
||||
[ ]*5c: R_NIOS2_S16 big_external_data_label-0x8000
|
||||
0+0060 <[^>]*> ldh r4,0\(zero\)
|
||||
[ ]*60: R_NIOS2_S16 small_external_data_label-0x8000
|
||||
0+0064 <[^>]*> ldh r4,0\(zero\)
|
||||
[ ]*64: R_NIOS2_S16 big_external_common-0x8000
|
||||
0+0068 <[^>]*> ldh r4,0\(zero\)
|
||||
[ ]*68: R_NIOS2_S16 small_external_common-0x8000
|
||||
0+006c <[^>]*> ldh r4,0\(zero\)
|
||||
[ ]*6c: R_NIOS2_S16 .bss-0x8000
|
||||
0+0070 <[^>]*> ldh r4,0\(zero\)
|
||||
[ ]*70: R_NIOS2_S16 .bss-0x4000
|
||||
0+0074 <[^>]*> ldh r4,0\(zero\)
|
||||
[ ]*74: R_NIOS2_S16 .data\+0x10000
|
||||
0+0078 <[^>]*> ldh r4,0\(r5\)
|
||||
[ ]*78: R_NIOS2_S16 .data
|
||||
0+007c <[^>]*> ldh r4,0\(r5\)
|
||||
[ ]*7c: R_NIOS2_S16 big_external_data_label
|
||||
0+0080 <[^>]*> ldh r4,0\(r5\)
|
||||
[ ]*80: R_NIOS2_S16 small_external_data_label
|
||||
0+0084 <[^>]*> ldh r4,0\(r5\)
|
||||
[ ]*84: R_NIOS2_S16 big_external_common
|
||||
0+0088 <[^>]*> ldh r4,0\(r5\)
|
||||
[ ]*88: R_NIOS2_S16 small_external_common
|
||||
0+008c <[^>]*> ldh r4,0\(r5\)
|
||||
[ ]*8c: R_NIOS2_S16 .bss
|
||||
0+0090 <[^>]*> ldh r4,0\(r5\)
|
||||
[ ]*90: R_NIOS2_S16 .bss\+0x4000
|
||||
0+0094 <[^>]*> ldh r4,0\(r5\)
|
||||
[ ]*94: R_NIOS2_S16 .data\+0x4
|
||||
0+0098 <[^>]*> ldh r4,0\(r5\)
|
||||
[ ]*98: R_NIOS2_S16 big_external_data_label\+0x4
|
||||
0+009c <[^>]*> ldh r4,0\(r5\)
|
||||
[ ]*9c: R_NIOS2_S16 small_external_data_label\+0x4
|
||||
0+00a0 <[^>]*> ldh r4,0\(r5\)
|
||||
[ ]*a0: R_NIOS2_S16 big_external_common\+0x4
|
||||
0+00a4 <[^>]*> ldh r4,0\(r5\)
|
||||
[ ]*a4: R_NIOS2_S16 small_external_common\+0x4
|
||||
0+00a8 <[^>]*> ldh r4,0\(r5\)
|
||||
[ ]*a8: R_NIOS2_S16 .bss\+0x4
|
||||
0+00ac <[^>]*> ldh r4,0\(r5\)
|
||||
[ ]*ac: R_NIOS2_S16 .bss\+0x4004
|
||||
0+00b0 <[^>]*> ldh r4,0\(r5\)
|
||||
[ ]*b0: R_NIOS2_S16 .data-0x8000
|
||||
0+00b4 <[^>]*> ldh r4,0\(r5\)
|
||||
[ ]*b4: R_NIOS2_S16 big_external_data_label-0x8000
|
||||
0+00b8 <[^>]*> ldh r4,0\(r5\)
|
||||
[ ]*b8: R_NIOS2_S16 small_external_data_label-0x8000
|
||||
0+00bc <[^>]*> ldh r4,0\(r5\)
|
||||
[ ]*bc: R_NIOS2_S16 big_external_common-0x8000
|
||||
0+00c0 <[^>]*> ldh r4,0\(r5\)
|
||||
[ ]*c0: R_NIOS2_S16 small_external_common-0x8000
|
||||
0+00c4 <[^>]*> ldh r4,0\(r5\)
|
||||
[ ]*c4: R_NIOS2_S16 .bss-0x8000
|
||||
0+00c8 <[^>]*> ldh r4,0\(r5\)
|
||||
[ ]*c8: R_NIOS2_S16 .bss-0x4000
|
||||
0+00cc <[^>]*> ldhio r4,0\(zero\)
|
||||
0+00d0 <[^>]*> ldhio r4,4\(zero\)
|
||||
0+00d4 <[^>]*> ldhio r4,32764\(zero\)
|
||||
0+00d8 <[^>]*> ldhio r4,-32768\(zero\)
|
||||
0+00dc <[^>]*> ldhio r4,0\(r5\)
|
||||
0+00e0 <[^>]*> ldhio r4,4\(r5\)
|
||||
0+00e4 <[^>]*> ldhio r4,32764\(r5\)
|
||||
0+00e8 <[^>]*> ldhio r4,-32768\(r5\)
|
||||
0+00ec <[^>]*> ldhio r4,0\(zero\)
|
||||
[ ]*ec: R_NIOS2_S16 .data
|
||||
0+00f0 <[^>]*> ldhio r4,0\(zero\)
|
||||
[ ]*f0: R_NIOS2_S16 big_external_data_label
|
||||
0+00f4 <[^>]*> ldhio r4,0\(zero\)
|
||||
[ ]*f4: R_NIOS2_S16 small_external_data_label
|
||||
0+00f8 <[^>]*> ldhio r4,0\(zero\)
|
||||
[ ]*f8: R_NIOS2_S16 big_external_common
|
||||
0+00fc <[^>]*> ldhio r4,0\(zero\)
|
||||
[ ]*fc: R_NIOS2_S16 small_external_common
|
||||
0+0100 <[^>]*> ldhio r4,0\(zero\)
|
||||
[ ]*100: R_NIOS2_S16 .bss
|
||||
0+0104 <[^>]*> ldhio r4,0\(zero\)
|
||||
[ ]*104: R_NIOS2_S16 .bss\+0x4000
|
||||
0+0108 <[^>]*> ldhio r4,0\(zero\)
|
||||
[ ]*108: R_NIOS2_S16 .data\+0x4
|
||||
0+010c <[^>]*> ldhio r4,0\(zero\)
|
||||
[ ]*10c: R_NIOS2_S16 big_external_data_label\+0x4
|
||||
0+0110 <[^>]*> ldhio r4,0\(zero\)
|
||||
[ ]*110: R_NIOS2_S16 small_external_data_label\+0x4
|
||||
0+0114 <[^>]*> ldhio r4,0\(zero\)
|
||||
[ ]*114: R_NIOS2_S16 big_external_common\+0x4
|
||||
0+0118 <[^>]*> ldhio r4,0\(zero\)
|
||||
[ ]*118: R_NIOS2_S16 small_external_common\+0x4
|
||||
0+011c <[^>]*> ldhio r4,0\(zero\)
|
||||
[ ]*11c: R_NIOS2_S16 .bss\+0x4
|
||||
0+0120 <[^>]*> ldhio r4,0\(zero\)
|
||||
[ ]*120: R_NIOS2_S16 .bss\+0x4004
|
||||
0+0124 <[^>]*> ldhio r4,0\(zero\)
|
||||
[ ]*124: R_NIOS2_S16 .data-0x8000
|
||||
0+0128 <[^>]*> ldhio r4,0\(zero\)
|
||||
[ ]*128: R_NIOS2_S16 big_external_data_label-0x8000
|
||||
0+012c <[^>]*> ldhio r4,0\(zero\)
|
||||
[ ]*12c: R_NIOS2_S16 small_external_data_label-0x8000
|
||||
0+0130 <[^>]*> ldhio r4,0\(zero\)
|
||||
[ ]*130: R_NIOS2_S16 big_external_common-0x8000
|
||||
0+0134 <[^>]*> ldhio r4,0\(zero\)
|
||||
[ ]*134: R_NIOS2_S16 small_external_common-0x8000
|
||||
0+0138 <[^>]*> ldhio r4,0\(zero\)
|
||||
[ ]*138: R_NIOS2_S16 .bss-0x8000
|
||||
0+013c <[^>]*> ldhio r4,0\(zero\)
|
||||
[ ]*13c: R_NIOS2_S16 .bss-0x4000
|
||||
0+0140 <[^>]*> ldhio r4,0\(zero\)
|
||||
[ ]*140: R_NIOS2_S16 .data\+0x10000
|
||||
0+0144 <[^>]*> ldhio r4,0\(r5\)
|
||||
[ ]*144: R_NIOS2_S16 .data
|
||||
0+0148 <[^>]*> ldhio r4,0\(r5\)
|
||||
[ ]*148: R_NIOS2_S16 big_external_data_label
|
||||
0+014c <[^>]*> ldhio r4,0\(r5\)
|
||||
[ ]*14c: R_NIOS2_S16 small_external_data_label
|
||||
0+0150 <[^>]*> ldhio r4,0\(r5\)
|
||||
[ ]*150: R_NIOS2_S16 big_external_common
|
||||
0+0154 <[^>]*> ldhio r4,0\(r5\)
|
||||
[ ]*154: R_NIOS2_S16 small_external_common
|
||||
0+0158 <[^>]*> ldhio r4,0\(r5\)
|
||||
[ ]*158: R_NIOS2_S16 .bss
|
||||
0+015c <[^>]*> ldhio r4,0\(r5\)
|
||||
[ ]*15c: R_NIOS2_S16 .bss\+0x4000
|
||||
0+0160 <[^>]*> ldhio r4,0\(r5\)
|
||||
[ ]*160: R_NIOS2_S16 .data\+0x4
|
||||
0+0164 <[^>]*> ldhio r4,0\(r5\)
|
||||
[ ]*164: R_NIOS2_S16 big_external_data_label\+0x4
|
||||
0+0168 <[^>]*> ldhio r4,0\(r5\)
|
||||
[ ]*168: R_NIOS2_S16 small_external_data_label\+0x4
|
||||
0+016c <[^>]*> ldhio r4,0\(r5\)
|
||||
[ ]*16c: R_NIOS2_S16 big_external_common\+0x4
|
||||
0+0170 <[^>]*> ldhio r4,0\(r5\)
|
||||
[ ]*170: R_NIOS2_S16 small_external_common\+0x4
|
||||
0+0174 <[^>]*> ldhio r4,0\(r5\)
|
||||
[ ]*174: R_NIOS2_S16 .bss\+0x4
|
||||
0+0178 <[^>]*> ldhio r4,0\(r5\)
|
||||
[ ]*178: R_NIOS2_S16 .bss\+0x4004
|
||||
0+017c <[^>]*> ldhio r4,0\(r5\)
|
||||
[ ]*17c: R_NIOS2_S16 .data-0x8000
|
||||
0+0180 <[^>]*> ldhio r4,0\(r5\)
|
||||
[ ]*180: R_NIOS2_S16 big_external_data_label-0x8000
|
||||
0+0184 <[^>]*> ldhio r4,0\(r5\)
|
||||
[ ]*184: R_NIOS2_S16 small_external_data_label-0x8000
|
||||
0+0188 <[^>]*> ldhio r4,0\(r5\)
|
||||
[ ]*188: R_NIOS2_S16 big_external_common-0x8000
|
||||
0+018c <[^>]*> ldhio r4,0\(r5\)
|
||||
[ ]*18c: R_NIOS2_S16 small_external_common-0x8000
|
||||
0+0190 <[^>]*> ldhio r4,0\(r5\)
|
||||
[ ]*190: R_NIOS2_S16 .bss-0x8000
|
||||
0+0194 <[^>]*> ldhio r4,0\(r5\)
|
||||
[ ]*194: R_NIOS2_S16 .bss-0x4000
|
117
gas/testsuite/gas/nios2/ldh.s
Normal file
117
gas/testsuite/gas/nios2/ldh.s
Normal file
|
@ -0,0 +1,117 @@
|
|||
.data
|
||||
data_label:
|
||||
.extern big_external_data_label,0x4000
|
||||
.extern small_external_data_label,4
|
||||
.comm big_external_common,0x4000
|
||||
.comm small_external_common,4
|
||||
.lcomm big_local_common,0x4000
|
||||
.lcomm small_local_common,4
|
||||
|
||||
# the small symbols should have space allocated in the sbss section
|
||||
# but this is not yet supported in the assembler, so space is allocated
|
||||
# in the .bss section and the relocations are not gp-relative. this will
|
||||
# be updated when gp-relative relocations are added
|
||||
.text
|
||||
ldh r4,0(r0)
|
||||
ldh r4,4(r0)
|
||||
ldh r4,0x7ffc(r0)
|
||||
ldh r4,-0x8000(r0)
|
||||
ldh r4,0(r5)
|
||||
ldh r4,4(r5)
|
||||
ldh r4,0x7ffc(r5)
|
||||
ldh r4,-0x8000(r5)
|
||||
ldh r4,data_label(r0)
|
||||
ldh r4,big_external_data_label(r0)
|
||||
ldh r4,small_external_data_label(r0)
|
||||
ldh r4,big_external_common(r0)
|
||||
ldh r4,small_external_common(r0)
|
||||
ldh r4,big_local_common(r0)
|
||||
ldh r4,small_local_common(r0)
|
||||
ldh r4,data_label+4(r0)
|
||||
ldh r4,big_external_data_label+4(r0)
|
||||
ldh r4,small_external_data_label+4(r0)
|
||||
ldh r4,big_external_common+4(r0)
|
||||
ldh r4,small_external_common+4(r0)
|
||||
ldh r4,big_local_common+4(r0)
|
||||
ldh r4,small_local_common+4(r0)
|
||||
ldh r4,data_label-0x8000(r0)
|
||||
ldh r4,big_external_data_label-0x8000(r0)
|
||||
ldh r4,small_external_data_label-0x8000(r0)
|
||||
ldh r4,big_external_common-0x8000(r0)
|
||||
ldh r4,small_external_common-0x8000(r0)
|
||||
ldh r4,big_local_common-0x8000(r0)
|
||||
ldh r4,small_local_common-0x8000(r0)
|
||||
ldh r4,data_label+0x10000(r0)
|
||||
ldh r4,data_label(r5)
|
||||
ldh r4,big_external_data_label(r5)
|
||||
ldh r4,small_external_data_label(r5)
|
||||
ldh r4,big_external_common(r5)
|
||||
ldh r4,small_external_common(r5)
|
||||
ldh r4,big_local_common(r5)
|
||||
ldh r4,small_local_common(r5)
|
||||
ldh r4,data_label+4(r5)
|
||||
ldh r4,big_external_data_label+4(r5)
|
||||
ldh r4,small_external_data_label+4(r5)
|
||||
ldh r4,big_external_common+4(r5)
|
||||
ldh r4,small_external_common+4(r5)
|
||||
ldh r4,big_local_common+4(r5)
|
||||
ldh r4,small_local_common+4(r5)
|
||||
ldh r4,data_label-0x8000(r5)
|
||||
ldh r4,big_external_data_label-0x8000(r5)
|
||||
ldh r4,small_external_data_label-0x8000(r5)
|
||||
ldh r4,big_external_common-0x8000(r5)
|
||||
ldh r4,small_external_common-0x8000(r5)
|
||||
ldh r4,big_local_common-0x8000(r5)
|
||||
ldh r4,small_local_common-0x8000(r5)
|
||||
|
||||
ldhio r4,0(r0)
|
||||
ldhio r4,4(r0)
|
||||
ldhio r4,0x7ffc(r0)
|
||||
ldhio r4,-0x8000(r0)
|
||||
ldhio r4,0(r5)
|
||||
ldhio r4,4(r5)
|
||||
ldhio r4,0x7ffc(r5)
|
||||
ldhio r4,-0x8000(r5)
|
||||
ldhio r4,data_label(r0)
|
||||
ldhio r4,big_external_data_label(r0)
|
||||
ldhio r4,small_external_data_label(r0)
|
||||
ldhio r4,big_external_common(r0)
|
||||
ldhio r4,small_external_common(r0)
|
||||
ldhio r4,big_local_common(r0)
|
||||
ldhio r4,small_local_common(r0)
|
||||
ldhio r4,data_label+4(r0)
|
||||
ldhio r4,big_external_data_label+4(r0)
|
||||
ldhio r4,small_external_data_label+4(r0)
|
||||
ldhio r4,big_external_common+4(r0)
|
||||
ldhio r4,small_external_common+4(r0)
|
||||
ldhio r4,big_local_common+4(r0)
|
||||
ldhio r4,small_local_common+4(r0)
|
||||
ldhio r4,data_label-0x8000(r0)
|
||||
ldhio r4,big_external_data_label-0x8000(r0)
|
||||
ldhio r4,small_external_data_label-0x8000(r0)
|
||||
ldhio r4,big_external_common-0x8000(r0)
|
||||
ldhio r4,small_external_common-0x8000(r0)
|
||||
ldhio r4,big_local_common-0x8000(r0)
|
||||
ldhio r4,small_local_common-0x8000(r0)
|
||||
ldhio r4,data_label+0x10000(r0)
|
||||
ldhio r4,data_label(r5)
|
||||
ldhio r4,big_external_data_label(r5)
|
||||
ldhio r4,small_external_data_label(r5)
|
||||
ldhio r4,big_external_common(r5)
|
||||
ldhio r4,small_external_common(r5)
|
||||
ldhio r4,big_local_common(r5)
|
||||
ldhio r4,small_local_common(r5)
|
||||
ldhio r4,data_label+4(r5)
|
||||
ldhio r4,big_external_data_label+4(r5)
|
||||
ldhio r4,small_external_data_label+4(r5)
|
||||
ldhio r4,big_external_common+4(r5)
|
||||
ldhio r4,small_external_common+4(r5)
|
||||
ldhio r4,big_local_common+4(r5)
|
||||
ldhio r4,small_local_common+4(r5)
|
||||
ldhio r4,data_label-0x8000(r5)
|
||||
ldhio r4,big_external_data_label-0x8000(r5)
|
||||
ldhio r4,small_external_data_label-0x8000(r5)
|
||||
ldhio r4,big_external_common-0x8000(r5)
|
||||
ldhio r4,small_external_common-0x8000(r5)
|
||||
ldhio r4,big_local_common-0x8000(r5)
|
||||
ldhio r4,small_local_common-0x8000(r5)
|
196
gas/testsuite/gas/nios2/ldw.d
Normal file
196
gas/testsuite/gas/nios2/ldw.d
Normal file
|
@ -0,0 +1,196 @@
|
|||
#objdump: -dr --prefix-addresses
|
||||
#name: NIOS2 ldw
|
||||
|
||||
# Test the ld instruction
|
||||
|
||||
.*: +file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
0+0000 <[^>]*> ldw r4,0\(zero\)
|
||||
0+0004 <[^>]*> ldw r4,4\(zero\)
|
||||
0+0008 <[^>]*> ldw r4,32764\(zero\)
|
||||
0+000c <[^>]*> ldw r4,-32768\(zero\)
|
||||
0+0010 <[^>]*> ldw r4,0\(r5\)
|
||||
0+0014 <[^>]*> ldw r4,4\(r5\)
|
||||
0+0018 <[^>]*> ldw r4,32764\(r5\)
|
||||
0+001c <[^>]*> ldw r4,-32768\(r5\)
|
||||
0+0020 <[^>]*> ldw r4,0\(zero\)
|
||||
[ ]*20: R_NIOS2_S16 .data
|
||||
0+0024 <[^>]*> ldw r4,0\(zero\)
|
||||
[ ]*24: R_NIOS2_S16 big_external_data_label
|
||||
0+0028 <[^>]*> ldw r4,0\(zero\)
|
||||
[ ]*28: R_NIOS2_S16 small_external_data_label
|
||||
0+002c <[^>]*> ldw r4,0\(zero\)
|
||||
[ ]*2c: R_NIOS2_S16 big_external_common
|
||||
0+0030 <[^>]*> ldw r4,0\(zero\)
|
||||
[ ]*30: R_NIOS2_S16 small_external_common
|
||||
0+0034 <[^>]*> ldw r4,0\(zero\)
|
||||
[ ]*34: R_NIOS2_S16 .bss
|
||||
0+0038 <[^>]*> ldw r4,0\(zero\)
|
||||
[ ]*38: R_NIOS2_S16 .bss\+0x4000
|
||||
0+003c <[^>]*> ldw r4,0\(zero\)
|
||||
[ ]*3c: R_NIOS2_S16 .data\+0x4
|
||||
0+0040 <[^>]*> ldw r4,0\(zero\)
|
||||
[ ]*40: R_NIOS2_S16 big_external_data_label\+0x4
|
||||
0+0044 <[^>]*> ldw r4,0\(zero\)
|
||||
[ ]*44: R_NIOS2_S16 small_external_data_label\+0x4
|
||||
0+0048 <[^>]*> ldw r4,0\(zero\)
|
||||
[ ]*48: R_NIOS2_S16 big_external_common\+0x4
|
||||
0+004c <[^>]*> ldw r4,0\(zero\)
|
||||
[ ]*4c: R_NIOS2_S16 small_external_common\+0x4
|
||||
0+0050 <[^>]*> ldw r4,0\(zero\)
|
||||
[ ]*50: R_NIOS2_S16 .bss\+0x4
|
||||
0+0054 <[^>]*> ldw r4,0\(zero\)
|
||||
[ ]*54: R_NIOS2_S16 .bss\+0x4004
|
||||
0+0058 <[^>]*> ldw r4,0\(zero\)
|
||||
[ ]*58: R_NIOS2_S16 .data-0x8000
|
||||
0+005c <[^>]*> ldw r4,0\(zero\)
|
||||
[ ]*5c: R_NIOS2_S16 big_external_data_label-0x8000
|
||||
0+0060 <[^>]*> ldw r4,0\(zero\)
|
||||
[ ]*60: R_NIOS2_S16 small_external_data_label-0x8000
|
||||
0+0064 <[^>]*> ldw r4,0\(zero\)
|
||||
[ ]*64: R_NIOS2_S16 big_external_common-0x8000
|
||||
0+0068 <[^>]*> ldw r4,0\(zero\)
|
||||
[ ]*68: R_NIOS2_S16 small_external_common-0x8000
|
||||
0+006c <[^>]*> ldw r4,0\(zero\)
|
||||
[ ]*6c: R_NIOS2_S16 .bss-0x8000
|
||||
0+0070 <[^>]*> ldw r4,0\(zero\)
|
||||
[ ]*70: R_NIOS2_S16 .bss-0x4000
|
||||
0+0074 <[^>]*> ldw r4,0\(zero\)
|
||||
[ ]*74: R_NIOS2_S16 .data\+0x10000
|
||||
0+0078 <[^>]*> ldw r4,0\(r5\)
|
||||
[ ]*78: R_NIOS2_S16 .data
|
||||
0+007c <[^>]*> ldw r4,0\(r5\)
|
||||
[ ]*7c: R_NIOS2_S16 big_external_data_label
|
||||
0+0080 <[^>]*> ldw r4,0\(r5\)
|
||||
[ ]*80: R_NIOS2_S16 small_external_data_label
|
||||
0+0084 <[^>]*> ldw r4,0\(r5\)
|
||||
[ ]*84: R_NIOS2_S16 big_external_common
|
||||
0+0088 <[^>]*> ldw r4,0\(r5\)
|
||||
[ ]*88: R_NIOS2_S16 small_external_common
|
||||
0+008c <[^>]*> ldw r4,0\(r5\)
|
||||
[ ]*8c: R_NIOS2_S16 .bss
|
||||
0+0090 <[^>]*> ldw r4,0\(r5\)
|
||||
[ ]*90: R_NIOS2_S16 .bss\+0x4000
|
||||
0+0094 <[^>]*> ldw r4,0\(r5\)
|
||||
[ ]*94: R_NIOS2_S16 .data\+0x4
|
||||
0+0098 <[^>]*> ldw r4,0\(r5\)
|
||||
[ ]*98: R_NIOS2_S16 big_external_data_label\+0x4
|
||||
0+009c <[^>]*> ldw r4,0\(r5\)
|
||||
[ ]*9c: R_NIOS2_S16 small_external_data_label\+0x4
|
||||
0+00a0 <[^>]*> ldw r4,0\(r5\)
|
||||
[ ]*a0: R_NIOS2_S16 big_external_common\+0x4
|
||||
0+00a4 <[^>]*> ldw r4,0\(r5\)
|
||||
[ ]*a4: R_NIOS2_S16 small_external_common\+0x4
|
||||
0+00a8 <[^>]*> ldw r4,0\(r5\)
|
||||
[ ]*a8: R_NIOS2_S16 .bss\+0x4
|
||||
0+00ac <[^>]*> ldw r4,0\(r5\)
|
||||
[ ]*ac: R_NIOS2_S16 .bss\+0x4004
|
||||
0+00b0 <[^>]*> ldw r4,0\(r5\)
|
||||
[ ]*b0: R_NIOS2_S16 .data-0x8000
|
||||
0+00b4 <[^>]*> ldw r4,0\(r5\)
|
||||
[ ]*b4: R_NIOS2_S16 big_external_data_label-0x8000
|
||||
0+00b8 <[^>]*> ldw r4,0\(r5\)
|
||||
[ ]*b8: R_NIOS2_S16 small_external_data_label-0x8000
|
||||
0+00bc <[^>]*> ldw r4,0\(r5\)
|
||||
[ ]*bc: R_NIOS2_S16 big_external_common-0x8000
|
||||
0+00c0 <[^>]*> ldw r4,0\(r5\)
|
||||
[ ]*c0: R_NIOS2_S16 small_external_common-0x8000
|
||||
0+00c4 <[^>]*> ldw r4,0\(r5\)
|
||||
[ ]*c4: R_NIOS2_S16 .bss-0x8000
|
||||
0+00c8 <[^>]*> ldw r4,0\(r5\)
|
||||
[ ]*c8: R_NIOS2_S16 .bss-0x4000
|
||||
0+00cc <[^>]*> ldwio r4,0\(zero\)
|
||||
0+00d0 <[^>]*> ldwio r4,4\(zero\)
|
||||
0+00d4 <[^>]*> ldwio r4,32764\(zero\)
|
||||
0+00d8 <[^>]*> ldwio r4,-32768\(zero\)
|
||||
0+00dc <[^>]*> ldwio r4,0\(r5\)
|
||||
0+00e0 <[^>]*> ldwio r4,4\(r5\)
|
||||
0+00e4 <[^>]*> ldwio r4,32764\(r5\)
|
||||
0+00e8 <[^>]*> ldwio r4,-32768\(r5\)
|
||||
0+00ec <[^>]*> ldwio r4,0\(zero\)
|
||||
[ ]*ec: R_NIOS2_S16 .data
|
||||
0+00f0 <[^>]*> ldwio r4,0\(zero\)
|
||||
[ ]*f0: R_NIOS2_S16 big_external_data_label
|
||||
0+00f4 <[^>]*> ldwio r4,0\(zero\)
|
||||
[ ]*f4: R_NIOS2_S16 small_external_data_label
|
||||
0+00f8 <[^>]*> ldwio r4,0\(zero\)
|
||||
[ ]*f8: R_NIOS2_S16 big_external_common
|
||||
0+00fc <[^>]*> ldwio r4,0\(zero\)
|
||||
[ ]*fc: R_NIOS2_S16 small_external_common
|
||||
0+0100 <[^>]*> ldwio r4,0\(zero\)
|
||||
[ ]*100: R_NIOS2_S16 .bss
|
||||
0+0104 <[^>]*> ldwio r4,0\(zero\)
|
||||
[ ]*104: R_NIOS2_S16 .bss\+0x4000
|
||||
0+0108 <[^>]*> ldwio r4,0\(zero\)
|
||||
[ ]*108: R_NIOS2_S16 .data\+0x4
|
||||
0+010c <[^>]*> ldwio r4,0\(zero\)
|
||||
[ ]*10c: R_NIOS2_S16 big_external_data_label\+0x4
|
||||
0+0110 <[^>]*> ldwio r4,0\(zero\)
|
||||
[ ]*110: R_NIOS2_S16 small_external_data_label\+0x4
|
||||
0+0114 <[^>]*> ldwio r4,0\(zero\)
|
||||
[ ]*114: R_NIOS2_S16 big_external_common\+0x4
|
||||
0+0118 <[^>]*> ldwio r4,0\(zero\)
|
||||
[ ]*118: R_NIOS2_S16 small_external_common\+0x4
|
||||
0+011c <[^>]*> ldwio r4,0\(zero\)
|
||||
[ ]*11c: R_NIOS2_S16 .bss\+0x4
|
||||
0+0120 <[^>]*> ldwio r4,0\(zero\)
|
||||
[ ]*120: R_NIOS2_S16 .bss\+0x4004
|
||||
0+0124 <[^>]*> ldwio r4,0\(zero\)
|
||||
[ ]*124: R_NIOS2_S16 .data-0x8000
|
||||
0+0128 <[^>]*> ldwio r4,0\(zero\)
|
||||
[ ]*128: R_NIOS2_S16 big_external_data_label-0x8000
|
||||
0+012c <[^>]*> ldwio r4,0\(zero\)
|
||||
[ ]*12c: R_NIOS2_S16 small_external_data_label-0x8000
|
||||
0+0130 <[^>]*> ldwio r4,0\(zero\)
|
||||
[ ]*130: R_NIOS2_S16 big_external_common-0x8000
|
||||
0+0134 <[^>]*> ldwio r4,0\(zero\)
|
||||
[ ]*134: R_NIOS2_S16 small_external_common-0x8000
|
||||
0+0138 <[^>]*> ldwio r4,0\(zero\)
|
||||
[ ]*138: R_NIOS2_S16 .bss-0x8000
|
||||
0+013c <[^>]*> ldwio r4,0\(zero\)
|
||||
[ ]*13c: R_NIOS2_S16 .bss-0x4000
|
||||
0+0140 <[^>]*> ldwio r4,0\(zero\)
|
||||
[ ]*140: R_NIOS2_S16 .data\+0x10000
|
||||
0+0144 <[^>]*> ldwio r4,0\(r5\)
|
||||
[ ]*144: R_NIOS2_S16 .data
|
||||
0+0148 <[^>]*> ldwio r4,0\(r5\)
|
||||
[ ]*148: R_NIOS2_S16 big_external_data_label
|
||||
0+014c <[^>]*> ldwio r4,0\(r5\)
|
||||
[ ]*14c: R_NIOS2_S16 small_external_data_label
|
||||
0+0150 <[^>]*> ldwio r4,0\(r5\)
|
||||
[ ]*150: R_NIOS2_S16 big_external_common
|
||||
0+0154 <[^>]*> ldwio r4,0\(r5\)
|
||||
[ ]*154: R_NIOS2_S16 small_external_common
|
||||
0+0158 <[^>]*> ldwio r4,0\(r5\)
|
||||
[ ]*158: R_NIOS2_S16 .bss
|
||||
0+015c <[^>]*> ldwio r4,0\(r5\)
|
||||
[ ]*15c: R_NIOS2_S16 .bss\+0x4000
|
||||
0+0160 <[^>]*> ldwio r4,0\(r5\)
|
||||
[ ]*160: R_NIOS2_S16 .data\+0x4
|
||||
0+0164 <[^>]*> ldwio r4,0\(r5\)
|
||||
[ ]*164: R_NIOS2_S16 big_external_data_label\+0x4
|
||||
0+0168 <[^>]*> ldwio r4,0\(r5\)
|
||||
[ ]*168: R_NIOS2_S16 small_external_data_label\+0x4
|
||||
0+016c <[^>]*> ldwio r4,0\(r5\)
|
||||
[ ]*16c: R_NIOS2_S16 big_external_common\+0x4
|
||||
0+0170 <[^>]*> ldwio r4,0\(r5\)
|
||||
[ ]*170: R_NIOS2_S16 small_external_common\+0x4
|
||||
0+0174 <[^>]*> ldwio r4,0\(r5\)
|
||||
[ ]*174: R_NIOS2_S16 .bss\+0x4
|
||||
0+0178 <[^>]*> ldwio r4,0\(r5\)
|
||||
[ ]*178: R_NIOS2_S16 .bss\+0x4004
|
||||
0+017c <[^>]*> ldwio r4,0\(r5\)
|
||||
[ ]*17c: R_NIOS2_S16 .data-0x8000
|
||||
0+0180 <[^>]*> ldwio r4,0\(r5\)
|
||||
[ ]*180: R_NIOS2_S16 big_external_data_label-0x8000
|
||||
0+0184 <[^>]*> ldwio r4,0\(r5\)
|
||||
[ ]*184: R_NIOS2_S16 small_external_data_label-0x8000
|
||||
0+0188 <[^>]*> ldwio r4,0\(r5\)
|
||||
[ ]*188: R_NIOS2_S16 big_external_common-0x8000
|
||||
0+018c <[^>]*> ldwio r4,0\(r5\)
|
||||
[ ]*18c: R_NIOS2_S16 small_external_common-0x8000
|
||||
0+0190 <[^>]*> ldwio r4,0\(r5\)
|
||||
[ ]*190: R_NIOS2_S16 .bss-0x8000
|
||||
0+0194 <[^>]*> ldwio r4,0\(r5\)
|
||||
[ ]*194: R_NIOS2_S16 .bss-0x4000
|
117
gas/testsuite/gas/nios2/ldw.s
Normal file
117
gas/testsuite/gas/nios2/ldw.s
Normal file
|
@ -0,0 +1,117 @@
|
|||
.data
|
||||
data_label:
|
||||
.extern big_external_data_label,0x4000
|
||||
.extern small_external_data_label,4
|
||||
.comm big_external_common,0x4000
|
||||
.comm small_external_common,4
|
||||
.lcomm big_local_common,0x4000
|
||||
.lcomm small_local_common,4
|
||||
|
||||
# the small symbols should have space allocated in the sbss section
|
||||
# but this is not yet supported in the assembler, so space is allocated
|
||||
# in the .bss section and the relocations are not gp-relative. this will
|
||||
# be updated when gp-relative relocations are added
|
||||
.text
|
||||
ldw r4,0(r0)
|
||||
ldw r4,4(r0)
|
||||
ldw r4,0x7ffc(r0)
|
||||
ldw r4,-0x8000(r0)
|
||||
ldw r4,0(r5)
|
||||
ldw r4,4(r5)
|
||||
ldw r4,0x7ffc(r5)
|
||||
ldw r4,-0x8000(r5)
|
||||
ldw r4,data_label(r0)
|
||||
ldw r4,big_external_data_label(r0)
|
||||
ldw r4,small_external_data_label(r0)
|
||||
ldw r4,big_external_common(r0)
|
||||
ldw r4,small_external_common(r0)
|
||||
ldw r4,big_local_common(r0)
|
||||
ldw r4,small_local_common(r0)
|
||||
ldw r4,data_label+4(r0)
|
||||
ldw r4,big_external_data_label+4(r0)
|
||||
ldw r4,small_external_data_label+4(r0)
|
||||
ldw r4,big_external_common+4(r0)
|
||||
ldw r4,small_external_common+4(r0)
|
||||
ldw r4,big_local_common+4(r0)
|
||||
ldw r4,small_local_common+4(r0)
|
||||
ldw r4,data_label-0x8000(r0)
|
||||
ldw r4,big_external_data_label-0x8000(r0)
|
||||
ldw r4,small_external_data_label-0x8000(r0)
|
||||
ldw r4,big_external_common-0x8000(r0)
|
||||
ldw r4,small_external_common-0x8000(r0)
|
||||
ldw r4,big_local_common-0x8000(r0)
|
||||
ldw r4,small_local_common-0x8000(r0)
|
||||
ldw r4,data_label+0x10000(r0)
|
||||
ldw r4,data_label(r5)
|
||||
ldw r4,big_external_data_label(r5)
|
||||
ldw r4,small_external_data_label(r5)
|
||||
ldw r4,big_external_common(r5)
|
||||
ldw r4,small_external_common(r5)
|
||||
ldw r4,big_local_common(r5)
|
||||
ldw r4,small_local_common(r5)
|
||||
ldw r4,data_label+4(r5)
|
||||
ldw r4,big_external_data_label+4(r5)
|
||||
ldw r4,small_external_data_label+4(r5)
|
||||
ldw r4,big_external_common+4(r5)
|
||||
ldw r4,small_external_common+4(r5)
|
||||
ldw r4,big_local_common+4(r5)
|
||||
ldw r4,small_local_common+4(r5)
|
||||
ldw r4,data_label-0x8000(r5)
|
||||
ldw r4,big_external_data_label-0x8000(r5)
|
||||
ldw r4,small_external_data_label-0x8000(r5)
|
||||
ldw r4,big_external_common-0x8000(r5)
|
||||
ldw r4,small_external_common-0x8000(r5)
|
||||
ldw r4,big_local_common-0x8000(r5)
|
||||
ldw r4,small_local_common-0x8000(r5)
|
||||
|
||||
ldwio r4,0(r0)
|
||||
ldwio r4,4(r0)
|
||||
ldwio r4,0x7ffc(r0)
|
||||
ldwio r4,-0x8000(r0)
|
||||
ldwio r4,0(r5)
|
||||
ldwio r4,4(r5)
|
||||
ldwio r4,0x7ffc(r5)
|
||||
ldwio r4,-0x8000(r5)
|
||||
ldwio r4,data_label(r0)
|
||||
ldwio r4,big_external_data_label(r0)
|
||||
ldwio r4,small_external_data_label(r0)
|
||||
ldwio r4,big_external_common(r0)
|
||||
ldwio r4,small_external_common(r0)
|
||||
ldwio r4,big_local_common(r0)
|
||||
ldwio r4,small_local_common(r0)
|
||||
ldwio r4,data_label+4(r0)
|
||||
ldwio r4,big_external_data_label+4(r0)
|
||||
ldwio r4,small_external_data_label+4(r0)
|
||||
ldwio r4,big_external_common+4(r0)
|
||||
ldwio r4,small_external_common+4(r0)
|
||||
ldwio r4,big_local_common+4(r0)
|
||||
ldwio r4,small_local_common+4(r0)
|
||||
ldwio r4,data_label-0x8000(r0)
|
||||
ldwio r4,big_external_data_label-0x8000(r0)
|
||||
ldwio r4,small_external_data_label-0x8000(r0)
|
||||
ldwio r4,big_external_common-0x8000(r0)
|
||||
ldwio r4,small_external_common-0x8000(r0)
|
||||
ldwio r4,big_local_common-0x8000(r0)
|
||||
ldwio r4,small_local_common-0x8000(r0)
|
||||
ldwio r4,data_label+0x10000(r0)
|
||||
ldwio r4,data_label(r5)
|
||||
ldwio r4,big_external_data_label(r5)
|
||||
ldwio r4,small_external_data_label(r5)
|
||||
ldwio r4,big_external_common(r5)
|
||||
ldwio r4,small_external_common(r5)
|
||||
ldwio r4,big_local_common(r5)
|
||||
ldwio r4,small_local_common(r5)
|
||||
ldwio r4,data_label+4(r5)
|
||||
ldwio r4,big_external_data_label+4(r5)
|
||||
ldwio r4,small_external_data_label+4(r5)
|
||||
ldwio r4,big_external_common+4(r5)
|
||||
ldwio r4,small_external_common+4(r5)
|
||||
ldwio r4,big_local_common+4(r5)
|
||||
ldwio r4,small_local_common+4(r5)
|
||||
ldwio r4,data_label-0x8000(r5)
|
||||
ldwio r4,big_external_data_label-0x8000(r5)
|
||||
ldwio r4,small_external_data_label-0x8000(r5)
|
||||
ldwio r4,big_external_common-0x8000(r5)
|
||||
ldwio r4,small_external_common-0x8000(r5)
|
||||
ldwio r4,big_local_common-0x8000(r5)
|
||||
ldwio r4,small_local_common-0x8000(r5)
|
10
gas/testsuite/gas/nios2/lineseparator.d
Normal file
10
gas/testsuite/gas/nios2/lineseparator.d
Normal file
|
@ -0,0 +1,10 @@
|
|||
#objdump: -dr --prefix-addresses
|
||||
#name: NIOS2 lineseparator
|
||||
|
||||
# Test the add instruction
|
||||
|
||||
.*: +file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
0x0+0000 mov r5,r4
|
||||
0x0+0004 mov r4,r5
|
4
gas/testsuite/gas/nios2/lineseparator.s
Normal file
4
gas/testsuite/gas/nios2/lineseparator.s
Normal file
|
@ -0,0 +1,4 @@
|
|||
mov r5, r4 ; mov r4, r5
|
||||
|
||||
|
||||
|
11
gas/testsuite/gas/nios2/mov.d
Normal file
11
gas/testsuite/gas/nios2/mov.d
Normal file
|
@ -0,0 +1,11 @@
|
|||
#objdump: -dr --prefix-addresses
|
||||
#name: NIOS2 mov
|
||||
|
||||
# Test the mov instruction
|
||||
|
||||
.*: +file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
0+0000 <[^>]*> movz \$4,\$5,\$6
|
||||
0+0004 <[^>]*> movnz \$4,\$5,\$6
|
||||
|
5
gas/testsuite/gas/nios2/mov.s
Normal file
5
gas/testsuite/gas/nios2/mov.s
Normal file
|
@ -0,0 +1,5 @@
|
|||
# Source file used to test the movz and movnz instructions
|
||||
|
||||
foo:
|
||||
movz $4,$5,$6
|
||||
movnz $4,$5,$6
|
13
gas/testsuite/gas/nios2/movi.d
Normal file
13
gas/testsuite/gas/nios2/movi.d
Normal file
|
@ -0,0 +1,13 @@
|
|||
#objdump: -dr --prefix-addresses
|
||||
#name: NIOS2 movi
|
||||
|
||||
# Test implicit conversion of movi/movhi etc
|
||||
.*: file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
0+0000 <[^>]*> movi r2,32
|
||||
0+0004 <[^>]*> movhi r2,8192
|
||||
0+0008 <[^>]*> movhi r2,65535
|
||||
0+000c <[^>]*> orhi r2,r5,65535
|
||||
0+0010 <[^>]*> xorhi r2,r10,65535
|
||||
0+0014 <[^>]*> andhi r2,r15,65535
|
21
gas/testsuite/gas/nios2/movi.s
Normal file
21
gas/testsuite/gas/nios2/movi.s
Normal file
|
@ -0,0 +1,21 @@
|
|||
# Source file used to test silent conversion of
|
||||
# movi to orhi etc
|
||||
|
||||
foo:
|
||||
# this doesn't get converted
|
||||
movi r2, 0x20
|
||||
|
||||
# this does
|
||||
movi r2, 0x20000000
|
||||
|
||||
# addi should convert only if the source register is r0
|
||||
addi r2, r0, 0xffff0000
|
||||
# but we can't test for non-conversion because the value would
|
||||
# be out of range
|
||||
|
||||
# logical ops should convert for any register
|
||||
ori r2, r5, 0xffff0000
|
||||
xori r2, r10, 0xffff0000
|
||||
andi r2, r15, 0xffff0000
|
||||
|
||||
|
18
gas/testsuite/gas/nios2/movia.d
Normal file
18
gas/testsuite/gas/nios2/movia.d
Normal file
|
@ -0,0 +1,18 @@
|
|||
#objdump: -dr --prefix-addresses
|
||||
#name: NIOS2 movia
|
||||
|
||||
# Test the movia instruction
|
||||
|
||||
.*: +file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
0+0000 <[^>]*> movhi r2,32897
|
||||
0+0004 <[^>]*> addi r2,r2,-32640
|
||||
0+0008 <[^>]*> movhi r3,0
|
||||
8: R_NIOS2_HIADJ16 sym-0x80000000
|
||||
0+000c <[^>]*> addi r3,r3,0
|
||||
c: R_NIOS2_LO16 sym-0x80000000
|
||||
0+0010 <[^>]*> movhi r4,0
|
||||
10: R_NIOS2_HIADJ16 sym-0x7fffffff
|
||||
0+0014 <[^>]*> addi r4,r4,0
|
||||
14: R_NIOS2_LO16 sym-0x7fffffff
|
6
gas/testsuite/gas/nios2/movia.s
Normal file
6
gas/testsuite/gas/nios2/movia.s
Normal file
|
@ -0,0 +1,6 @@
|
|||
# Test program for movia reg, immed32 macro
|
||||
|
||||
foo:
|
||||
movia r2, 0x80808080
|
||||
movia r3, sym + 0x80000000
|
||||
movia r4, sym - 0x7fffffff
|
19
gas/testsuite/gas/nios2/mul.d
Normal file
19
gas/testsuite/gas/nios2/mul.d
Normal file
|
@ -0,0 +1,19 @@
|
|||
#objdump: -dr --prefix-addresses
|
||||
#name: NIOS2 mul
|
||||
|
||||
# Test the mul macro.
|
||||
|
||||
.*: +file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
0+0000 <[^>]*> mul r4,r5,r6
|
||||
0+0004 <[^>]*> muli r4,r5,0
|
||||
0+0008 <[^>]*> muli r4,r5,1
|
||||
0+000c <[^>]*> muli r4,r5,-32768
|
||||
0+0010 <[^>]*> muli r4,r5,32767
|
||||
0+0014 <[^>]*> muli r4,r5,0
|
||||
[ ]*14: R_NIOS2_S16 undefined_symbol
|
||||
0+0018 <[^>]*> muli r4,r5,16448
|
||||
0+001c <[^>]*> mulxss r4,r5,r6
|
||||
0+0020 <[^>]*> mulxsu r4,r5,r6
|
||||
0+0024 <[^>]*> mulxuu r4,r5,r6
|
15
gas/testsuite/gas/nios2/mul.s
Normal file
15
gas/testsuite/gas/nios2/mul.s
Normal file
|
@ -0,0 +1,15 @@
|
|||
# Source file used to test the mul macro.
|
||||
|
||||
foo:
|
||||
mul r4,r5,r6
|
||||
muli r4,r5,0
|
||||
muli r4,r5,1
|
||||
muli r4,r5,-0x8000
|
||||
muli r4,r5,0x7fff
|
||||
muli r4,r5,undefined_symbol
|
||||
muli r4,r5,defined_symbol
|
||||
mulxss r4,r5,r6
|
||||
mulxsu r4,r5,r6
|
||||
mulxuu r4,r5,r6
|
||||
.data
|
||||
.set defined_symbol, 0x4040
|
75
gas/testsuite/gas/nios2/nios2.exp
Normal file
75
gas/testsuite/gas/nios2/nios2.exp
Normal file
|
@ -0,0 +1,75 @@
|
|||
#
|
||||
# Some generic Nios II tests
|
||||
#
|
||||
|
||||
proc run_list_test { name } {
|
||||
global srcdir subdir
|
||||
set testname "NIOS2 $name"
|
||||
set file $srcdir/$subdir/$name
|
||||
gas_run ${name}.s "" ">&dump.out"
|
||||
if { [regexp_diff "dump.out" "${file}.l"] } then {
|
||||
fail $testname
|
||||
verbose "output is [file_contents "dump.out"]" 2
|
||||
return
|
||||
}
|
||||
pass $testname
|
||||
}
|
||||
|
||||
if { [istarget nios2-*-*] } then {
|
||||
|
||||
run_dump_test "add"
|
||||
run_dump_test "and"
|
||||
run_dump_test "align_fill"
|
||||
run_dump_test "align_text"
|
||||
|
||||
run_dump_test "branch"
|
||||
|
||||
run_dump_test "break"
|
||||
run_dump_test "bret"
|
||||
run_dump_test "cache"
|
||||
|
||||
run_dump_test "call"
|
||||
run_dump_test "call26"
|
||||
|
||||
run_dump_test "cmp"
|
||||
|
||||
run_dump_test "jmp"
|
||||
run_dump_test "ldw"
|
||||
run_dump_test "ldh"
|
||||
run_dump_test "ldb"
|
||||
|
||||
run_dump_test "flushda"
|
||||
|
||||
run_dump_test "mul"
|
||||
|
||||
run_dump_test "nor"
|
||||
run_dump_test "or"
|
||||
|
||||
run_dump_test "ctl"
|
||||
run_dump_test "ret"
|
||||
run_dump_test "rotate"
|
||||
|
||||
run_dump_test "stw"
|
||||
run_dump_test "sth"
|
||||
run_dump_test "stb"
|
||||
|
||||
run_dump_test "sub"
|
||||
run_dump_test "sync"
|
||||
run_dump_test "trap"
|
||||
run_dump_test "tret"
|
||||
|
||||
run_dump_test "custom"
|
||||
run_dump_test "xor"
|
||||
run_dump_test "movia"
|
||||
|
||||
run_dump_test "complex"
|
||||
run_dump_test "comments"
|
||||
run_dump_test "etbt"
|
||||
run_dump_test "lineseparator"
|
||||
run_dump_test "movi"
|
||||
|
||||
run_list_test "illegal"
|
||||
run_list_test "warn_nobreak"
|
||||
run_list_test "warn_noat"
|
||||
|
||||
}
|
9
gas/testsuite/gas/nios2/nor.d
Normal file
9
gas/testsuite/gas/nios2/nor.d
Normal file
|
@ -0,0 +1,9 @@
|
|||
#objdump: -dr --prefix-addresses
|
||||
#name: NIOS2 nor
|
||||
|
||||
# Test the nor instruction
|
||||
|
||||
.*: +file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
0+0000 <[^>]*> nor r6,r8,r10
|
5
gas/testsuite/gas/nios2/nor.s
Normal file
5
gas/testsuite/gas/nios2/nor.s
Normal file
|
@ -0,0 +1,5 @@
|
|||
# Source file used to test the nor instruction
|
||||
|
||||
foo:
|
||||
nor r6,r8,r10
|
||||
|
11
gas/testsuite/gas/nios2/or.d
Normal file
11
gas/testsuite/gas/nios2/or.d
Normal file
|
@ -0,0 +1,11 @@
|
|||
#objdump: -dr --prefix-addresses
|
||||
#name: NIOS2 or
|
||||
|
||||
# Test the nor instruction
|
||||
|
||||
.*: +file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
0+0000 <[^>]*> or r6,r8,r10
|
||||
0+0004 <[^>]*> orhi r6,r7,65535
|
||||
0+0008 <[^>]*> ori r6,r7,65535
|
7
gas/testsuite/gas/nios2/or.s
Normal file
7
gas/testsuite/gas/nios2/or.s
Normal file
|
@ -0,0 +1,7 @@
|
|||
# Source file used to test the nor instruction
|
||||
|
||||
foo:
|
||||
or r6,r8,r10
|
||||
orhi r6,r7,0xffff
|
||||
ori r6,r7,0xffff
|
||||
|
8
gas/testsuite/gas/nios2/ret.d
Normal file
8
gas/testsuite/gas/nios2/ret.d
Normal file
|
@ -0,0 +1,8 @@
|
|||
#objdump: -dr --prefix-addresses
|
||||
#name: NIOS2 ret
|
||||
|
||||
.*: +file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
0+0000 <[^>]*> ret
|
||||
|
5
gas/testsuite/gas/nios2/ret.s
Normal file
5
gas/testsuite/gas/nios2/ret.s
Normal file
|
@ -0,0 +1,5 @@
|
|||
# Source file used to test the ret instructions
|
||||
foo:
|
||||
ret
|
||||
|
||||
|
40
gas/testsuite/gas/nios2/rol.d
Normal file
40
gas/testsuite/gas/nios2/rol.d
Normal file
|
@ -0,0 +1,40 @@
|
|||
#objdump: -dr --prefix-addresses -mmips:3000
|
||||
#as: -march=r3000 -mtune=r3000
|
||||
#name: MIPS R3000 rol
|
||||
|
||||
# Test the rol and ror macros.
|
||||
|
||||
.*: +file format .*mips.*
|
||||
|
||||
Disassembly of section .text:
|
||||
0+0000 <[^>]*> negu at,a1
|
||||
0+0004 <[^>]*> srlv at,a0,at
|
||||
0+0008 <[^>]*> sllv a0,a0,a1
|
||||
0+000c <[^>]*> or a0,a0,at
|
||||
0+0010 <[^>]*> negu at,a2
|
||||
0+0014 <[^>]*> srlv at,a1,at
|
||||
0+0018 <[^>]*> sllv a0,a1,a2
|
||||
0+001c <[^>]*> or a0,a0,at
|
||||
0+0020 <[^>]*> sll at,a0,0x1
|
||||
0+0024 <[^>]*> srl a0,a0,0x1f
|
||||
0+0028 <[^>]*> or a0,a0,at
|
||||
0+002c <[^>]*> sll at,a1,0x1
|
||||
0+0030 <[^>]*> srl a0,a1,0x1f
|
||||
0+0034 <[^>]*> or a0,a0,at
|
||||
0+0038 <[^>]*> srl a0,a1,0x0
|
||||
0+003c <[^>]*> negu at,a1
|
||||
0+0040 <[^>]*> sllv at,a0,at
|
||||
0+0044 <[^>]*> srlv a0,a0,a1
|
||||
0+0048 <[^>]*> or a0,a0,at
|
||||
0+004c <[^>]*> negu at,a2
|
||||
0+0050 <[^>]*> sllv at,a1,at
|
||||
0+0054 <[^>]*> srlv a0,a1,a2
|
||||
0+0058 <[^>]*> or a0,a0,at
|
||||
0+005c <[^>]*> srl at,a0,0x1
|
||||
0+0060 <[^>]*> sll a0,a0,0x1f
|
||||
0+0064 <[^>]*> or a0,a0,at
|
||||
0+0068 <[^>]*> srl at,a1,0x1
|
||||
0+006c <[^>]*> sll a0,a1,0x1f
|
||||
0+0070 <[^>]*> or a0,a0,at
|
||||
0+0074 <[^>]*> srl a0,a1,0x0
|
||||
...
|
15
gas/testsuite/gas/nios2/rol.s
Normal file
15
gas/testsuite/gas/nios2/rol.s
Normal file
|
@ -0,0 +1,15 @@
|
|||
# Source file used to test the rol and ror macros.
|
||||
|
||||
foo:
|
||||
rol $4,$5
|
||||
rol $4,$5,$6
|
||||
rol $4,1
|
||||
rol $4,$5,1
|
||||
rol $4,$5,0
|
||||
|
||||
ror $4,$5
|
||||
ror $4,$5,$6
|
||||
ror $4,1
|
||||
ror $4,$5,1
|
||||
ror $4,$5,0
|
||||
.space 8
|
17
gas/testsuite/gas/nios2/rotate.d
Normal file
17
gas/testsuite/gas/nios2/rotate.d
Normal file
|
@ -0,0 +1,17 @@
|
|||
#objdump: -dr --prefix-addresses
|
||||
#name: NIOS2 rotate
|
||||
|
||||
# Test the and macro.
|
||||
|
||||
.*: +file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
0+0000 <[^>]*> rol r4,r4,r4
|
||||
0+0004 <[^>]*> roli r4,r4,31
|
||||
0+0008 <[^>]*> ror r4,r4,r4
|
||||
0+000c <[^>]*> sll r4,r4,r4
|
||||
0+0010 <[^>]*> slli r4,r4,24
|
||||
0+0014 <[^>]*> sra r4,r4,r4
|
||||
0+0018 <[^>]*> srai r4,r4,10
|
||||
0+001c <[^>]*> srl r4,r4,r4
|
||||
0+0020 <[^>]*> srli r4,r4,5
|
13
gas/testsuite/gas/nios2/rotate.s
Normal file
13
gas/testsuite/gas/nios2/rotate.s
Normal file
|
@ -0,0 +1,13 @@
|
|||
# test Nios II rotate instructions
|
||||
|
||||
.text
|
||||
foo:
|
||||
rol r4,r4,r4
|
||||
roli r4,r4,31
|
||||
ror r4,r4,r4
|
||||
sll r4,r4,r4
|
||||
slli r4,r4,24
|
||||
sra r4,r4,r4
|
||||
srai r4,r4,10
|
||||
srl r4,r4,r4
|
||||
srli r4,r4,5
|
196
gas/testsuite/gas/nios2/stb.d
Normal file
196
gas/testsuite/gas/nios2/stb.d
Normal file
|
@ -0,0 +1,196 @@
|
|||
#objdump: -dr --prefix-addresses
|
||||
#name: NIOS2 stb
|
||||
|
||||
# Test the ld instruction
|
||||
|
||||
.*: +file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
0+0000 <[^>]*> stb r4,0\(zero\)
|
||||
0+0004 <[^>]*> stb r4,4\(zero\)
|
||||
0+0008 <[^>]*> stb r4,32764\(zero\)
|
||||
0+000c <[^>]*> stb r4,-32768\(zero\)
|
||||
0+0010 <[^>]*> stb r4,0\(r5\)
|
||||
0+0014 <[^>]*> stb r4,4\(r5\)
|
||||
0+0018 <[^>]*> stb r4,32764\(r5\)
|
||||
0+001c <[^>]*> stb r4,-32768\(r5\)
|
||||
0+0020 <[^>]*> stb r4,0\(zero\)
|
||||
[ ]*20: R_NIOS2_S16 .data
|
||||
0+0024 <[^>]*> stb r4,0\(zero\)
|
||||
[ ]*24: R_NIOS2_S16 big_external_data_label
|
||||
0+0028 <[^>]*> stb r4,0\(zero\)
|
||||
[ ]*28: R_NIOS2_S16 small_external_data_label
|
||||
0+002c <[^>]*> stb r4,0\(zero\)
|
||||
[ ]*2c: R_NIOS2_S16 big_external_common
|
||||
0+0030 <[^>]*> stb r4,0\(zero\)
|
||||
[ ]*30: R_NIOS2_S16 small_external_common
|
||||
0+0034 <[^>]*> stb r4,0\(zero\)
|
||||
[ ]*34: R_NIOS2_S16 .bss
|
||||
0+0038 <[^>]*> stb r4,0\(zero\)
|
||||
[ ]*38: R_NIOS2_S16 .bss\+0x4000
|
||||
0+003c <[^>]*> stb r4,0\(zero\)
|
||||
[ ]*3c: R_NIOS2_S16 .data\+0x4
|
||||
0+0040 <[^>]*> stb r4,0\(zero\)
|
||||
[ ]*40: R_NIOS2_S16 big_external_data_label\+0x4
|
||||
0+0044 <[^>]*> stb r4,0\(zero\)
|
||||
[ ]*44: R_NIOS2_S16 small_external_data_label\+0x4
|
||||
0+0048 <[^>]*> stb r4,0\(zero\)
|
||||
[ ]*48: R_NIOS2_S16 big_external_common\+0x4
|
||||
0+004c <[^>]*> stb r4,0\(zero\)
|
||||
[ ]*4c: R_NIOS2_S16 small_external_common\+0x4
|
||||
0+0050 <[^>]*> stb r4,0\(zero\)
|
||||
[ ]*50: R_NIOS2_S16 .bss\+0x4
|
||||
0+0054 <[^>]*> stb r4,0\(zero\)
|
||||
[ ]*54: R_NIOS2_S16 .bss\+0x4004
|
||||
0+0058 <[^>]*> stb r4,0\(zero\)
|
||||
[ ]*58: R_NIOS2_S16 .data-0x8000
|
||||
0+005c <[^>]*> stb r4,0\(zero\)
|
||||
[ ]*5c: R_NIOS2_S16 big_external_data_label-0x8000
|
||||
0+0060 <[^>]*> stb r4,0\(zero\)
|
||||
[ ]*60: R_NIOS2_S16 small_external_data_label-0x8000
|
||||
0+0064 <[^>]*> stb r4,0\(zero\)
|
||||
[ ]*64: R_NIOS2_S16 big_external_common-0x8000
|
||||
0+0068 <[^>]*> stb r4,0\(zero\)
|
||||
[ ]*68: R_NIOS2_S16 small_external_common-0x8000
|
||||
0+006c <[^>]*> stb r4,0\(zero\)
|
||||
[ ]*6c: R_NIOS2_S16 .bss-0x8000
|
||||
0+0070 <[^>]*> stb r4,0\(zero\)
|
||||
[ ]*70: R_NIOS2_S16 .bss-0x4000
|
||||
0+0074 <[^>]*> stb r4,0\(zero\)
|
||||
[ ]*74: R_NIOS2_S16 .data\+0x10000
|
||||
0+0078 <[^>]*> stb r4,0\(r5\)
|
||||
[ ]*78: R_NIOS2_S16 .data
|
||||
0+007c <[^>]*> stb r4,0\(r5\)
|
||||
[ ]*7c: R_NIOS2_S16 big_external_data_label
|
||||
0+0080 <[^>]*> stb r4,0\(r5\)
|
||||
[ ]*80: R_NIOS2_S16 small_external_data_label
|
||||
0+0084 <[^>]*> stb r4,0\(r5\)
|
||||
[ ]*84: R_NIOS2_S16 big_external_common
|
||||
0+0088 <[^>]*> stb r4,0\(r5\)
|
||||
[ ]*88: R_NIOS2_S16 small_external_common
|
||||
0+008c <[^>]*> stb r4,0\(r5\)
|
||||
[ ]*8c: R_NIOS2_S16 .bss
|
||||
0+0090 <[^>]*> stb r4,0\(r5\)
|
||||
[ ]*90: R_NIOS2_S16 .bss\+0x4000
|
||||
0+0094 <[^>]*> stb r4,0\(r5\)
|
||||
[ ]*94: R_NIOS2_S16 .data\+0x4
|
||||
0+0098 <[^>]*> stb r4,0\(r5\)
|
||||
[ ]*98: R_NIOS2_S16 big_external_data_label\+0x4
|
||||
0+009c <[^>]*> stb r4,0\(r5\)
|
||||
[ ]*9c: R_NIOS2_S16 small_external_data_label\+0x4
|
||||
0+00a0 <[^>]*> stb r4,0\(r5\)
|
||||
[ ]*a0: R_NIOS2_S16 big_external_common\+0x4
|
||||
0+00a4 <[^>]*> stb r4,0\(r5\)
|
||||
[ ]*a4: R_NIOS2_S16 small_external_common\+0x4
|
||||
0+00a8 <[^>]*> stb r4,0\(r5\)
|
||||
[ ]*a8: R_NIOS2_S16 .bss\+0x4
|
||||
0+00ac <[^>]*> stb r4,0\(r5\)
|
||||
[ ]*ac: R_NIOS2_S16 .bss\+0x4004
|
||||
0+00b0 <[^>]*> stb r4,0\(r5\)
|
||||
[ ]*b0: R_NIOS2_S16 .data-0x8000
|
||||
0+00b4 <[^>]*> stb r4,0\(r5\)
|
||||
[ ]*b4: R_NIOS2_S16 big_external_data_label-0x8000
|
||||
0+00b8 <[^>]*> stb r4,0\(r5\)
|
||||
[ ]*b8: R_NIOS2_S16 small_external_data_label-0x8000
|
||||
0+00bc <[^>]*> stb r4,0\(r5\)
|
||||
[ ]*bc: R_NIOS2_S16 big_external_common-0x8000
|
||||
0+00c0 <[^>]*> stb r4,0\(r5\)
|
||||
[ ]*c0: R_NIOS2_S16 small_external_common-0x8000
|
||||
0+00c4 <[^>]*> stb r4,0\(r5\)
|
||||
[ ]*c4: R_NIOS2_S16 .bss-0x8000
|
||||
0+00c8 <[^>]*> stb r4,0\(r5\)
|
||||
[ ]*c8: R_NIOS2_S16 .bss-0x4000
|
||||
0+00cc <[^>]*> stbio r4,0\(zero\)
|
||||
0+00d0 <[^>]*> stbio r4,4\(zero\)
|
||||
0+00d4 <[^>]*> stbio r4,32764\(zero\)
|
||||
0+00d8 <[^>]*> stbio r4,-32768\(zero\)
|
||||
0+00dc <[^>]*> stbio r4,0\(r5\)
|
||||
0+00e0 <[^>]*> stbio r4,4\(r5\)
|
||||
0+00e4 <[^>]*> stbio r4,32764\(r5\)
|
||||
0+00e8 <[^>]*> stbio r4,-32768\(r5\)
|
||||
0+00ec <[^>]*> stbio r4,0\(zero\)
|
||||
[ ]*ec: R_NIOS2_S16 .data
|
||||
0+00f0 <[^>]*> stbio r4,0\(zero\)
|
||||
[ ]*f0: R_NIOS2_S16 big_external_data_label
|
||||
0+00f4 <[^>]*> stbio r4,0\(zero\)
|
||||
[ ]*f4: R_NIOS2_S16 small_external_data_label
|
||||
0+00f8 <[^>]*> stbio r4,0\(zero\)
|
||||
[ ]*f8: R_NIOS2_S16 big_external_common
|
||||
0+00fc <[^>]*> stbio r4,0\(zero\)
|
||||
[ ]*fc: R_NIOS2_S16 small_external_common
|
||||
0+0100 <[^>]*> stbio r4,0\(zero\)
|
||||
[ ]*100: R_NIOS2_S16 .bss
|
||||
0+0104 <[^>]*> stbio r4,0\(zero\)
|
||||
[ ]*104: R_NIOS2_S16 .bss\+0x4000
|
||||
0+0108 <[^>]*> stbio r4,0\(zero\)
|
||||
[ ]*108: R_NIOS2_S16 .data\+0x4
|
||||
0+010c <[^>]*> stbio r4,0\(zero\)
|
||||
[ ]*10c: R_NIOS2_S16 big_external_data_label\+0x4
|
||||
0+0110 <[^>]*> stbio r4,0\(zero\)
|
||||
[ ]*110: R_NIOS2_S16 small_external_data_label\+0x4
|
||||
0+0114 <[^>]*> stbio r4,0\(zero\)
|
||||
[ ]*114: R_NIOS2_S16 big_external_common\+0x4
|
||||
0+0118 <[^>]*> stbio r4,0\(zero\)
|
||||
[ ]*118: R_NIOS2_S16 small_external_common\+0x4
|
||||
0+011c <[^>]*> stbio r4,0\(zero\)
|
||||
[ ]*11c: R_NIOS2_S16 .bss\+0x4
|
||||
0+0120 <[^>]*> stbio r4,0\(zero\)
|
||||
[ ]*120: R_NIOS2_S16 .bss\+0x4004
|
||||
0+0124 <[^>]*> stbio r4,0\(zero\)
|
||||
[ ]*124: R_NIOS2_S16 .data-0x8000
|
||||
0+0128 <[^>]*> stbio r4,0\(zero\)
|
||||
[ ]*128: R_NIOS2_S16 big_external_data_label-0x8000
|
||||
0+012c <[^>]*> stbio r4,0\(zero\)
|
||||
[ ]*12c: R_NIOS2_S16 small_external_data_label-0x8000
|
||||
0+0130 <[^>]*> stbio r4,0\(zero\)
|
||||
[ ]*130: R_NIOS2_S16 big_external_common-0x8000
|
||||
0+0134 <[^>]*> stbio r4,0\(zero\)
|
||||
[ ]*134: R_NIOS2_S16 small_external_common-0x8000
|
||||
0+0138 <[^>]*> stbio r4,0\(zero\)
|
||||
[ ]*138: R_NIOS2_S16 .bss-0x8000
|
||||
0+013c <[^>]*> stbio r4,0\(zero\)
|
||||
[ ]*13c: R_NIOS2_S16 .bss-0x4000
|
||||
0+0140 <[^>]*> stbio r4,0\(zero\)
|
||||
[ ]*140: R_NIOS2_S16 .data\+0x10000
|
||||
0+0144 <[^>]*> stbio r4,0\(r5\)
|
||||
[ ]*144: R_NIOS2_S16 .data
|
||||
0+0148 <[^>]*> stbio r4,0\(r5\)
|
||||
[ ]*148: R_NIOS2_S16 big_external_data_label
|
||||
0+014c <[^>]*> stbio r4,0\(r5\)
|
||||
[ ]*14c: R_NIOS2_S16 small_external_data_label
|
||||
0+0150 <[^>]*> stbio r4,0\(r5\)
|
||||
[ ]*150: R_NIOS2_S16 big_external_common
|
||||
0+0154 <[^>]*> stbio r4,0\(r5\)
|
||||
[ ]*154: R_NIOS2_S16 small_external_common
|
||||
0+0158 <[^>]*> stbio r4,0\(r5\)
|
||||
[ ]*158: R_NIOS2_S16 .bss
|
||||
0+015c <[^>]*> stbio r4,0\(r5\)
|
||||
[ ]*15c: R_NIOS2_S16 .bss\+0x4000
|
||||
0+0160 <[^>]*> stbio r4,0\(r5\)
|
||||
[ ]*160: R_NIOS2_S16 .data\+0x4
|
||||
0+0164 <[^>]*> stbio r4,0\(r5\)
|
||||
[ ]*164: R_NIOS2_S16 big_external_data_label\+0x4
|
||||
0+0168 <[^>]*> stbio r4,0\(r5\)
|
||||
[ ]*168: R_NIOS2_S16 small_external_data_label\+0x4
|
||||
0+016c <[^>]*> stbio r4,0\(r5\)
|
||||
[ ]*16c: R_NIOS2_S16 big_external_common\+0x4
|
||||
0+0170 <[^>]*> stbio r4,0\(r5\)
|
||||
[ ]*170: R_NIOS2_S16 small_external_common\+0x4
|
||||
0+0174 <[^>]*> stbio r4,0\(r5\)
|
||||
[ ]*174: R_NIOS2_S16 .bss\+0x4
|
||||
0+0178 <[^>]*> stbio r4,0\(r5\)
|
||||
[ ]*178: R_NIOS2_S16 .bss\+0x4004
|
||||
0+017c <[^>]*> stbio r4,0\(r5\)
|
||||
[ ]*17c: R_NIOS2_S16 .data-0x8000
|
||||
0+0180 <[^>]*> stbio r4,0\(r5\)
|
||||
[ ]*180: R_NIOS2_S16 big_external_data_label-0x8000
|
||||
0+0184 <[^>]*> stbio r4,0\(r5\)
|
||||
[ ]*184: R_NIOS2_S16 small_external_data_label-0x8000
|
||||
0+0188 <[^>]*> stbio r4,0\(r5\)
|
||||
[ ]*188: R_NIOS2_S16 big_external_common-0x8000
|
||||
0+018c <[^>]*> stbio r4,0\(r5\)
|
||||
[ ]*18c: R_NIOS2_S16 small_external_common-0x8000
|
||||
0+0190 <[^>]*> stbio r4,0\(r5\)
|
||||
[ ]*190: R_NIOS2_S16 .bss-0x8000
|
||||
0+0194 <[^>]*> stbio r4,0\(r5\)
|
||||
[ ]*194: R_NIOS2_S16 .bss-0x4000
|
117
gas/testsuite/gas/nios2/stb.s
Normal file
117
gas/testsuite/gas/nios2/stb.s
Normal file
|
@ -0,0 +1,117 @@
|
|||
.data
|
||||
data_label:
|
||||
.extern big_external_data_label,0x4000
|
||||
.extern small_external_data_label,4
|
||||
.comm big_external_common,0x4000
|
||||
.comm small_external_common,4
|
||||
.lcomm big_local_common,0x4000
|
||||
.lcomm small_local_common,4
|
||||
|
||||
# the small symbols should have space allocated in the sbss section
|
||||
# but this is not yet supported in the assembler, so space is allocated
|
||||
# in the .bss section and the relocations are not gp-relative. this will
|
||||
# be updated when gp-relative relocations are added
|
||||
.text
|
||||
stb r4,0(r0)
|
||||
stb r4,4(r0)
|
||||
stb r4,0x7ffc(r0)
|
||||
stb r4,-0x8000(r0)
|
||||
stb r4,0(r5)
|
||||
stb r4,4(r5)
|
||||
stb r4,0x7ffc(r5)
|
||||
stb r4,-0x8000(r5)
|
||||
stb r4,data_label(r0)
|
||||
stb r4,big_external_data_label(r0)
|
||||
stb r4,small_external_data_label(r0)
|
||||
stb r4,big_external_common(r0)
|
||||
stb r4,small_external_common(r0)
|
||||
stb r4,big_local_common(r0)
|
||||
stb r4,small_local_common(r0)
|
||||
stb r4,data_label+4(r0)
|
||||
stb r4,big_external_data_label+4(r0)
|
||||
stb r4,small_external_data_label+4(r0)
|
||||
stb r4,big_external_common+4(r0)
|
||||
stb r4,small_external_common+4(r0)
|
||||
stb r4,big_local_common+4(r0)
|
||||
stb r4,small_local_common+4(r0)
|
||||
stb r4,data_label-0x8000(r0)
|
||||
stb r4,big_external_data_label-0x8000(r0)
|
||||
stb r4,small_external_data_label-0x8000(r0)
|
||||
stb r4,big_external_common-0x8000(r0)
|
||||
stb r4,small_external_common-0x8000(r0)
|
||||
stb r4,big_local_common-0x8000(r0)
|
||||
stb r4,small_local_common-0x8000(r0)
|
||||
stb r4,data_label+0x10000(r0)
|
||||
stb r4,data_label(r5)
|
||||
stb r4,big_external_data_label(r5)
|
||||
stb r4,small_external_data_label(r5)
|
||||
stb r4,big_external_common(r5)
|
||||
stb r4,small_external_common(r5)
|
||||
stb r4,big_local_common(r5)
|
||||
stb r4,small_local_common(r5)
|
||||
stb r4,data_label+4(r5)
|
||||
stb r4,big_external_data_label+4(r5)
|
||||
stb r4,small_external_data_label+4(r5)
|
||||
stb r4,big_external_common+4(r5)
|
||||
stb r4,small_external_common+4(r5)
|
||||
stb r4,big_local_common+4(r5)
|
||||
stb r4,small_local_common+4(r5)
|
||||
stb r4,data_label-0x8000(r5)
|
||||
stb r4,big_external_data_label-0x8000(r5)
|
||||
stb r4,small_external_data_label-0x8000(r5)
|
||||
stb r4,big_external_common-0x8000(r5)
|
||||
stb r4,small_external_common-0x8000(r5)
|
||||
stb r4,big_local_common-0x8000(r5)
|
||||
stb r4,small_local_common-0x8000(r5)
|
||||
|
||||
stbio r4,0(r0)
|
||||
stbio r4,4(r0)
|
||||
stbio r4,0x7ffc(r0)
|
||||
stbio r4,-0x8000(r0)
|
||||
stbio r4,0(r5)
|
||||
stbio r4,4(r5)
|
||||
stbio r4,0x7ffc(r5)
|
||||
stbio r4,-0x8000(r5)
|
||||
stbio r4,data_label(r0)
|
||||
stbio r4,big_external_data_label(r0)
|
||||
stbio r4,small_external_data_label(r0)
|
||||
stbio r4,big_external_common(r0)
|
||||
stbio r4,small_external_common(r0)
|
||||
stbio r4,big_local_common(r0)
|
||||
stbio r4,small_local_common(r0)
|
||||
stbio r4,data_label+4(r0)
|
||||
stbio r4,big_external_data_label+4(r0)
|
||||
stbio r4,small_external_data_label+4(r0)
|
||||
stbio r4,big_external_common+4(r0)
|
||||
stbio r4,small_external_common+4(r0)
|
||||
stbio r4,big_local_common+4(r0)
|
||||
stbio r4,small_local_common+4(r0)
|
||||
stbio r4,data_label-0x8000(r0)
|
||||
stbio r4,big_external_data_label-0x8000(r0)
|
||||
stbio r4,small_external_data_label-0x8000(r0)
|
||||
stbio r4,big_external_common-0x8000(r0)
|
||||
stbio r4,small_external_common-0x8000(r0)
|
||||
stbio r4,big_local_common-0x8000(r0)
|
||||
stbio r4,small_local_common-0x8000(r0)
|
||||
stbio r4,data_label+0x10000(r0)
|
||||
stbio r4,data_label(r5)
|
||||
stbio r4,big_external_data_label(r5)
|
||||
stbio r4,small_external_data_label(r5)
|
||||
stbio r4,big_external_common(r5)
|
||||
stbio r4,small_external_common(r5)
|
||||
stbio r4,big_local_common(r5)
|
||||
stbio r4,small_local_common(r5)
|
||||
stbio r4,data_label+4(r5)
|
||||
stbio r4,big_external_data_label+4(r5)
|
||||
stbio r4,small_external_data_label+4(r5)
|
||||
stbio r4,big_external_common+4(r5)
|
||||
stbio r4,small_external_common+4(r5)
|
||||
stbio r4,big_local_common+4(r5)
|
||||
stbio r4,small_local_common+4(r5)
|
||||
stbio r4,data_label-0x8000(r5)
|
||||
stbio r4,big_external_data_label-0x8000(r5)
|
||||
stbio r4,small_external_data_label-0x8000(r5)
|
||||
stbio r4,big_external_common-0x8000(r5)
|
||||
stbio r4,small_external_common-0x8000(r5)
|
||||
stbio r4,big_local_common-0x8000(r5)
|
||||
stbio r4,small_local_common-0x8000(r5)
|
196
gas/testsuite/gas/nios2/sth.d
Normal file
196
gas/testsuite/gas/nios2/sth.d
Normal file
|
@ -0,0 +1,196 @@
|
|||
#objdump: -dr --prefix-addresses
|
||||
#name: NIOS2 sth
|
||||
|
||||
# Test the ld instruction
|
||||
|
||||
.*: +file format elf32-littlenios2
|
||||
|
||||
Disassembly of section .text:
|
||||
0+0000 <[^>]*> sth r4,0\(zero\)
|
||||
0+0004 <[^>]*> sth r4,4\(zero\)
|
||||
0+0008 <[^>]*> sth r4,32764\(zero\)
|
||||
0+000c <[^>]*> sth r4,-32768\(zero\)
|
||||
0+0010 <[^>]*> sth r4,0\(r5\)
|
||||
0+0014 <[^>]*> sth r4,4\(r5\)
|
||||
0+0018 <[^>]*> sth r4,32764\(r5\)
|
||||
0+001c <[^>]*> sth r4,-32768\(r5\)
|
||||
0+0020 <[^>]*> sth r4,0\(zero\)
|
||||
[ ]*20: R_NIOS2_S16 .data
|
||||
0+0024 <[^>]*> sth r4,0\(zero\)
|
||||
[ ]*24: R_NIOS2_S16 big_external_data_label
|
||||
0+0028 <[^>]*> sth r4,0\(zero\)
|
||||
[ ]*28: R_NIOS2_S16 small_external_data_label
|
||||
0+002c <[^>]*> sth r4,0\(zero\)
|
||||
[ ]*2c: R_NIOS2_S16 big_external_common
|
||||
0+0030 <[^>]*> sth r4,0\(zero\)
|
||||
[ ]*30: R_NIOS2_S16 small_external_common
|
||||
0+0034 <[^>]*> sth r4,0\(zero\)
|
||||
[ ]*34: R_NIOS2_S16 .bss
|
||||
0+0038 <[^>]*> sth r4,0\(zero\)
|
||||
[ ]*38: R_NIOS2_S16 .bss\+0x4000
|
||||
0+003c <[^>]*> sth r4,0\(zero\)
|
||||
[ ]*3c: R_NIOS2_S16 .data\+0x4
|
||||
0+0040 <[^>]*> sth r4,0\(zero\)
|
||||
[ ]*40: R_NIOS2_S16 big_external_data_label\+0x4
|
||||
0+0044 <[^>]*> sth r4,0\(zero\)
|
||||
[ ]*44: R_NIOS2_S16 small_external_data_label\+0x4
|
||||
0+0048 <[^>]*> sth r4,0\(zero\)
|
||||
[ ]*48: R_NIOS2_S16 big_external_common\+0x4
|
||||
0+004c <[^>]*> sth r4,0\(zero\)
|
||||
[ ]*4c: R_NIOS2_S16 small_external_common\+0x4
|
||||
0+0050 <[^>]*> sth r4,0\(zero\)
|
||||
[ ]*50: R_NIOS2_S16 .bss\+0x4
|
||||
0+0054 <[^>]*> sth r4,0\(zero\)
|
||||
[ ]*54: R_NIOS2_S16 .bss\+0x4004
|
||||
0+0058 <[^>]*> sth r4,0\(zero\)
|
||||
[ ]*58: R_NIOS2_S16 .data-0x8000
|
||||
0+005c <[^>]*> sth r4,0\(zero\)
|
||||
[ ]*5c: R_NIOS2_S16 big_external_data_label-0x8000
|
||||
0+0060 <[^>]*> sth r4,0\(zero\)
|
||||
[ ]*60: R_NIOS2_S16 small_external_data_label-0x8000
|
||||
0+0064 <[^>]*> sth r4,0\(zero\)
|
||||
[ ]*64: R_NIOS2_S16 big_external_common-0x8000
|
||||
0+0068 <[^>]*> sth r4,0\(zero\)
|
||||
[ ]*68: R_NIOS2_S16 small_external_common-0x8000
|
||||
0+006c <[^>]*> sth r4,0\(zero\)
|
||||
[ ]*6c: R_NIOS2_S16 .bss-0x8000
|
||||
0+0070 <[^>]*> sth r4,0\(zero\)
|
||||
[ ]*70: R_NIOS2_S16 .bss-0x4000
|
||||
0+0074 <[^>]*> sth r4,0\(zero\)
|
||||
[ ]*74: R_NIOS2_S16 .data\+0x10000
|
||||
0+0078 <[^>]*> sth r4,0\(r5\)
|
||||
[ ]*78: R_NIOS2_S16 .data
|
||||
0+007c <[^>]*> sth r4,0\(r5\)
|
||||
[ ]*7c: R_NIOS2_S16 big_external_data_label
|
||||
0+0080 <[^>]*> sth r4,0\(r5\)
|
||||
[ ]*80: R_NIOS2_S16 small_external_data_label
|
||||
0+0084 <[^>]*> sth r4,0\(r5\)
|
||||
[ ]*84: R_NIOS2_S16 big_external_common
|
||||
0+0088 <[^>]*> sth r4,0\(r5\)
|
||||
[ ]*88: R_NIOS2_S16 small_external_common
|
||||
0+008c <[^>]*> sth r4,0\(r5\)
|
||||
[ ]*8c: R_NIOS2_S16 .bss
|
||||
0+0090 <[^>]*> sth r4,0\(r5\)
|
||||
[ ]*90: R_NIOS2_S16 .bss\+0x4000
|
||||
0+0094 <[^>]*> sth r4,0\(r5\)
|
||||
[ ]*94: R_NIOS2_S16 .data\+0x4
|
||||
0+0098 <[^>]*> sth r4,0\(r5\)
|
||||
[ ]*98: R_NIOS2_S16 big_external_data_label\+0x4
|
||||
0+009c <[^>]*> sth r4,0\(r5\)
|
||||
[ ]*9c: R_NIOS2_S16 small_external_data_label\+0x4
|
||||
0+00a0 <[^>]*> sth r4,0\(r5\)
|
||||
[ ]*a0: R_NIOS2_S16 big_external_common\+0x4
|
||||
0+00a4 <[^>]*> sth r4,0\(r5\)
|
||||
[ ]*a4: R_NIOS2_S16 small_external_common\+0x4
|
||||
0+00a8 <[^>]*> sth r4,0\(r5\)
|
||||
[ ]*a8: R_NIOS2_S16 .bss\+0x4
|
||||
0+00ac <[^>]*> sth r4,0\(r5\)
|
||||
[ ]*ac: R_NIOS2_S16 .bss\+0x4004
|
||||
0+00b0 <[^>]*> sth r4,0\(r5\)
|
||||
[ ]*b0: R_NIOS2_S16 .data-0x8000
|
||||
0+00b4 <[^>]*> sth r4,0\(r5\)
|
||||
[ ]*b4: R_NIOS2_S16 big_external_data_label-0x8000
|
||||
0+00b8 <[^>]*> sth r4,0\(r5\)
|
||||
[ ]*b8: R_NIOS2_S16 small_external_data_label-0x8000
|
||||
0+00bc <[^>]*> sth r4,0\(r5\)
|
||||
[ ]*bc: R_NIOS2_S16 big_external_common-0x8000
|
||||
0+00c0 <[^>]*> sth r4,0\(r5\)
|
||||
[ ]*c0: R_NIOS2_S16 small_external_common-0x8000
|
||||
0+00c4 <[^>]*> sth r4,0\(r5\)
|
||||
[ ]*c4: R_NIOS2_S16 .bss-0x8000
|
||||
0+00c8 <[^>]*> sth r4,0\(r5\)
|
||||
[ ]*c8: R_NIOS2_S16 .bss-0x4000
|
||||
0+00cc <[^>]*> sthio r4,0\(zero\)
|
||||
0+00d0 <[^>]*> sthio r4,4\(zero\)
|
||||
0+00d4 <[^>]*> sthio r4,32764\(zero\)
|
||||
0+00d8 <[^>]*> sthio r4,-32768\(zero\)
|
||||
0+00dc <[^>]*> sthio r4,0\(r5\)
|
||||
0+00e0 <[^>]*> sthio r4,4\(r5\)
|
||||
0+00e4 <[^>]*> sthio r4,32764\(r5\)
|
||||
0+00e8 <[^>]*> sthio r4,-32768\(r5\)
|
||||
0+00ec <[^>]*> sthio r4,0\(zero\)
|
||||
[ ]*ec: R_NIOS2_S16 .data
|
||||
0+00f0 <[^>]*> sthio r4,0\(zero\)
|
||||
[ ]*f0: R_NIOS2_S16 big_external_data_label
|
||||
0+00f4 <[^>]*> sthio r4,0\(zero\)
|
||||
[ ]*f4: R_NIOS2_S16 small_external_data_label
|
||||
0+00f8 <[^>]*> sthio r4,0\(zero\)
|
||||
[ ]*f8: R_NIOS2_S16 big_external_common
|
||||
0+00fc <[^>]*> sthio r4,0\(zero\)
|
||||
[ ]*fc: R_NIOS2_S16 small_external_common
|
||||
0+0100 <[^>]*> sthio r4,0\(zero\)
|
||||
[ ]*100: R_NIOS2_S16 .bss
|
||||
0+0104 <[^>]*> sthio r4,0\(zero\)
|
||||
[ ]*104: R_NIOS2_S16 .bss\+0x4000
|
||||
0+0108 <[^>]*> sthio r4,0\(zero\)
|
||||
[ ]*108: R_NIOS2_S16 .data\+0x4
|
||||
0+010c <[^>]*> sthio r4,0\(zero\)
|
||||
[ ]*10c: R_NIOS2_S16 big_external_data_label\+0x4
|
||||
0+0110 <[^>]*> sthio r4,0\(zero\)
|
||||
[ ]*110: R_NIOS2_S16 small_external_data_label\+0x4
|
||||
0+0114 <[^>]*> sthio r4,0\(zero\)
|
||||
[ ]*114: R_NIOS2_S16 big_external_common\+0x4
|
||||
0+0118 <[^>]*> sthio r4,0\(zero\)
|
||||
[ ]*118: R_NIOS2_S16 small_external_common\+0x4
|
||||
0+011c <[^>]*> sthio r4,0\(zero\)
|
||||
[ ]*11c: R_NIOS2_S16 .bss\+0x4
|
||||
0+0120 <[^>]*> sthio r4,0\(zero\)
|
||||
[ ]*120: R_NIOS2_S16 .bss\+0x4004
|
||||
0+0124 <[^>]*> sthio r4,0\(zero\)
|
||||
[ ]*124: R_NIOS2_S16 .data-0x8000
|
||||
0+0128 <[^>]*> sthio r4,0\(zero\)
|
||||
[ ]*128: R_NIOS2_S16 big_external_data_label-0x8000
|
||||
0+012c <[^>]*> sthio r4,0\(zero\)
|
||||
[ ]*12c: R_NIOS2_S16 small_external_data_label-0x8000
|
||||
0+0130 <[^>]*> sthio r4,0\(zero\)
|
||||
[ ]*130: R_NIOS2_S16 big_external_common-0x8000
|
||||
0+0134 <[^>]*> sthio r4,0\(zero\)
|
||||
[ ]*134: R_NIOS2_S16 small_external_common-0x8000
|
||||
0+0138 <[^>]*> sthio r4,0\(zero\)
|
||||
[ ]*138: R_NIOS2_S16 .bss-0x8000
|
||||
0+013c <[^>]*> sthio r4,0\(zero\)
|
||||
[ ]*13c: R_NIOS2_S16 .bss-0x4000
|
||||
0+0140 <[^>]*> sthio r4,0\(zero\)
|
||||
[ ]*140: R_NIOS2_S16 .data\+0x10000
|
||||
0+0144 <[^>]*> sthio r4,0\(r5\)
|
||||
[ ]*144: R_NIOS2_S16 .data
|
||||
0+0148 <[^>]*> sthio r4,0\(r5\)
|
||||
[ ]*148: R_NIOS2_S16 big_external_data_label
|
||||
0+014c <[^>]*> sthio r4,0\(r5\)
|
||||
[ ]*14c: R_NIOS2_S16 small_external_data_label
|
||||
0+0150 <[^>]*> sthio r4,0\(r5\)
|
||||
[ ]*150: R_NIOS2_S16 big_external_common
|
||||
0+0154 <[^>]*> sthio r4,0\(r5\)
|
||||
[ ]*154: R_NIOS2_S16 small_external_common
|
||||
0+0158 <[^>]*> sthio r4,0\(r5\)
|
||||
[ ]*158: R_NIOS2_S16 .bss
|
||||
0+015c <[^>]*> sthio r4,0\(r5\)
|
||||
[ ]*15c: R_NIOS2_S16 .bss\+0x4000
|
||||
0+0160 <[^>]*> sthio r4,0\(r5\)
|
||||
[ ]*160: R_NIOS2_S16 .data\+0x4
|
||||
0+0164 <[^>]*> sthio r4,0\(r5\)
|
||||
[ ]*164: R_NIOS2_S16 big_external_data_label\+0x4
|
||||
0+0168 <[^>]*> sthio r4,0\(r5\)
|
||||
[ ]*168: R_NIOS2_S16 small_external_data_label\+0x4
|
||||
0+016c <[^>]*> sthio r4,0\(r5\)
|
||||
[ ]*16c: R_NIOS2_S16 big_external_common\+0x4
|
||||
0+0170 <[^>]*> sthio r4,0\(r5\)
|
||||
[ ]*170: R_NIOS2_S16 small_external_common\+0x4
|
||||
0+0174 <[^>]*> sthio r4,0\(r5\)
|
||||
[ ]*174: R_NIOS2_S16 .bss\+0x4
|
||||
0+0178 <[^>]*> sthio r4,0\(r5\)
|
||||
[ ]*178: R_NIOS2_S16 .bss\+0x4004
|
||||
0+017c <[^>]*> sthio r4,0\(r5\)
|
||||
[ ]*17c: R_NIOS2_S16 .data-0x8000
|
||||
0+0180 <[^>]*> sthio r4,0\(r5\)
|
||||
[ ]*180: R_NIOS2_S16 big_external_data_label-0x8000
|
||||
0+0184 <[^>]*> sthio r4,0\(r5\)
|
||||
[ ]*184: R_NIOS2_S16 small_external_data_label-0x8000
|
||||
0+0188 <[^>]*> sthio r4,0\(r5\)
|
||||
[ ]*188: R_NIOS2_S16 big_external_common-0x8000
|
||||
0+018c <[^>]*> sthio r4,0\(r5\)
|
||||
[ ]*18c: R_NIOS2_S16 small_external_common-0x8000
|
||||
0+0190 <[^>]*> sthio r4,0\(r5\)
|
||||
[ ]*190: R_NIOS2_S16 .bss-0x8000
|
||||
0+0194 <[^>]*> sthio r4,0\(r5\)
|
||||
[ ]*194: R_NIOS2_S16 .bss-0x4000
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue