diff options
author | Jozef Lawrynowicz <jozef.l@mittosystems.com> | 2018-11-16 23:53:30 +0000 |
---|---|---|
committer | Jozef Lawrynowicz <jozefl@gcc.gnu.org> | 2018-11-16 23:53:30 +0000 |
commit | cac6691c1375ea292e430d2c5780ebd3372f5f66 (patch) | |
tree | 26e6b0d4664cd6bc308e5010c9c81781e26aaebe /gcc/target-def.h | |
parent | 8808260dfd1f7f25e7464bcf8006235677830672 (diff) | |
download | gcc-cac6691c1375ea292e430d2c5780ebd3372f5f66.zip gcc-cac6691c1375ea292e430d2c5780ebd3372f5f66.tar.gz gcc-cac6691c1375ea292e430d2c5780ebd3372f5f66.tar.bz2 |
re PR target/87927 (ICE: segmentation fault with patchable_function_entry attribute for msp430-elf -mlarge)
2018-11-16 Jozef Lawrynowicz <jozef.l@mittosystems.com>
PR target/87927
* target-def.h: Initialize TARGET_ASM_{,UN}ALIGNED_P{S,D,T}I_OP.
Add them to the TARGET_ASM_{,UN}ALIGNED_INT_OP structs.
* target.def: Enumerate TARGET_ASM_{,UN}ALIGNED_P{S,D,T}I_OP in
the byte_op hook.
* target.h: Add psi, pdi, pti to struct asm_int_op definition.
* targhooks.c (default_print_patchable_function_entry): Assert
asm_int_op does not return a NULL string.
* varasm.c (integer_asm_op): Return the op for a partial int type
when the requested size does not correspond to an integer type.
* config/msp430/msp430.c: Initialize TARGET_ASM_{,UN}ALIGNED_PSI_OP.
* doc/tm.texi: Regenerate.
From-SVN: r266226
Diffstat (limited to 'gcc/target-def.h')
-rw-r--r-- | gcc/target-def.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/gcc/target-def.h b/gcc/target-def.h index 695198b..fb968e6 100644 --- a/gcc/target-def.h +++ b/gcc/target-def.h @@ -47,6 +47,15 @@ #define TARGET_ASM_UNALIGNED_TI_OP NULL #endif /* OBJECT_FORMAT_ELF */ +/* There is no standard way to handle P{S,D,T}Imode, targets must implement them + if required. */ +#define TARGET_ASM_ALIGNED_PSI_OP NULL +#define TARGET_ASM_UNALIGNED_PSI_OP NULL +#define TARGET_ASM_ALIGNED_PDI_OP NULL +#define TARGET_ASM_UNALIGNED_PDI_OP NULL +#define TARGET_ASM_ALIGNED_PTI_OP NULL +#define TARGET_ASM_UNALIGNED_PTI_OP NULL + #if !defined(TARGET_ASM_CONSTRUCTOR) && !defined(USE_COLLECT2) # ifdef CTORS_SECTION_ASM_OP # define TARGET_ASM_CONSTRUCTOR default_ctor_section_asm_out_constructor @@ -89,14 +98,20 @@ #define TARGET_ASM_ALIGNED_INT_OP \ {TARGET_ASM_ALIGNED_HI_OP, \ + TARGET_ASM_ALIGNED_PSI_OP, \ TARGET_ASM_ALIGNED_SI_OP, \ + TARGET_ASM_ALIGNED_PDI_OP, \ TARGET_ASM_ALIGNED_DI_OP, \ + TARGET_ASM_ALIGNED_PTI_OP, \ TARGET_ASM_ALIGNED_TI_OP} #define TARGET_ASM_UNALIGNED_INT_OP \ {TARGET_ASM_UNALIGNED_HI_OP, \ + TARGET_ASM_UNALIGNED_PSI_OP, \ TARGET_ASM_UNALIGNED_SI_OP, \ + TARGET_ASM_UNALIGNED_PDI_OP, \ TARGET_ASM_UNALIGNED_DI_OP, \ + TARGET_ASM_UNALIGNED_PTI_OP, \ TARGET_ASM_UNALIGNED_TI_OP} #if !defined (TARGET_FUNCTION_INCOMING_ARG) |