Commit Graph

13383 Commits

Author SHA1 Message Date
Doug Evans
2d5ff2a7ce (LIB_SPEC): -lprof1 requires -lpdf for OSF4.
From-SVN: r13732
1997-03-18 19:30:01 +00:00
Jeff Law
2b3600acb4 m68k.c (m68k_last_compare_had_fp_operands): New variable.
* m68k/m68k.c (m68k_last_compare_had_fp_operands): New variable.
        * m68k/m68k.h (m68k_last_compare_had_fp_operands): Declare it.
        * m68k/m68k.md (tst*, cmp*): Turn all of these into
        define_expand/define_insn pairs.  Keep track of whether or not
        the test/compare has fp operands.
        (seq, sne, sgt, slt, sge, sle): Turn these into
        define_expand/define_insn pairs.  Make the expanders FAIL if
        TARGET_68060 and the last comparison/test had fp operands.

From-SVN: r13731
1997-03-18 11:38:59 -07:00
Richard Earnshaw
f57b1ad380 (movhi): Handle generation of large constants during
and after reload.

From-SVN: r13730
1997-03-18 09:28:41 +00:00
Richard Kenner
2033a41a96 (RETURN_POPS_ARGS): Make sure FUDECL is non-nil before we try to use it.
From-SVN: r13729
1997-03-17 17:30:17 -05:00
Richard Kenner
a6096a27f6 (beq0_di, bne0_di, bge0_di, blt0_di): Use cmpw #0 instead of tstl when
testing address registers on the 68000.

From-SVN: r13728
1997-03-17 17:21:25 -05:00
Richard Kenner
0b364e61d3 (layout_record...
(layout_record, PCC_BITFIELD_TYPE_MATTERS): Only add padding if a bit
field would otherwise span more units of alignment than its base type.

From-SVN: r13727
1997-03-17 17:13:37 -05:00
Richard Kenner
7c4033ff87 (parse_number): Invalid integer constants are errors if pedantic.
(cpp_lex): Invalid multibyte characters are errors if pedantic.
(cpp_parse_escape): Character constants that do not fit are errors if pedantic.

From-SVN: r13726
1997-03-17 17:08:27 -05:00
Richard Kenner
1a4a238db9 (parse_number): Invalid integer constants are errors if pedantic.
(yylex): Invalid multibyte characters are errors if pedantic.

From-SVN: r13725
1997-03-17 17:07:46 -05:00
Richard Kenner
e82673c4a8 Fix prologues/epilogues to deal with the lack of predecrement/postincrement...
Fix prologues/epilogues to deal with the lack of
predecrement/postincrement addressing modes in the coldfire moveml
instruction.

From-SVN: r13724
1997-03-17 17:03:45 -05:00
Richard Kenner
14499ba4f3 (__objc_block_return): Remove function.
(__objc_word_return, __objc_double_return): Remove functions.
(__objc_get_forward_imp): New function.
(__objc_init_dispatch_tables): Install zero instead of
__objc_init_install_dtable.
(__objc_init_install_dtable): No longer call the method but
allow objc_msg_lookup return it for normal execution.
(obj_msg_lookup): Differentiate between when a method isn't
implemented and when the dispatch table needs to be installed.
Return the IMP when the dispatch table is installed versus
having __objc_init_install_dtable call it.
(get_imp): Install dispatch table if needed and return IMP
from the newly installed dispatch table.
(__objc_responds_to): Install dispatch table if needed before
checking if method is implemented.

From-SVN: r13723
1997-03-17 17:00:10 -05:00
Richard Kenner
0fd1796807 (build_{index,range}_type): Ensure expressions for min and max value
are in same obstack as type.

From-SVN: r13722
1997-03-17 16:29:33 -05:00
Richard Kenner
d5afd1d10b [#if VMS] (O_RDONLY, O_WRONLY): Delete (redundant).
(BSTRING): Delete (obsolete; usage occurs prior to definition).
(do_include): Handle old VAX C style includes better.

From-SVN: r13721
1997-03-17 15:44:06 -05:00
Richard Kenner
ae9cb2081c (expr_no_commas): Do not store temporary skip_evaluation increments on yacc value stack...
(expr_no_commas): Do not store temporary skip_evaluation increments on
yacc value stack; the code was buggy and occasionally wrote past the
end of the stack.

From-SVN: r13720
1997-03-17 13:46:42 -05:00
Richard Kenner
289d1b21a8 (INCLUDE_DEFAULTS): Define to something useful when cross-compiling.
From-SVN: r13719
1997-03-17 07:08:47 -05:00
Richard Kenner
dc500fa115 (expand_expr, case PLACEHOLDER_EXPR): Refine which object is picked.
From-SVN: r13718
1997-03-16 19:54:36 -05:00
Jeff Law
ab16257805 loop.c (strength_reduce): Adjust BENEFIT appropriately if an autoincrement memory reference will...
* loop.c (strength_reduce): Adjust BENEFIT appropriately if an
        autoincrement memory reference will eliminate add insns.

From-SVN: r13717
1997-03-16 15:50:56 -07:00
Richard Kenner
c8163b58ed Correct include path.
From-SVN: r13716
1997-03-16 08:41:08 -05:00
Richard Kenner
8235e418bc (__objc_block_return): New function.
(__objc_word_return, __objc_double_return): New functions.
(__objc_init_install_dtable): Call appropriate return function
based upon method type.

From-SVN: r13715
1997-03-16 08:40:47 -05:00
Richard Kenner
74775c7ae2 (untyped_call): Re-enable code.
From-SVN: r13714
1997-03-16 08:40:23 -05:00
Richard Kenner
12d94bff7e (objc_module): Eliminate statics variable.
From-SVN: r13713
1997-03-15 07:57:55 -05:00
Richard Kenner
d3d71914cb (OBJC_O): Add linking.m.
From-SVN: r13712
1997-03-15 07:57:36 -05:00
Richard Kenner
7084b319a3 (class_add_method_list): Check for the +load method when adding a methods list to a class.
(class_add_method_list): Check for the +load method when adding a
methods list to a class.
(__objc_install_methods_in_dtable): New function.
(class_add_method_list): Don't check anymore for duplicate methods.

From-SVN: r13711
1997-03-15 07:57:06 -05:00
Richard Kenner
e29e95701b Initial revision
From-SVN: r13710
1997-03-15 07:56:24 -05:00
Richard Kenner
f0a5229172 (OBJC_VERSION): Increment version.
(objc_send_load, __objc_send_load): New functions.
(__objc_send_message_in_list): New function.
(__objc_force_linking): New function.
(__objc_exec_class): Don't call _objc_load_callback here.
(__objc_exec_class): Access statics from their new place in the defs variable.

From-SVN: r13709
1997-03-15 07:56:13 -05:00
Richard Kenner
e335b3ee7e (OBJC_VERSION): Increment version as recent changes have made old compiled code incompatible with current ObjC runtime.
(OBJC_VERSION): Increment version as recent changes have made old
compiled code incompatible with current ObjC runtime.
(build_objc_symtab_template): Make sure defs in objc_symtab is a NULL
terminated array.
(init_def_list): Attach statics to end of def list.
(init_objc_symtab): Take statics list into account.
(init_module_descriptor, build_module_descriptor): Don't add statics.
(generate_static_references): Indicate that statics are used.
(finish_objc): Process statics in the beginning.

From-SVN: r13708
1997-03-15 07:53:30 -05:00
Richard Kenner
7dee9e6a71 (reload.o): Added expr.h to dependencies list.
From-SVN: r13707
1997-03-15 07:29:05 -05:00
Richard Kenner
55c225655f Include expr.h.
(find_reloads_address, find_reloads_address_1): New argument INSN.
(find_reloads_address_1): Reload inside of p{re,ost}_{in,de}c
instead of entire p{re,ost}_{in,de}c where appropriate.

From-SVN: r13706
1997-03-15 07:28:39 -05:00
Richard Kenner
fa1610e95b Change all calls to eliminate_regs.
From-SVN: r13705
1997-03-15 07:17:02 -05:00
Richard Kenner
29ae501263 (eliminate_regs): Add STORING arg.
(eliminate_regs, case SET): Pass that we are storing to recursive call.
(eliminate_regs, case SUBREG): If storing and same number of words, use
larger mode.

From-SVN: r13704
1997-03-15 07:14:27 -05:00
Richard Kenner
abd268e28d (eliminate_regs): Add STORING arg.
From-SVN: r13703
1997-03-15 07:11:34 -05:00
Ian Lance Taylor
9663100ef1 Add prototypes, remove unsed cplus_match, make mystrstr static
From-SVN: r13702
1997-03-14 19:20:53 +00:00
Jeff Law
38c37a0ef0 mn10300.c (const_costs): Remove unused function.
* mn10300/mn10300.c (const_costs): Remove unused function.
        * mn10300/mn10300.h (CONST_COSTS): Rework to generate better code.

        * mn10300/mn10300.c (print_operand): Handle 'H' and 'L' output
        modifers for high/low part of a 64bit value.
        * mn10300/mn10300.h (CONST_DOUBLE_OK_FOR_LETTER_P): Handle 'G'
        (LEGITIMATE_CONSTANT_P): Allow any constant.
        * mn10300/mn10300.md (movdi, movdf): Implement.
        (adddi3, subdi3): New expanders and patterns.

        * mn10300/mn10300.c (print_operand): Handle 'A' modifier for an
        address which can't be simple register indirect.
        * mn10300/mn10300.h (EXTRA_CONSTRAINT): Handle 'R' for bit ops.
        * mn10300/mn10300.md: Add several patterns to test, set and clear
        bitfields.

        * mn10300/mn10300.c (can_use_return_insn): New function.
        (expand_epilogue): Emit a RETURN insn if possible.
        * mn10300/mn10300.md (return): New pattern.

        * mn10300/mn10300.h (CONST_OK_FOR_LETTER_P): Handle 'N'.
        * mn10300/mn10300.md (andsi3): Catch "and 255,dn" and "and 65535,dn"
        which were not turned into zero_extend patterns.

        * mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Handle symbolic
        constant as an index/base too.

        * mn10300/mn10300.md (movsi): Allow SP to be loaded/saved with
        reg+d8 addresses.

        * mn10300/mn10300.md (cmpsi): Allow second operand to be a constant.
        (subsi3): Likewise.

        * mn10300/mn10300.md (sign extension patterns): Fix thinko when
        extending from memory.

        * mn10300/mn10300.md (tst peepholes): Add peepholes for test/branch
        based on N bit being set/clear and the data value being tested dies.

From-SVN: r13701
1997-03-14 10:32:36 -07:00
Jeff Law
777fbf098d mn10300.c (expand_prologue): Rework so that eliminating the frame pointer produces faster/smaller code.
* mn10300/mn10300.c (expand_prologue): Rework so that eliminating
        the frame pointer produces faster/smaller code.
        (expand_epilogue): Likewise.
        (initial_offset): New function for argument pointer and frame pointer
        elimination.
        * mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Bump to 10.
        (FIXED_REGISTERS): Add argument pointer register, it's a fake fixed
        register.
        (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Corresponding changes.
        (REGNO_REG_CLASS, REG_CLASS_CONTENTS): Likewise.
        (REG_OK_FOR_BASE_P, REGISTER_NAMES): Likewise.
        (reg_class, REG_CLASS_NAMES): Delete unwanted DATA_OR_SP_REGS class.
        (PREFERRED_OUTPUT_RELOAD_CLASS): Define.
        (FIRST_PARM_OFFSET): No longer include register save area in
        computation.
        (STACK_POINTER_REGNUM): Is now register 9.
        (ARG_POINTER_REGNUM): Is now register 8.
        (FRAME_POINTER_REQUIRED): Refine.
        (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Define.
        (CAN_DEUG_WITHOUT_FP): Define.
        * mn10300/mn10300.md (return_internal): Break into two patterns.

        * mn10300/mn10300.h (CONST_OK_FOR_LETTER_P): Handle 'M' too.
        (REGISTER_MOVE_COST): Fix errors and refine.

        * mn10300/mn10300.c (notice_update_cc): SET_ZN_C0 insns leave the
        overflow bit in an unuseable state.  Rename CC_SET to CC_TST.
        * mn10300/mn10300.md (cc attributes): "set" is gone, replaced by
        "tst".  Update attributes on various insns.

        * mn10300/mn10300.md: Improve sign and zero extension instructions.
        (ashlsi3): Improve.  Handle address registers too.
        (add peephole): Combine two consecutive adjustments of a register
        into a single adjustment.

From-SVN: r13700
1997-03-11 17:25:59 -07:00
Brendan Kehoe
e9b1360b49 cplus-dem.c (gnu_special): Call demangled_fund_type for other __t* symbols.
* cplus-dem.c (gnu_special): Call demangled_fund_type for other
        __t* symbols.

From-SVN: r13699
1997-03-11 17:18:56 -05:00
Richard Kenner
3c99d5ffb6 (simplify_rtx, case SUBREG): Fix direction of test when calling operand_subword...
(simplify_rtx, case SUBREG): Fix direction of test when calling
operand_subword; use inline code intead of subreg_lowpart_p.

From-SVN: r13698
1997-03-10 16:10:20 -05:00
Richard Kenner
a3a03040fb (subreg_lowpart_p): Return 0 if SUBREG_REG is VOIDmode.
From-SVN: r13697
1997-03-10 16:09:55 -05:00
Jeff Law
6e86170d98 mn10300.c (expand_prologue): Rework to avoid unnecessary "add" operations.
* mn10300/mn10300.c (expand_prologue): Rework to avoid unnecessary
        "add" operations.
        (expand_epilogue): Likewise.
        * mn10300/mn10300.h (STARTING_FRAME_OFFSET): Is zero after the last
        round of prologue/epilogue changes.
        (FIRST_PARM_OFFSET): Is now 16 (-4 for REG_PARM_STACK_SPACE + 20 for
        register save area).
        (REG_PARM_STACK_SPACE): Define as 4 bytes.
        (OUTGOING_REG_PARM_STACK_SPACE): Define so caller allocates it.
        * mn10300/mn10300.md (call expander): Don't emit insns to adjust the
        stack here anymore.
        (call_value expander): Likewise.

        * mn10300/mn10300.md (bCC patterns): Just use "bCC target" now that
        the assembler handles relaxing.

From-SVN: r13696
1997-03-07 09:42:33 -07:00
Michael Meissner
e035031935 Do not emit USE on a LABEL_REF
From-SVN: r13695
1997-03-06 22:28:22 +00:00
Jim Wilson
dfcf98915c (modified_type_die): Initialize item_type to NULL.
Move equate_type_number_to_die call before use of sub_die, and move
recursive modified_type_die calls on item_type after it.

From-SVN: r13694
1997-03-06 13:32:43 -08:00
Jim Wilson
b1357021b8 (root_type_1, write_modifier_bytes_1): New functions.
(root_type): Call root_type_1.
(write_modifier_bytes): Call write_modifier_bytes_1.
(output_type, case POINTER_TYPE): Set TREE_ASM_WRITTEN before
recursive call.

From-SVN: r13693
1997-03-06 13:28:31 -08:00
Jim Wilson
2dfe548059 (complemented_arith_operand): Delete function.
(print_operand): Don't handle `e' for CONST_INT.

From-SVN: r13692
1997-03-05 11:29:31 -08:00
Jim Wilson
9da7b10605 (*norsi3_const, *nordi3_const): Delete bogus patterns.
From-SVN: r13691
1997-03-05 11:24:16 -08:00
Jim Wilson
f39c7aed00 (PREDICATE_CODES): Delete complemented_arith_operand.
From-SVN: r13690
1997-03-05 11:23:15 -08:00
Stan Cox
3345ee7db2 Make sure FUNDECL is non-nil before we try to use it.
From-SVN: r13689
1997-03-04 21:43:13 +00:00
Jim Wilson
b0298aa63f __mips_single_float should have
the same effect on vararg lists as __mips_soft_float.

From-SVN: r13688
1997-03-03 17:16:38 -08:00
Michael Meissner
9e25c9c9ef Remove last change
From-SVN: r13687
1997-03-03 23:13:39 +00:00
Jeff Law
e30fb98f9b combine.c (simplify_rtx): Do nothing with (truncate:mode) if mode is a partial integer mode.
* combine.c (simplify_rtx): Do nothing with (truncate:mode) if
        mode is a partial integer mode.

From-SVN: r13686
1997-03-03 13:12:07 -07:00
Richard Kenner
a52a564cd7 Add definition of __va_copy.
From-SVN: r13685
1997-03-02 17:41:16 -05:00
Richard Kenner
ee2990e780 (process_init_element): Warn and truncate if upper bound of index is
out of range.

From-SVN: r13684
1997-03-02 13:25:40 -05:00
Michael Meissner
f28c0e6987 Prevent compiler error
From-SVN: r13683
1997-02-28 23:01:16 +00:00