diff options
author | Dmitri Makarov <dim@windriver.com> | 2000-02-29 01:42:52 +0000 |
---|---|---|
committer | Nick Clifton <nickc@gcc.gnu.org> | 2000-02-29 01:42:52 +0000 |
commit | c27ba9120aa6d7a4477315f359088ea7e4267bd3 (patch) | |
tree | 7e5e83e1bbfeec9523a4194b16ed3c7e0c4a5df4 /gcc/ChangeLog | |
parent | 8aacf0160022afb99df7b9042b2f44493512ed54 (diff) | |
download | gcc-c27ba9120aa6d7a4477315f359088ea7e4267bd3.zip gcc-c27ba9120aa6d7a4477315f359088ea7e4267bd3.tar.gz gcc-c27ba9120aa6d7a4477315f359088ea7e4267bd3.tar.bz2 |
Apply Dimitri Makarov's patch to import attribute short_call and #pragma
long_calls, no_long_calls.
From-SVN: r32248
Diffstat (limited to 'gcc/ChangeLog')
-rw-r--r-- | gcc/ChangeLog | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4d4d454..b5dd91b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,72 @@ +2000-02-28 Dmitri Makarov <dim@windriver.com> + + * extend.texi: Document ARM's support for long/short calls. + + * invoke.texi: Document ARM's -mlong-calls command line switch. + + * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype. + (arm_encode_call_attribute): Add prototype. + (arm_set_default_type_attribute): Add prototype. + (arm_strip_name_encoding): Add prototype. + + * config/arm/arm.c (arm_init_cumulative_args): replace + initialisation og 'long_calls' field with initialisation of + 'call_cookie' field. + (enum arm_pragma_enum): New enum. + (arm_pragma_long_calls): New static variable. + (arm_process_pragma): Also process "#pragma long_calls_off". + (arm_valid_type_attribute_p): Accept short_call attribute. + (arm_comp_type_attributes): Check long/short call attributes. + (arm_encode_call_attribute): New function: Encode long_call + or short_call attribute in function name. + (arm_set_default_type_attributes): New function: Assign + default attributes to newly defined type. + (current_file_function_operand): New function: Return true if + the symbol is a function which has already been compiled. + (arm_is_longcall_p): New function: Return true if the + indicated function should be called via a long call. + (arm_get_strip_length): New function. Returns number of + prefix characters to be stripped from a function's name. + (arm_strip_name_encoding): New function. Strip prefix characters + from a function's name. + + * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field + with 'call_cookie'. + (SHORT_CALL_FAG_CHAR): Define. + (LONG_CALL_FAG_CHAR): Define. + (ENCODED_SHORT_CALL_ATTR_P): Define. + (ENCODED_LONG_CALL_ATTR_P): Define. + (ARM_NAME_ENCODING_LENGTHS): Define. + (STRIP_NAME_ENCODING): Define. + (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding. + (ARM_ENCODE_CALL_TYPE): Define. + (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE. + (ARM_DECLARE_FUNCTION_SIZE): Define. + (SET_DEFAULT_TYPE_ATTRIBUTES): Define. + + * config/arm/arm.md (call): Call arm_is_longcall_p to decide + if a long call is needed. + (call_value): Ditto. + (call_symbol): Ditto. + + * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of + ARM_DECLARE_FUNCTION_SIZE. + + * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define. + (SUBTARGET_NAME_ENCODING_LENGTHS): Define. + (ARM_STRIP_NAME_ENCODING): Undefine. + (STRIP_NAME_ENCODING): Undefine. + (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding. + (ASM_DECLARE_FUNCTION_NAME): Ditto. + (ASM_OUTPUT_COMMON): Ditto. + (ASM_DECLARE_OBJECT_NAME): Ditto. + + * config/arm/pe.c (arm_dllexport_name_p): Check for + ARM_PE_FLAG_CHAR. + (arm_dllimport_name_p): Ditto. + (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR. + (arm_mark_dllimport): Ditto. + Mon Feb 28 22:11:12 2000 J"orn Rennecke <amylaar@cygnus.co.uk> * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define. |