aboutsummaryrefslogtreecommitdiff
path: root/gcc/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ChangeLog')
-rw-r--r--gcc/ChangeLog65
1 files changed, 65 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 94b1f25..6c5e2bb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,68 @@
+2005-07-08 Hans-Peter Nilsson <hp@axis.com>
+
+ Rewrite PIC support to more closely model actual instructions.
+ * 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.
+
2005-07-08 Andrew Pinski <pinskia@physics.uc.edu>
* config/darwin.h (TARGET_C99_FUNCTIONS): Define to 1.