e52ef6e60d
If TARGET_MD_ASM_ADJUST changes a mode of an input operand (which should be ok as long as the hook itself as well as after_md_seq make up for it), input_mode will contain stale information. It might be tempting to fix this by removing input_mode altogether and just using GET_MODE (), but this will not work correctly with constants. So add input_modes parameter and document that it should be updated whenever inputs parameter is updated. gcc/ChangeLog: 2021-01-05 Ilya Leoshkevich <iii@linux.ibm.com> * cfgexpand.c (expand_asm_loc): Pass new parameter. (expand_asm_stmt): Likewise. * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Add new parameter. * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise. * config/arm/arm.c (thumb1_md_asm_adjust): Likewise. * config/cris/cris.c (cris_md_asm_adjust): Likewise. * config/i386/i386.c (ix86_md_asm_adjust): Likewise. * config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise. * config/nds32/nds32.c (nds32_md_asm_adjust): Likewise. * config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise. * config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise. * config/vax/vax.c (vax_md_asm_adjust): Likewise. * config/visium/visium.c (visium_md_asm_adjust): Likewise. * doc/tm.texi (md_asm_adjust): Likewise. * target.def (md_asm_adjust): Likewise. |
||
---|---|---|
.. | ||
constants.md | ||
constraints.md | ||
elf.h | ||
iterators.md | ||
linux.h | ||
nds32_init.inc | ||
nds32_intrinsic.h | ||
nds32_isr.h | ||
nds32-cost.c | ||
nds32-doubleword.md | ||
nds32-dspext.md | ||
nds32-e8.md | ||
nds32-elf.opt | ||
nds32-fp-as-gp.c | ||
nds32-fpu.md | ||
nds32-graywolf.md | ||
nds32-intrinsic.c | ||
nds32-intrinsic.md | ||
nds32-isr.c | ||
nds32-linux.opt | ||
nds32-md-auxiliary.c | ||
nds32-memory-manipulation.c | ||
nds32-modes.def | ||
nds32-multiple.md | ||
nds32-n7.md | ||
nds32-n8.md | ||
nds32-n9-2r1w.md | ||
nds32-n9-3r2w.md | ||
nds32-n10.md | ||
nds32-n13.md | ||
nds32-opts.h | ||
nds32-peephole2.md | ||
nds32-pipelines-auxiliary.c | ||
nds32-predicates.c | ||
nds32-protos.h | ||
nds32-relax-opt.c | ||
nds32-utils.c | ||
nds32.c | ||
nds32.h | ||
nds32.md | ||
nds32.opt | ||
pipelines.md | ||
predicates.md | ||
t-elf | ||
t-linux | ||
t-mlibs | ||
t-nds32 |