* mips.c (extend_operator): New function.
(highpart_shift_operator): Likewise.
* mips.h: Declare new functions.
(PREDICATE_CODES): Add support for new predicates.
* mips.md (mulsi3 expander): Simplify.
(mulsi_mult3): Add another constraint alternative. Support
3 operand multiply instructions as found on various mips
parts.
(mulsi3_r4650): Delete pattern, now handled by mulsi_mult3.
(mul_acc_si): New pattern and associated splitters.
(mulsidi3 expander): Rework to use mulsidi3_64bit and
mulsidi3_internal.
(umulsidi3): New expander.
(mulsidi3_internal): Accept either sign or zero extended
operands and generate code as appropriate appropriately.
(mulsidi3_64bit): Similarly.
(smulsi3_highpart): Turn into an expander and generate code
to match new patterns.
(umulsi3_highpart): Likewise.
(xmulsi3_highpart_internal): New pattern.
(maddi patterns): Delete. Replace with:
(mul_acc_di, mul-acc_64bit_di): New patterns.
Co-Authored-By: Jeffrey A Law <law@cygnus.com>
From-SVN: r20337
Thu Jun 8 14:16:15 EDT 1998 Andrew MacLeod <amacleod@cygnus.com>
* eh-common.h: Remove NEW_EH_MODEL compile time flag, and replace with
flag_new_exceptions runtime flag.
(struct old_exception_table): New struct which represents what
the exception table looks like without the new model.
(NEW_EH_RUNTIME): New value used as a tag in the exception table to
flag that this is a new style table.
* except.h: Remove compile time flag NEW_EH_MODEL.
(expand_builtin_eh_stub_old): New prototype.
* tree.h (enum built_in_function): Add BUILT_IN_EH_STUB_OLD.
* expr.c (expand_builtin): New builtin func BUILT_IN_EH_STUB_OLD.
* c-decl.c (init_decl_processing): Add new builtin function
__builtin_eh_stub_old.
* final.c (final_scan_insn): Replace compile time flag NEW_EH_MODEL.
* flags.h (flag_new_exceptions): New runtime flag.
* toplev.c (flag_new_exceptions): Initialize default to 0,
-fnew-exceptions sets to 1.
* except.c (output_exception_table_entry): Output New style exception
identifier into table, and replace compile time flag NEW_EH_MODEL
with runtime flag flag_new_exceptions.
(output_exception_table): Replace compile time flag NEW_EH_MODEL.
(expand_builtin_eh_stub_old): Duplicates original functionality of
expand_builtin_eh_stub.
(expand_builtin_eh_stub): Replace compile time flag NEW_EH_MODEL.
* libgcc2.c (find_exception_handler): Remove NEW_EH_MODEL #ifdefs.
(old_find_exception_handler): New func, same as find_exception_handler
except it works on the old style exception table.
(__throw): Replace NEW_EH_MODEL. Detect new model based on presence
of identifier in the exception table, and call appropriate routines.
1998-06-08 Andrew MacLeod <amacleod@cygnus.com>
* except.c (init_exception_processing): Remove NEW_EH_MODEL compile
time flag. Call __cp_eh_info instead of __cp_exception_info.
* exception.cc (struct cp_eh_info): Remove NEW_EH_MODEL flag.
(__cp_exception_info): Return offset into cp_eh_info structure to
match what use to be the start of this structure.
(__cp_eh_info): New function to return a pointer to cp_eh_info struct.
(__cplus_type_matcher, __cp_push_exception): Remove NEW_EH_MODEL
compile time flag.
(__uncatch_exception, __check_eh_spec, std::uncaught_exception): Call
__cp_eh_info instead of __cp_exception_info.
From-SVN: r20336
* function.c: Define current_function_cannot_inline.
(push_function_context_to): Save it.
(pop_function_context_from): Restore it.
* function.h (struct function): Provide it a home.
* output.h: Declare it.
* integrate.c (function_cannot_inline_p): Check it.
* decl.c (cp_finish_decl): Disable inlining of extern inlines
with static variables.
From-SVN: r20332
* class.c (instantiate_type): Handle pointer-to-members where the
member is a template.
* init.c (build_offset_ref): Likewise.
* typeck.c (build_unary_op): Likewise.
From-SVN: r20283
Sun Jun 7 14:15:45 1998 John Carr <jfc@mit.edu>
* sol2.h (INIT_SUBTARGET_OPTABS): Use Solaris libc float/long long
conversion functions.
From-SVN: r20277
* com.c (lang_init_options): New function.
* top.c (ffe_decode_option): Remove all trace of -fset-g77-defaults.
Set ffe_is_do_internal_checks_ with -version.
* lang-options.h: Likewise.
* lang-specs.h: Likewise.
From-SVN: r20276
* class.c (instantiate_type): Handle pointer-to-members where the
member is a template.
* init.c (build_offset_ref): Likewise.
* typeck.c (build_unary_op): Likewise.
From-SVN: r20269
* rs6000.md (restore_stack_block): Generate MEM and specify mode.
* rs6000.h (STACK_SAVEAREA_MODE): SAVE_FUNCTION is VOIDmode.
* rs6000.c (rs6000_output_load_toc_table): Use fputs.
(output_function_profiler): Use asm_fprintf and fputs.
From-SVN: r20268
* gencheck.c: Remove redundant stdio.h include. Add a definition
of xmalloc for when we are forced to link with alloca.o.
* reload1.c (reload_reg_free_for_value_p): Use `(unsigned)1'
instead of `1U'.
* fold-const.c (constant_boolean_node): Make definition static to
match the prototype.
From-SVN: r20261
* spew.c (yylex): Also return the TYPE_DECL if got_object.
Don't clear got_object after '~'.
* call.c (build_scoped_method_call): Tweak destructor handling.
(build_method_call): Likewise.
* pt.c (tsubst_copy, case METHOD_CALL_EXPR): Don't mess with
TYPE_MAIN_VARIANT for destructors.
* semantics.c (finish_object_call_expr): Complain about calling a
TYPE_DECL.
From-SVN: r20256