Doug Evans [Tue, 7 Mar 1995 17:16:54 +0000 (17:16 +0000)]
(TARGET_VERSION): Define.
(CPP_PREDEFINES): Delete sun, sparc, unix. Delete OS assertions.
(ASM_SPEC): Define.
(LINK_SPEC): Delete solaris stuff, this is an embedded target.
(STARTFILE_SPEC, ENDFILE_SPEC): Define.
Doug Evans [Sun, 5 Mar 1995 23:27:16 +0000 (23:27 +0000)]
Undo this patch, breaks libobjc builds.
* c-decl.c (pushdecl): When have a duplicate decl, and it is global,
delete lookup_name name in test for return.
(redeclaration_error_message): When newdecl is a block level
declaration, use lookup_name_current_level instead of DECL_CONTEXT.
Richard Kenner [Wed, 1 Mar 1995 11:48:17 +0000 (06:48 -0500)]
(decode_field_reference): Don't check TREE_CODE of EXP; let get_inner_reference decide if have reference.
(decode_field_reference): Don't check TREE_CODE of EXP; let
get_inner_reference decide if have reference.
Allow no bit reference if have AND_MASK.
(all_ones_mask_p): Use tree_int_cst_equal, not operand_equal_p.
(unextend): New function.
(fold_truthop): For constant cases, use new function, rework
conversion, and warn if comparison can never be true.
Per Bothner [Tue, 28 Feb 1995 23:06:03 +0000 (15:06 -0800)]
function.c (lookup_static_chain): Check for a static chain using FUNCTION_NEEDS_STATIC_CHAIN.
* function.c (lookup_static_chain): Check for a static chain
using FUNCTION_NEEDS_STATIC_CHAIN.
(init_function_start): Set current_function_needs_context depending
on FUNCTION_NEEDS_STATIC_CHAIN rather than decl_function_context.
Per Bothner [Tue, 28 Feb 1995 23:05:01 +0000 (15:05 -0800)]
expr.c (expand_expr): If non-local variable is expanded...
* expr.c (expand_expr): If non-local variable is expanded,
set FUNCTION_NEEDS_STATIC_CHAIN (current_function_decl).
* expr.c (expand_expr case ADDR_EXPR): Check for trampoline
using FUNCTION_NEEDS_STATIC_CHAIN, instead of decl_function_context.
Doug Evans [Sat, 25 Feb 1995 15:16:38 +0000 (15:16 +0000)]
(print_search_dirs): New variable.
(build_search_list): New function.
(putenv_from_prefixes): Call it.
(option_map): New option --print-search-dirs.
(process_command): Handle it.
(main): Print installation directory and exec/startfile_prefixes if
--print-search-dirs given.
Jim Wilson [Sat, 25 Feb 1995 02:21:37 +0000 (18:21 -0800)]
(pushdecl): When have a duplicate decl, and it is global,
delete lookup_name name in test for return.
(redeclaration_error_message): When newdecl is a block level
declaration, use lookup_name_current_level instead of DECL_CONTEXT.
Jim Wilson [Sat, 25 Feb 1995 02:16:06 +0000 (18:16 -0800)]
(PACKSTRUCT_BIT, TARGET_PACKSTRUCT): Change to PADSTRUCT.
Add comment saying that the option is not useful.
(TARGET_SWITCHES): Change -mpackstruct option to -mpadstruct.
(STRUCTURE_SIZE_BOUNDARY): Change PACKSTRUCT to PADSTRUCT changing
default value from 32 to 8.
(i960_output_ldconst): In DFmode code, delete code to handle FP_REG_P
target. In DFmode and SFmode code, delete test for HOST_FLOAT_FORMAT
== TARGET_FLOAT_FORMAT.
Jim Wilson [Fri, 24 Feb 1995 22:19:23 +0000 (14:19 -0800)]
Correct typos and formatting problems.
(add_constant, current_function_pretend_args_size,
flag_traditional, table_lab): Delete unnecessary declarations.
(sh_cpu): Change type from attr_cpu to processor_type.
(need_slot, output_shift, lshiftrt_insns, howshift,
pop_operand): Delete.
(print_operand, output_branch): Delete calls to need_slot.
(synth_constant): Comment that it doesn't work.
(output_movedouble): Handle PRE_DEC dest not POST_INC dest.
(output_options): Don't use flag_traditional.
(shift_insns): Correct numbers to optimal sequences.
(shift_amounts): New table.
(shift_insns_rtx): New function.
(shiftinsns): Combine LSHIFTRT and ASHIFT cases.
(shiftcosts): Return true costs of shifts instead of estimate of 1.
(gen_ashift): Handle negative shift amounts. Call gen_lshrsi3_m
for single bit LSHIFTRT, and gen_lshrisi3_k for multiple bit shifts.
(gen_shifty_op): Handle negative shift amounts at top. Generate
optimal sequences for ASHIFT and LSHIFTRT.
(find_barrier): Correct pattern for matching mova instructions.
(general_movsrc_operand): Delete redundant test for (MEM LABEL_REF).
Don't reject POST_INC address for size > 4.
(general_movdst_operand): Don't reject PRE_DEC address for size > 4.
Jim Wilson [Fri, 24 Feb 1995 22:17:21 +0000 (14:17 -0800)]
Correct typos and formatting problems.
(cpu): Use sh_cpu_attr not sh_cpu.
(adddi3, subdi3, udivsi3-1, divsi3-1, mulsi3_call-1, ashrsi2_16,
ashrsi2_31, dect, casesi_worker): Use arith_reg_operand not
register_operand.
(ashlsi3_n, lshrsi3_n): Enable pattern. Set length correctly.
Use '#' to output it.
(ashlsi3_n+1, lshrsi3_n+1): New patterns to split shifts.
(ashlsi3, lshrsi3): Use shiftby_operand instead of gen_shifty_op.
(lshlsi3_m): New pattern for single bit shifts.
(lshlsi3_k): Only handle multiple bit shifts.
(negc): Use IOR not PLUS to set carry bit.
(push+2, pop+2, movsi_pi, movdi-2, movdf_k-1, movsf_i-1): Delete.
(movsi_i, movqi_i, movhi_i): Delete redundant < and > constraints.
(movsf_i): Delete incorrect < and > constraints.
Jim Wilson [Fri, 24 Feb 1995 20:55:10 +0000 (12:55 -0800)]
(dbxout_parms): For parameters passed in memory...
(dbxout_parms): For parameters passed in memory, delete
obsolete code to handle parameters converted and stored back to
the stack slot where they were passed in.
(dbxout_reg_parms): Delete obsolete ifdefed out code. Combine
redundant PARM_PASSED_IN_MEMORY tests. For case where parameter
lives in memory, output stab if it doesn't live where it was passed.
Mike Stump [Thu, 23 Feb 1995 22:23:33 +0000 (22:23 +0000)]
rs6000.h (RETURN_ADDR_RTX): Add definition to support __builtin_return_address and __builtin_frame_address...
* rs6000.h/rs6000.h (RETURN_ADDR_RTX): Add definition to support
__builtin_return_address and __builtin_frame_address on the
rs6000. This is necessary to support exception handling in g++ on
the rs6000.
Fixes eh6.C on rs6000.
Richard Kenner [Wed, 22 Feb 1995 23:26:54 +0000 (18:26 -0500)]
(enum sharp_token_type): New type.
(stringify, raw_before, raw_after): Use this type instead of char.
(collect_expansion, dump_single_macro): Keep track of white space
after # and around ## tokens, since the C Standard requires a
diagnostic if the white space doesn't match during a redefinition.
(sharp_token, sharp_sharp_token): Labels renamed from hash_token and
hash_hash_token for naming consistency.