Commit Graph

7659 Commits

Author SHA1 Message Date
Kresten Krab Thorup
a39d31bc0c This patch makes selectors in the Objective-C language be pointers to a struct { void *sel_id...
This patch makes selectors in the Objective-C language be pointers
        to a struct { void *sel_id, char *sel_types }, where the sel_types
        element is the type encoding of the method arguments.

From-SVN: r7622
1994-06-30 16:18:55 +00:00
Kresten Krab Thorup
7a1dd32325 (read:, write:, streamVersion:):
Un-disable for alpha.  (forward::, performv::): Declare and fix to
        return retval_t. .

From-SVN: r7621
1994-06-30 16:18:55 +00:00
Kresten Krab Thorup
5d0f30f711 objc-act.c (get_proto_encoding, [...]): New fucnctions.
* objc-act.c (get_proto_encoding, build_typed_selector_reference):
        New fucnctions. (UTAG_PROTOCOL): New define.
        (objc_selector_template, flag_typed_selectors): New variables.
        (objc_init): set flag_typed_selectors if -fgnu-runtime.
        (synth_module_prologue): Change declaration of
        _OBJC_SELECTOR_TABLE when flag_typed_selectors is non-null.
        (build_module_descriptor): Make sure the generated constructor
        function is declared public.
        (build_selector): Only cast to SEL when not doing typed selectors.
        (build_selector_translation_table): Rewrite initialization.
        (build_tmp_function_decl): Make up new name when called, since it
        may now be called multiple times.
        (hack_method_prototype): Use init_function_start to reinit args
        machinery.  Also set current_function_decl before calling
        assign_parms.
        (generate_protocols):  Don't generate encoding twice.
        (build_selector_template): New function.
        (build_method_list_template): Generate (void*)0 as first element,
        not (int)0.
        (build_message_expr): move the call to build_selector_reference
        towards the end, where we have determined the function prototype.

From-SVN: r7620
1994-06-30 16:17:36 +00:00
Richard Earnshaw
bd4d60ce71 (INITIAL_ELIMINATION_OFFSET): Check frame_pointer_needed when eliminating
the arg pointer into the stack pointer.

From-SVN: r7619
1994-06-30 11:48:44 +00:00
Richard Kenner
084b6d7b05 (c_build_type_variant): Remove last change; instead, copy TYPE if not
in old obstack.

From-SVN: r7618
1994-06-30 06:24:28 -04:00
Richard Kenner
14e7bf7c23 (end_final,profile_function): Profiling variables are size of pointer,
not int.

From-SVN: r7617
1994-06-30 05:46:10 -04:00
Jason Merrill
8e1a11fc9e (lang_options): Add -W{no-,}non-virtual-dtor.
From-SVN: r7616
1994-06-30 09:41:26 +00:00
Gerald Baumgartner
63718c49fd some changes from gb.
From-SVN: r7615
1994-06-30 05:35:06 +00:00
Doug Evans
3cf2715de9 Restore to rcs version 1.59 (1.60 is an empty file).
From-SVN: r7614
1994-06-30 03:43:24 +00:00
Mike Stump
6bcc742f2a remove cygnus FSF difference
From-SVN: r7613
1994-06-30 02:03:54 +00:00
Mike Stump
214747148c 42nd Cygnus<->FSF merge
From-SVN: r7612
1994-06-30 01:51:05 +00:00
Richard Kenner
725fc5a08d (basic_induction_var, case REG): Allow previous insn to set a SUBREG
of X.

From-SVN: r7611
1994-06-29 19:21:43 -04:00
Richard Kenner
85d159a36a (LIB_SPEC): If -pg, add -lprof2.
(STARTFILE_SPEC, {FUNCTION,BLOCK,FUNCTION_BLOCK}_PROFILER): New macros.

From-SVN: r7610
1994-06-29 18:59:23 -04:00
Richard Kenner
0d45dc27a1 (end_final,profile_function): Profiling variables are size of pointer,
not int.

From-SVN: r7609
1994-06-29 18:57:34 -04:00
Richard Kenner
018dac8bab Add new pattern for double-add when have reg + frame pointer.
Slight changes to all such patterns and add define_splits for them.

From-SVN: r7608
1994-06-29 16:13:22 -04:00
Richard Kenner
52a6920099 (FRAME_POINTER_REGNUM): Now register 63.
(HARD_FRAME_POINTER_REGNUM): New macro.
(CONDITIONAL_REGISTER_USAGE, REG_CLASS_CONTENTS, REGNO_REG_CLASS):
Show register 63 is not an FP register.
(REGHNO_OK_FOR_BASE_P, REG_OK_FOR_BASE_P, REGISTER_NAMES): Likewise.
(ALPHA_ROUND): New macro.
(STARTING_FRAME_OFFSET, ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET):
Modify to reflect save area between outgoing args and local vars.

From-SVN: r7607
1994-06-29 16:12:40 -04:00
Richard Kenner
d60a05a1c4 (alpha_sa_size): Round size to 16-byte boundary.
(add_long_const): Add new arg, TEMP_REG.
(output_{pro,epi}log): Rework to put save area between outgoing args and
local variables.

From-SVN: r7606
1994-06-29 16:12:03 -04:00
Richard Kenner
9ff3516a35 (reload): Can't eliminate if frame pointer needed and TO is stack pointer.
Spill HARD_FRAME_POINTER_REGNUM if not FRAME_POINTER_REGNUM and frame pointer
is needed.
(spill_hard_reg): If CANT_ELIMINATE, set regs_ever_live; no longer done by
callers.

From-SVN: r7605
1994-06-29 16:02:13 -04:00
Richard Kenner
daf55ac69a (global_alloc): Make a more accurate attempt to see if the frame pointer will be used.
(global_alloc): Make a more accurate attempt to see if the frame pointer will
be used.
If it is, show HARD_FRAME_POINTER_REGNUM used if its not the same as
FRAME_POINTER_REGNUM.

From-SVN: r7604
1994-06-29 16:01:31 -04:00
Richard Kenner
245d26eb97 (movqi): Add missing `DONE'.
From-SVN: r7603
1994-06-29 15:52:27 -04:00
Doug Evans
269d917555 sp64-elf: (PTRDIFF_TYPE): Remove dependence on POINTER_SIZE.
* sparc/sp64-elf: (PTRDIFF_TYPE): Remove dependence on POINTER_SIZE.
	(SIZE_TYPE): Likewise.

From-SVN: r7602
1994-06-29 19:44:07 +00:00
Doug Evans
857458c409 sparc.h (CPP_SPEC): Split up v9/non-v9 stuff.
* sparc/sparc.h	(CPP_SPEC): Split up v9/non-v9 stuff.
	Move -Acpu and -Amachine from here.
	(CPP_PREDEFINES): To here.
	(NO_BUILTIN_PTRDIFF_TYPE): Undefine.
	(NO_BUILTIN_SIZE_TYPE): Likewise.
	(PTRDIFF_TYPE): Split up v9/non-v9 definitions.
	(SIZE_TYPE): Likewise.

From-SVN: r7601
1994-06-29 19:43:25 +00:00
Michael Meissner
d52a896594 Always put 1 space after the macro expansion in ANSI mode.
From-SVN: r7600
1994-06-29 19:25:41 +00:00
Doug Evans
094030c93f (simplify_set): Evaluate HAVE_conditional_move at runtime.
From-SVN: r7599
1994-06-29 02:41:26 +00:00
Torbjorn Granlund
55c2d311c4 (expand_mult): Generalize to call synth_mult also for OP1 - 1.
(ceil_log2): New function.
(choose_multiplier): New function.
(invert_mod2n): New function.
(expand_mult_highpart_adjust): New function.
(expand_mult_highpart): New function.
(EXACT_POWER_OF_2_OR_ZERO_P): New macro.
(expand_divmod): Almost completely rewritten.
(expand_shift): Don't truncate immediate shift count, it doesn't work
for types smaller than int.

From-SVN: r7598
1994-06-29 00:23:02 +00:00
Torbjorn Granlund
f02d60632f (smul_highpart_optab, umul_highpart_optab): New variables.
From-SVN: r7597
1994-06-29 00:22:36 +00:00
Torbjorn Granlund
af30900458 (optabs): Add [us]mul_highpart_optab.
From-SVN: r7596
1994-06-29 00:22:13 +00:00
Torbjorn Granlund
5035bbfe58 (smul_highpart_optab, umul_highpart_optab): New variables.
(expand_binop): Handle [us]mul_highpart_optab as commutative.
(init_optabs): Initialize [us]mul_highpart_optab.
(expand_binop): Convert OP0 to mode for library calls.

From-SVN: r7595
1994-06-29 00:21:32 +00:00
Torbjorn Granlund
dbb5b3cec9 (div_and_round_double): Make it globally accessible.
From-SVN: r7594
1994-06-29 00:20:58 +00:00
Torbjorn Granlund
ca300626e0 (umulsi3_highpart, const_umulsi3_highpart): New expander and matcher.
(smulsi3_highpart, const_smulsi3_highpart): Likewise.

From-SVN: r7593
1994-06-29 00:19:52 +00:00
Torbjorn Granlund
74a6106962 (umuldi3_highpart): New expander and matcher.
From-SVN: r7592
1994-06-29 00:19:15 +00:00
Torbjorn Granlund
14edc0e4d3 (cint8_operand): New predicate.
From-SVN: r7591
1994-06-29 00:18:43 +00:00
Torbjorn Granlund
8abf4d694f (smulsi3_highpart, umulsi3_highpart): New patterns.
From-SVN: r7590
1994-06-29 00:18:12 +00:00
Jim Wilson
47c95f5005 (CPP_SPEC): Handle -msupersparc.
From-SVN: r7589
1994-06-28 12:33:59 -07:00
Jim Wilson
dbb5486265 (cpu_type, sparc_cpu_type): Rename to arch_type and sparc_arch_type.
(cpu_type, sparc_cpu_type): Rename to arch_type and
sparc_arch_type.  Fix all users.
(supersparc_adjust_cost): New function.

From-SVN: r7588
1994-06-28 12:33:23 -07:00
Jim Wilson
bef8d8c781 (cpu_type, sparc_cpu_type): Rename to arch_type and sparc_arch_type.
(cpu_type, sparc_cpu_type): Rename to arch_type and
sparc_arch_type.
(CPP_SPEC): Handle -msupersparc.
(MASK_SUPERSPARC, TARGET_SUPERSPARC): New macros.
(TARGET_SWITCHES): Add -msupersparc and -mcypress.
(ADJUST_COST): New macro.

From-SVN: r7587
1994-06-28 12:32:11 -07:00
Jim Wilson
c180bd1ee8 (cpu attribute): Rename to arch attribute.
(cpu attribute): Rename to arch attribute.  Add a new
cpu attribute.  Fix all users.
(type attribute): Add ialu, shift, imul, fpdivs, and fpdivd.
Delete fpdiv.
(function units): Add Cypress and Supersparc versions of each.
(addsi3, subsi3, andsi3, iorsi3, xorsi3): Add ialu type attribute.
(mulsi3): Add imul type attribute.
(divtf3, divdf3): Use fpdivd not fpdiv type attribute.
(divsf3); Use fpdivs not fpdiv type attribute.
(ashlsi3, ashrsi3, lshrsi3): Add shift type attribute.

From-SVN: r7586
1994-06-28 12:31:14 -07:00
Jim Wilson
3c9b213099 (andsi3+6): Replace bad clrbit pattern with two working ones.
From-SVN: r7585
1994-06-28 10:41:52 -07:00
Richard Kenner
3bbbf89c84 Initial revision
From-SVN: r7584
1994-06-28 13:31:04 -04:00
Jeff Law
bd1fd7fbda pa.md (define_split for (plus (reg) (large_constant))): Treat large_constant as signed.
* pa.md (define_split for (plus (reg) (large_constant))): Treat
	large_constant as signed.

From-SVN: r7583
1994-06-28 10:42:26 -06:00
Richard Kenner
774672d2a2 (eliminate_regs_in_insn): When checking for moves and adds, use
single_set.

From-SVN: r7582
1994-06-28 06:02:05 -04:00
Richard Kenner
adab4fc503 (reloads_conflict): Handle R1_TYPE of RELOAD_OTHER.
From-SVN: r7581
1994-06-28 05:49:31 -04:00
Richard Kenner
2f6e6d22ea (do_jump, case BIT_AND_EXPR): Only narrow to a type that corresponds
to a mode.

From-SVN: r7580
1994-06-28 05:44:57 -04:00
Richard Kenner
127b0efcf7 Include ctype.h.
From-SVN: r7579
1994-06-28 05:35:22 -04:00
Richard Kenner
85fff2f3a0 (movsf): Emit frsp if storing to memory and not PowerPC.
(movsf matcher): Remove explicit frsp.
(store sf with update): Likewise.

From-SVN: r7578
1994-06-28 05:34:30 -04:00
Richard Kenner
ab4a5fc941 (MEMORY_MOVE_COST): Make processor-dependent.
From-SVN: r7577
1994-06-28 05:33:48 -04:00
Richard Kenner
bfbc641633 Treat HFmode like SFmode, for now.
From-SVN: r7576
1994-06-28 05:15:25 -04:00
Richard Kenner
cb5b00cfa1 (expand_binop, multi-words shifts and rotates): Fix errors in last
change.

From-SVN: r7575
1994-06-27 19:16:01 -04:00
Richard Earnshaw
dfaa6d72a3 (function_unit fpa): Add more accurate scheduling information.
(all floating point patterns): Add more accurate instruction type information.

From-SVN: r7574
1994-06-27 15:24:36 +00:00
Richard Earnshaw
bee06f3d82 include "expr.h".
(arm_fpu): New variable.
(arm_gen_movstrqi): Fix typo.

From-SVN: r7573
1994-06-27 15:24:36 +00:00