Richard Kenner [Sat, 8 Jun 1996 17:55:15 +0000 (13:55 -0400)]
(define_insns for ffs[qhs]i2): Deleted.
(define_insns for ffs[qhs]i2): Deleted. These patterns only worked
when the input operand was not the same as the output operand.
(define_expand for ffssi2): New pattern. This uses an anonymous
pattern that describes what the ns32k's ffsd instruction (really)
does.
Richard Kenner [Sat, 8 Jun 1996 17:49:13 +0000 (13:49 -0400)]
(fixup_var_refs_1, case SIGN_EXTEND): Handle paradoxical SUBREGs as first operand.
(fixup_var_refs_1, case SIGN_EXTEND): Handle paradoxical SUBREGs as first
operand.
(fixup_var_regs_1, case SET): Handle paradoxical SUBREGs as first operand of
a ZERO_EXTRACT in SET_DEST.
Richard Kenner [Sat, 8 Jun 1996 17:35:57 +0000 (13:35 -0400)]
(enum attrs): Add A_FORMAT_ARG.
(init_attribute): Initialize it.
(decl_attributes, case A_FORMAT): Clean up error messages.
(decl_attributes, case A_FORMAT_ARG): New case.
(struct international_format_info): New structure and typedef.
(international_format_list): New variable.
(record_international_format): New function.
(init_format_info): Call it for gettext, dcgettext, and dcgettext.
(check_format_info): See if format arg is call to internationalization
function.
Jim Wilson [Sat, 8 Jun 1996 02:44:31 +0000 (19:44 -0700)]
(MULTILIB_SELECT): Delete definition.
(multilib_select): Delete static initializer.
(multilib_obstack, multilib_raw): New global variables.
(multilib.h): Include inside multilib_raw definition.
(main): Set multilib_select from multilib_raw.
Jim Wilson [Sat, 8 Jun 1996 02:36:34 +0000 (19:36 -0700)]
(simplify_binary_operation...
(simplify_binary_operation, case MULT): Check for case
where width is larger than HOST_BITS_PER_WIDE_INT, and upper most
bit is set. We can not generate a simple shift in this case.
Per Bothner [Fri, 7 Jun 1996 07:30:20 +0000 (00:30 -0700)]
cpplib.c (xcalloc): From from cppalloc.c.
* cpplib.c (xcalloc): From from cppalloc.c.
* cpplib.c (cpp_push_buffer): If recursion too deap, return NULL
rather than exiting with fatal.
(make_assertion, cpp_expand_to_buffer, push_macro_expansion,
do_include, cpp_start_rea): Handle NULL return from cpp_push_buffer.
(output_line_command): Update position even if no_output.
(parse_clear_mark): Use fatal instead of abort.
Jeff Law [Fri, 7 Jun 1996 03:13:53 +0000 (21:13 -0600)]
h8300.c (h8300_monitor_function_p): New function.
* h8300/h8300.c (h8300_monitor_function_p): New function.
(h8300_os_task_function_p): Likewise.
(os_task, monitor): Variables to note if the current
function is an os_task or monitor.
(function_prologue): Set monitor and/or os_task as needed. Handle
os_task and monitor functions.
(function_epilogue): Clear monitor and os_task. Handle os_task and
monitor functions.
(h8300_valid_machine_decl_attribute): Accept "OS_Task" and
"monitor".
Per Bothner [Fri, 7 Jun 1996 03:07:32 +0000 (20:07 -0700)]
fix-header.c (read_scan_file): Use cpp_fatal.
* fix-header.c (read_scan_file): Use cpp_fatal.
Use renamed function names, and return protocols.
* fix-header.c (check_macro_names): Fix struct parse_file->cpp_reader.
Per Bothner [Fri, 7 Jun 1996 03:05:31 +0000 (20:05 -0700)]
cpplib.c (init_parse_option): Renamed to cpp_options_init.
* cpplib.c (init_parse_option): Renamed to cpp_options_init.
(push_parse_file): Renamed to ...
(cpp_start_read): Change to return 1 on success, 0 on failure.
(init_parse_file): Renamed to cpp_reader_init.
* cpplib.c (cpp_start_read, cpp_handle_options, cpp_finish,
parse_goto_mark, parse_move_mark): Use cpp_fatal rather than fatal.
* cpplib.c (newline_fix): Remove unused function.
Jim Wilson [Thu, 6 Jun 1996 23:29:34 +0000 (16:29 -0700)]
(function_arg): Return PARALLEL for structure with aligned double fields.
(function_arg): Return PARALLEL for structure with
aligned double fields.
(type_dependent_reg): Delete.
(mips_function_value): Return PARALLEL for structure
with two floating point fields.
Richard Kenner [Thu, 6 Jun 1996 23:24:31 +0000 (19:24 -0400)]
(TARGET_SWITCHES): Group all floating point options.
When an fp option is selected, unset bits used for other mutually
exclusive fp options.
(OVERRIDE_OPTIONS): No longer need special case for SUPPORT_SUN_FPA, as the
bits used for 68881 and SKY are cleared by new entries in TARGET_SWITCHES.
Jim Wilson [Thu, 6 Jun 1996 23:02:02 +0000 (16:02 -0700)]
(expand_call): Handle NIL in PARALLEL.
(expand_call): Handle NIL in PARALLEL. Handle PARALLEL
parameter in REG. Handle PARALLEL return value in VALREG.
(emit_library_call, emit_library_call_value): Abort for PARALLEL.
(store_one_arg): Delete code for handling EXPR_LIST.
Richard Kenner [Thu, 6 Jun 1996 21:53:49 +0000 (17:53 -0400)]
(movsi_const0, movhi): Favor clr with TARGET_5200.
(add[qhs]3): Don't use two addqw/subqw insns to add small integers to
an address register with TARGET_68060.
(stack push peephole): Use moveq.l with TARGET_5200 (when appropriate).
Per Bothner [Wed, 5 Jun 1996 23:25:48 +0000 (16:25 -0700)]
cpplib.h, cpplib.c: Remove support for !STATIC_BUFFERS.
* cpplib.h, cpplib.c: Remove support for !STATIC_BUFFERS.
* cpplib.c (special_symbol, do_once, do_include, cpp_get_token):
Compare cpp_buffer against CPP_NULL_BUFFER, not NULL.
* cpplib.c (dump_special_to_buffer): New function.
(initialize_builtins): Use it.
Per Bothner [Wed, 5 Jun 1996 23:24:48 +0000 (16:24 -0700)]
cpplib.h, cpplib.c: Remove support for !STATIC_BUFFERS.
* cpplib.h, cpplib.c: Remove support for !STATIC_BUFFERS.
* cpplib.h: Use unsigned char rather than U_CHAR.
* cpplib.h (cpp_reader): Add destructor #ifdef __cplusplus.
(cpp_cleanup): New prototype.