binutils-gdb/gas/config
Maciej W. Rozycki 14c80123c0 microMIPS/GAS: Handle several percent-ops with macros
In the microMIPS mode also accept %half, %got, %call, %got_hi, %got_lo,
%call_hi, %call_lo, %neg, %got_page, %highest, %got_disp, %tlsgd,
%tlsldm, %dtprel_hi, %dtprel_lo, %gottprel, %tprel_hi and %tprel_lo
percent-ops with macros, so that they can be used with instructions that
expand into sequences if relocation is required due to their limited
offset span, such as LL, LWL, etc., fixing GAS assertions:

.../gas/testsuite/gas/mips/elf-rel28.s: Assembler messages:
.../gas/testsuite/gas/mips/elf-rel28.s:17: Internal error in macro_build at .../gas/config/tc-mips.c:8854.
Please report this bug.

observed if an attempt is made to assemble the `elf-rel28.s' test case
modified to use one of the affected instructions to microMIPS code.

	gas/
	* config/tc-mips.c (macro_build) <'i', 'j'>: Also accept
	BFD_RELOC_16, BFD_RELOC_MIPS_GOT16, BFD_RELOC_MIPS_CALL16,
	BFD_RELOC_MIPS_GOT_HI16, BFD_RELOC_MIPS_GOT_LO16,
	BFD_RELOC_MIPS_CALL_HI16, BFD_RELOC_MIPS_CALL_LO16,
	BFD_RELOC_MIPS_SUB, BFD_RELOC_MIPS_GOT_PAGE,
	BFD_RELOC_MIPS_HIGHEST, BFD_RELOC_MIPS_GOT_DISP,
	BFD_RELOC_MIPS_TLS_GD, BFD_RELOC_MIPS_TLS_LDM,
	BFD_RELOC_MIPS_TLS_DTPREL_HI16, BFD_RELOC_MIPS_TLS_DTPREL_LO16,
	BFD_RELOC_MIPS_TLS_GOTTPREL, BFD_RELOC_MIPS_TLS_TPREL_HI16 and
	BFD_RELOC_MIPS_TLS_TPREL_LO16 relocations if in the microMIPS
	mode.
	* testsuite/gas/mips/elf-rel28-lldscd-n32.d: New test.
	* testsuite/gas/mips/elf-rel28-lldscd-micromips-n32.d: New test.
	* testsuite/gas/mips/elf-rel28-lldscd-n64.d: New test.
	* testsuite/gas/mips/elf-rel28-lldscd-micromips-n64.d: New test.
	* testsuite/gas/mips/elf-rel28.s: Add instruction selection.
	* testsuite/gas/mips/mips.exp: Run the new tests.
2018-07-02 23:57:22 +01:00
..
atof-ieee.c
atof-vax.c
bfin-aux.h
bfin-defs.h
bfin-lex-wrapper.c
bfin-lex.l
bfin-parse.y
e-crisaout.c
e-criself.c
e-i386aout.c
e-i386coff.c
e-i386elf.c
e-mipself.c
itbl-mips.h
m68k-parse.h
m68k-parse.y
obj-aout.c
obj-aout.h
obj-coff-seh.c
obj-coff-seh.h
obj-coff.c
obj-coff.h Remove sparc-aout and sparc-coff support 2018-04-16 15:33:26 +09:30
obj-ecoff.c
obj-ecoff.h
obj-elf.c various i386-aout and i386-coff target removal 2018-04-18 09:34:19 +09:30
obj-elf.h
obj-evax.c -Wstringop-truncation warnings 2018-05-04 18:58:23 +09:30
obj-evax.h
obj-fdpicelf.c
obj-fdpicelf.h
obj-macho.c -Wstringop-truncation warnings 2018-05-04 18:58:23 +09:30
obj-macho.h
obj-multi.c
obj-multi.h
obj-som.c
obj-som.h
rl78-defs.h
rl78-parse.y
rx-defs.h
rx-parse.y
tc-aarch64.c [Patch AArch64] Warn on unpredictable stlxrb , stlxrh and stlxr cases. 2018-06-29 13:06:05 +01:00
tc-aarch64.h
tc-alpha.c
tc-alpha.h
tc-arc.c
tc-arc.h
tc-arm.c [ARM] Update bfd's Tag_CPU_arch knowledge 2018-07-02 11:22:20 +01:00
tc-arm.h Remove arm-aout and arm-coff support 2018-04-25 09:38:17 +09:30
tc-avr.c
tc-avr.h
tc-bfin.c
tc-bfin.h
tc-cr16.c Silence gcc-8 warnings 2018-04-23 18:10:41 +09:30
tc-cr16.h
tc-cris.c
tc-cris.h
tc-crx.c Silence gcc-8 warnings 2018-04-23 18:10:41 +09:30
tc-crx.h
tc-d10v.c
tc-d10v.h
tc-d30v.c
tc-d30v.h
tc-dlx.c
tc-dlx.h
tc-epiphany.c
tc-epiphany.h
tc-fr30.c
tc-fr30.h
tc-frv.c
tc-frv.h
tc-ft32.c
tc-ft32.h
tc-generic.c
tc-generic.h
tc-h8300.c Remove h8300-coff support 2018-04-16 15:17:57 +09:30
tc-h8300.h Remove h8300-coff support 2018-04-16 15:17:57 +09:30
tc-hppa.c
tc-hppa.h
tc-i386-intel.c
tc-i386.c x86: relax redundant REX prefix check 2018-06-01 08:39:54 +02:00
tc-i386.h various i386-aout and i386-coff target removal 2018-04-18 09:34:19 +09:30
tc-ia64.c
tc-ia64.h
tc-ip2k.c
tc-ip2k.h
tc-iq2000.c
tc-iq2000.h
tc-lm32.c
tc-lm32.h
tc-m32c.c
tc-m32c.h
tc-m32r.c
tc-m32r.h
tc-m68hc11.c
tc-m68hc11.h
tc-m68k.c Remove m68k-aout and m68k-coff support 2018-04-16 15:31:36 +09:30
tc-m68k.h Remove m68k-aout and m68k-coff support 2018-04-16 15:31:36 +09:30
tc-m68851.h
tc-mcore.c
tc-mcore.h
tc-mep.c
tc-mep.h
tc-metag.c
tc-metag.h
tc-microblaze.c [MicroBlaze] PIC data text relative 2018-04-17 14:47:13 -07:00
tc-microblaze.h
tc-mips.c microMIPS/GAS: Handle several percent-ops with macros 2018-07-02 23:57:22 +01:00
tc-mips.h
tc-mmix.c
tc-mmix.h
tc-mn10200.c
tc-mn10200.h
tc-mn10300.c
tc-mn10300.h
tc-moxie.c
tc-moxie.h
tc-msp430.c Fix the MSP430 assembler's parsing of register names. 2018-06-26 13:40:13 +01:00
tc-msp430.h
tc-mt.c
tc-mt.h
tc-nds32.c NDS32/GAS: Correct an `expr' global shadowing error for pre-4.8 GCC 2018-05-16 20:43:29 +01:00
tc-nds32.h
tc-nios2.c
tc-nios2.h
tc-ns32k.c
tc-ns32k.h
tc-or1k.c
tc-or1k.h
tc-pdp11.c
tc-pdp11.h
tc-pj.c
tc-pj.h
tc-ppc.c Remove fake operand handling for extended mnemonics. 2018-05-21 17:31:07 -05:00
tc-ppc.h
tc-pru.c Fix binary compatibility between GCC and the TI compiler for the PRU target. 2018-05-09 11:39:32 +01:00
tc-pru.h
tc-riscv.c RISC-V: Add gas support for "fp" register. 2018-06-29 15:12:23 -07:00
tc-riscv.h RISC-V: Fix .align handling when .option norelax. 2018-05-24 10:35:59 -07:00
tc-rl78.c
tc-rl78.h
tc-rx.c
tc-rx.h
tc-s12z.c Add support for the Freescale s12z processor. 2018-05-18 15:26:18 +01:00
tc-s12z.h Add support for the Freescale s12z processor. 2018-05-18 15:26:18 +01:00
tc-s390.c
tc-s390.h
tc-score7.c Remove i860, i960, bout and aout-adobe targets 2018-04-11 21:49:30 +09:30
tc-score.c score gcc-8 warning fixes 2018-05-12 16:21:22 +09:30
tc-score.h
tc-sh.c Remove sh5 and sh64 support 2018-04-16 15:29:39 +09:30
tc-sh.h Remove sh-symbianelf support 2018-04-16 15:27:45 +09:30
tc-sparc.c Remove sparc-aout and sparc-coff support 2018-04-16 15:33:26 +09:30
tc-sparc.h Remove sparc-aout and sparc-coff support 2018-04-16 15:33:26 +09:30
tc-spu.c
tc-spu.h
tc-tic4x.c
tc-tic4x.h
tc-tic6x.c
tc-tic6x.h
tc-tic30.c
tc-tic30.h
tc-tic54x.c
tc-tic54x.h
tc-tilegx.c
tc-tilegx.h
tc-tilepro.c
tc-tilepro.h
tc-v850.c
tc-v850.h
tc-vax.c
tc-vax.h
tc-visium.c
tc-visium.h
tc-wasm32.c
tc-wasm32.h
tc-xc16x.c
tc-xc16x.h
tc-xgate.c
tc-xgate.h
tc-xstormy16.c
tc-xstormy16.h
tc-xtensa.c xtensa: add separate property sections option 2018-06-04 10:36:39 -07:00
tc-xtensa.h
tc-z8k.c
tc-z8k.h
tc-z80.c
tc-z80.h
te-386bsd.h
te-aix5.h
te-aix.h
te-armeabi.h
te-armfbsdeabi.h
te-armfbsdvfp.h
te-armlinuxeabi.h
te-dragonfly.h
te-freebsd.h
te-generic.h
te-gnu.h
te-go32.h
te-hppa64.h
te-hppa.h
te-hppalinux64.h
te-hpux.h
te-ia64aix.h
te-interix.h
te-irix.h
te-linux.h
te-lynx.h
te-macos.h
te-nacl.h
te-nbsd532.h
te-nbsd.h
te-pc532mach.h
te-pe.h
te-pep.h
te-solaris.h
te-svr4.h
te-symbian.h
te-tmips.h
te-uclinux.h
te-vms.c
te-vms.h
te-vxworks.h
te-wince-pe.h
vax-inst.h
xtensa-istack.h
xtensa-relax.c
xtensa-relax.h