(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.
From-SVN: r9099
* 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.
From-SVN: r9096
* 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.
From-SVN: r9095
(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.
From-SVN: r9085
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.
From-SVN: r9072
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.
From-SVN: r9071
(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.
From-SVN: r9067
(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.
From-SVN: r9062
(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.
From-SVN: r9060
(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.
From-SVN: r9057
* 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.
From-SVN: r9054