* config/cris/cris-protos.h (cris_gotless_symbol, cris_got_symbol)
(cris_symbol): Remove prototypes for removed functions.
(cris_pic_symbol_type_of, cris_valid_pic_const)
(cris_expand_pic_call_address): Prototypes for new functions.
* config/cris/cris/cris.c (cris_pic_sympart_only): Remove unused
variable.
(cris_print_operand) <case 'v', 'P'>: Remove cases for unused
modifiers.
<case ':'>: Add case for new punctuation character.
<case 'd'>: Temporarily set flag_pic = 2 instead of incorrectly
emitting (extra) PIC modifier.
<case UNSPEC>: Do not assert for PLT.
(cris_initial_frame_pointer_offset, cris_simple_epilogue)
(cris_expand_prologue, cris_expand_epilogue): Check
for pic_offset_table_rtx usage instead of taking
current_function_uses_pic_offset_table as the final word.
(cris_rtx_costs, cris_address_cost, cris_side_effect_mode_ok):
Remove flag_pic difference.
(cris_valid_pic_const, cris_pic_symbol_type_of): New functions,
the moral equivalents of...
(cris_symbol, cris_gotless_symbol, cris_got_symbol): Remove
functions.
(cris_legitimate_pic_operand): Just call cris_valid_pic_const.
(cris_handle_option): Mark ARG as unused.
(cris_expand_pic_call_address): New worker function for "call",
"call_value".
(cris_asm_output_symbol_ref, cris_asm_output_label_ref): Do not
output PIC constructs here.
(cris_output_addr_const_extra): Changes for emitting PIC modifiers
as symbol-specific modifers, not whole or part of operands.
* config/cris/cris/cris.h (EXTRA_CONSTRAINT): Remove 'U' case.
(EXTRA_CONSTRAINT_S): Changed semantics: allow only CONST-wrapped
constants and flag_pic.
(CONSTANT_INDEX_P): Adjust for new functions.
(enum cris_pic_symbol_type): New helper type.
(PRINT_OPERAND_PUNCT_VALID_P): Add ':'.
* config/cris/cris/cris.md (CRIS_UNSPEC_GOTREL)
(CRIS_UNSPEC_GOTREAD, CRIS_UNSPEC_PLTGOTREAD): New
define_constants.
("movsi"): Emit actual instructions for GOT and relative access.
("*movsi_got_load"): New pattern to set up the register holding
the GOT pointer.
("*movsi_internal"): Operand 1 is not a plain general_operand.
Adjust FIXME for 'S'.
<output for 'S' alternative>: Sanity-check UNSPEC types for PIC.
Use "movs" for -fpic cases.
("addsi3"): Add alternative for 'S'; use adds.w when possible.
("uminsi3","*expanded_call_value"): Remove 'S' alternative.
("call", "call_value"): Just call cris_expand_pic_call_address for
PIC addresses.
("*expanded_call_no_gotplt", "*expanded_call_value_no_gotplt"):
Remove special pattern.
("*expanded_call_side", "*expanded_call_value_side"): New
patterns.
(gotplt-to-plt, gotplt-to-plt-side-call)
(gotplt-to-plt-side-call-value, gotplt-to-plt-side): New
peephole2:s.
* config/cris/cris/predicates.md
("cris_general_operand_or_gotless_symbol"): Remove unused
predicate.
("cris_general_operand_or_symbol"): Adjust for new functions.
From-SVN: r101812
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| alpha | Loading commit data... | |
| arc | Loading commit data... | |
| arm | Loading commit data... | |
| avr | Loading commit data... | |
| bfin | Loading commit data... | |
| c4x | Loading commit data... | |
| cris | Loading commit data... | |
| fr30 | Loading commit data... | |
| frv | Loading commit data... | |
| h8300 | Loading commit data... | |
| i386 | Loading commit data... | |
| i860 | Loading commit data... | |
| ia64 | Loading commit data... | |
| ip2k | Loading commit data... | |
| iq2000 | Loading commit data... | |
| m32r | Loading commit data... | |
| m68hc11 | Loading commit data... | |
| m68k | Loading commit data... | |
| mcore | Loading commit data... | |
| mips | Loading commit data... | |
| mmix | Loading commit data... | |
| mn10300 | Loading commit data... | |
| ns32k | Loading commit data... | |
| pa | Loading commit data... | |
| pdp11 | Loading commit data... | |
| rs6000 | Loading commit data... | |
| s390 | Loading commit data... | |
| sh | Loading commit data... | |
| sparc | Loading commit data... | |
| stormy16 | Loading commit data... | |
| v850 | Loading commit data... | |
| vax | Loading commit data... | |
| xtensa | Loading commit data... | |
| README | Loading commit data... | |
| chorus.h | Loading commit data... | |
| darwin-c.c | Loading commit data... | |
| darwin-crt2.c | Loading commit data... | |
| darwin-protos.h | Loading commit data... | |
| darwin.c | Loading commit data... | |
| darwin.h | Loading commit data... | |
| darwin.opt | Loading commit data... | |
| dbx.h | Loading commit data... | |
| dbxcoff.h | Loading commit data... | |
| dbxelf.h | Loading commit data... | |
| divmod.c | Loading commit data... | |
| elfos.h | Loading commit data... | |
| fp-bit.c | Loading commit data... | |
| fp-bit.h | Loading commit data... | |
| freebsd-nthr.h | Loading commit data... | |
| freebsd-spec.h | Loading commit data... | |
| freebsd.h | Loading commit data... | |
| gnu.h | Loading commit data... | |
| gofast.h | Loading commit data... | |
| host-darwin.c | Loading commit data... | |
| host-darwin.h | Loading commit data... | |
| host-linux.c | Loading commit data... | |
| host-solaris.c | Loading commit data... | |
| interix.h | Loading commit data... | |
| interix3.h | Loading commit data... | |
| kaos.h | Loading commit data... | |
| kfreebsd-gnu.h | Loading commit data... | |
| knetbsd-gnu.h | Loading commit data... | |
| libgcc-glibc.ver | Loading commit data... | |
| libgloss.h | Loading commit data... | |
| linux.h | Loading commit data... | |
| lynx.h | Loading commit data... | |
| lynx.opt | Loading commit data... | |
| memcmp.c | Loading commit data... | |
| memcpy.c | Loading commit data... | |
| memmove.c | Loading commit data... | |
| memset.c | Loading commit data... | |
| netbsd-aout.h | Loading commit data... | |
| netbsd-elf.h | Loading commit data... | |
| netbsd.h | Loading commit data... | |
| openbsd-oldgas.h | Loading commit data... | |
| openbsd.h | Loading commit data... | |
| ptx4.h | Loading commit data... | |
| rtems.h | Loading commit data... | |
| sol2-c.c | Loading commit data... | |
| sol2-protos.h | Loading commit data... | |
| sol2.c | Loading commit data... | |
| sol2.h | Loading commit data... | |
| sol26.h | Loading commit data... | |
| svr3.h | Loading commit data... | |
| svr4.h | Loading commit data... | |
| t-darwin | Loading commit data... | |
| t-freebsd | Loading commit data... | |
| t-freebsd-thread | Loading commit data... | |
| t-gnu | Loading commit data... | |
| t-libc-ok | Loading commit data... | |
| t-libgcc-pic | Loading commit data... | |
| t-libunwind | Loading commit data... | |
| t-libunwind-elf | Loading commit data... | |
| t-linux | Loading commit data... | |
| t-lynx | Loading commit data... | |
| t-netbsd | Loading commit data... | |
| t-openbsd | Loading commit data... | |
| t-openbsd-thread | Loading commit data... | |
| t-rtems | Loading commit data... | |
| t-slibgcc-darwin | Loading commit data... | |
| t-slibgcc-elf-ver | Loading commit data... | |
| t-slibgcc-nolc-override | Loading commit data... | |
| t-slibgcc-sld | Loading commit data... | |
| t-sol2 | Loading commit data... | |
| t-svr4 | Loading commit data... | |
| t-vxworks | Loading commit data... | |
| tm-dwarf2.h | Loading commit data... | |
| udivmod.c | Loading commit data... | |
| udivmodsi4.c | Loading commit data... | |
| usegas.h | Loading commit data... | |
| vxlib.c | Loading commit data... | |
| vxworks.h | Loading commit data... | |
| windiss.h | Loading commit data... | |
| x-darwin | Loading commit data... | |
| x-interix | Loading commit data... | |
| x-linux | Loading commit data... | |
| x-solaris | Loading commit data... |