binutils-gdb/ld/testsuite/ld-v850/split-lo16.s
Richard Sandiford 1e50d24d55 include/elf/
* v850.h (R_V850_LO16_SPLIT_OFFSET): New reloc.

bfd/
	* reloc.c (BFD_RELOC_V850_LO16_SPLIT_OFFSET): New bfd_reloc_code_type.
	* elf32-v850.c (v850_elf_howto_table): Add entry for
	R_V850_LO16_SPLIT_OFFSET.
	(v850_elf_reloc_map): Map it to BFD_RELOC_V850_LO16_SPLIT_OFFSET.
	(v850_elf_perform_lo16_relocation): New function, extracted from...
	(v850_elf_perform_relocation): ...here.  Use it to handle
	R_V850_LO16_SPLIT_OFFSET.
	(v850_elf_check_relocs, v850_elf_final_link_relocate): Handle
	R_V850_LO16_SPLIT_OFFSET.
	* libbfd.h, bfd-in2.h: Regenerate.

gas/
	* config/tc-v850.c (handle_lo16): New function.
	(v850_reloc_prefix): Use it to check lo().
	(md_assemble, md_apply_fix3): Handle BFD_RELOC_V850_LO16_SPLIT_OFFSET.

gas/testsuite/
	* gas/v850/split-lo16.{s,d}: New test.
	* gas/v850/v850.exp: Run it.

ld/testsuite/
	* ld-v850: New directory.
2004-12-16 16:56:04 +00:00

21 lines
685 B
ArmAsm

movhi hi(lo16_nocarry),r0,r1
addi lo(lo16_nocarry),r1,r2
ld.bu lo(lo16_nocarry)[r1],r2
movhi hi(lo16_nocarry + 0x18200),r0,r1
addi lo(lo16_nocarry + 0x18200),r1,r2
ld.bu lo(lo16_nocarry + 0x18200)[r1],r2
movhi hi(split_lo16_nocarry),r0,r1
ld.bu lo(split_lo16_nocarry)[r1],r2
addi lo(split_lo16_nocarry),r1,r2
movhi hi(split_lo16_nocarry + 0x18200),r0,r1
ld.bu lo(split_lo16_nocarry + 0x18200)[r1],r2
addi lo(split_lo16_nocarry + 0x18200),r1,r2
movhi hi(lo16_carry),r0,r1
addi lo(lo16_carry),r1,r2
ld.bu lo(lo16_carry)[r1],r2
movhi hi(split_lo16_carry),r0,r1
ld.bu lo(split_lo16_carry)[r1],r2
addi lo(split_lo16_carry),r1,r2
movhi hi(odd),r0,r1
ld.bu lo(odd)[r1],r2