Commit Graph

108 Commits

Author SHA1 Message Date
Richard Kenner
6d85f32be4 Update header.
From-SVN: r9986
1995-06-15 16:50:31 -04:00
Richard Kenner
c15c907559 Change FSF address.
From-SVN: r9984
1995-06-15 16:46:00 -04:00
Richard Kenner
97aadbb900 Update FSF address.
From-SVN: r9975
1995-06-15 09:57:32 -04:00
Richard Kenner
8fb289e773 Update FSF address.
From-SVN: r9974
1995-06-15 09:17:10 -04:00
Richard Kenner
68450062d9 (mov[sd]f expands): Don't allow fp constants in pseudos when
TARGET_SOFT_FLOAT.

From-SVN: r9910
1995-06-08 19:15:59 -04:00
Richard Kenner
ddd5a7c180 Fix typos in comments.
From-SVN: r9711
1995-05-16 08:14:26 -04:00
Richard Earnshaw
7a830785f4 Initial revision
From-SVN: r9672
1995-05-13 09:35:22 +00:00
Doug Evans
e7c3cc847f (movsicc): New pattern.
(movsfcc, movdfcc, *movsicc_insn, *movsfcc_hard_insn): Likewise.
(*movsfcc_soft_insn, movdfcc_insn): Likewise.
(*movdf_soft_insn): Rewrite.

From-SVN: r9653
1995-05-12 18:25:51 +00:00
Doug Evans
f313930195 Replace ARM_REG_PREFIX with REGISTER_PREFIX.
Replace ARM_COMMENT_CHAR with ASM_COMMENT_START.
(arm_asm_output_label): Use USER_LABEL_PREFIX.
(soft_df_operand): New function.

From-SVN: r9652
1995-05-12 18:24:51 +00:00
Doug Evans
c383667d4f Replace ARM_REG_PREFIX with REGISTER_PREFIX.
Replace ARM_COMMENT_CHAR with ASM_COMMENT_START.
(REGISTER_PREFIX): Define.
(USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX): Define.
(SECONDARY_OUTPUT_RELOAD_CLASS): Handle DFmodes only if TARGET_HARD_FLOAT.
(PREDICATE_CODES): Add soft_df_operand.

From-SVN: r9651
1995-05-12 18:23:56 +00:00
Doug Evans
efc526c19d (movsi matcher): Fix typo in type attribute.
From-SVN: r9649
1995-05-12 17:34:39 +00:00
Doug Evans
454e024967 Initial revision
From-SVN: r9645
1995-05-12 16:30:52 +00:00
Doug Evans
e82ea128f9 (arm_volatile_func): Install the government approved version of the comment.
From-SVN: r9181
1995-03-14 18:35:45 +00:00
Doug Evans
a0b2ce4ce9 (arm_volatile_func): Add comment describing purpose.
From-SVN: r9180
1995-03-14 17:53:10 +00:00
Doug Evans
31c97f6a22 Update copyright.
From-SVN: r9163
1995-03-10 19:11:08 +00:00
Doug Evans
39c0ef95f7 arm.md (all fp patterns): Conditionalize on TARGET_HARD_FLOAT.
* arm/arm.md (all fp patterns): Conditionalize on TARGET_HARD_FLOAT.
	(*movsf_soft_insn, *movdf_soft_insn): New patterns.

From-SVN: r9162
1995-03-10 19:08:50 +00:00
Doug Evans
3ada8e173a (SUBTARGET_SWITCHES): Renamed from ARM_EXTRA_TARGET_SWITCHES.
(TARGET_HARD_FLOAT, TARGET_SOFT_FLOAT): Define.
(TARGET_SWITCHES): Add -msoft-float, -mhard-float.
(BYTES_BIG_ENDIAN): Delete #ifndef/#endif.
(CONDITIONAL_REGISTER_USAGE): If -msoft-float, disable fp regs.
(FUNCTION_VALUE): R16 is return reg only if !-msoft-float.
(LIBCALL_VALUE): Likewise.

From-SVN: r9161
1995-03-10 19:08:13 +00:00
Doug Evans
41b455df14 riscix.h (SUBTARGET_SWITCHES): Renamed from ARM_EXTRA_TARGET_SWITCHES.
* arm/riscix.h (SUBTARGET_SWITCHES): Renamed from ARM_EXTRA_TARGET_SWITCHES.
* arm/riscix1-1.h (SUBTARGET_SWITCHES): Likewise.

From-SVN: r9159
1995-03-10 19:03:43 +00:00
Richard Kenner
8b109b37fc Added arg to RETURN_POPS_ARGS.
From-SVN: r8999
1995-02-21 18:21:14 -05:00
Richard Earnshaw
c5c4723a41 (peepholes for call followed by branch): Disable.
From-SVN: r8335
1994-10-24 10:13:12 +00:00
Richard Earnshaw
43fd2cce9a (INSTALL): Invoke install.sh with -c flag
From-SVN: r8334
1994-10-23 12:54:15 +00:00
Richard Earnshaw
ca628c540b Initial revision
From-SVN: r8270
1994-10-14 14:35:17 +00:00
Richard Earnshaw
6cda9f97bc Define HAVE_GETWD
From-SVN: r8269
1994-10-14 14:33:55 +00:00
Richard Earnshaw
660f1419f4 (reload_outdf): Don't emit an add insn if the address is just a register.
From-SVN: r8244
1994-10-09 16:39:43 +00:00
Richard Earnshaw
988337ca70 (zero_extendhisi2, extendhisi2): Expand to suitable byte sequence when TARGET_SHORT_BYTES and loading a mem.
(zero_extendhisi2, extendhisi2): Expand to suitable byte sequence when
TARGET_SHORT_BYTES and loading a mem.
(movhi_bytes, extendhisi2_mem): New expands.
(movhi): Call movhi_bytes to load a short from memory if
TARGET_SHORT_BY_BYTES.
(all matchers loading a short from memory): Don't match if
TARGET_SHORT_BY_BYTES.
(matcher for movhi when TARGET_SHORT_BY_BYTES): New pattern to cover
remaining legal cases.

From-SVN: r8202
1994-10-02 15:11:02 +00:00
Richard Earnshaw
0a81f50004 (arm_reload_in_hi): New function.
From-SVN: r8201
1994-10-02 15:10:48 +00:00
Richard Earnshaw
2ce9c1b9e1 (TARGET_SHORT_BY_BYTES): New macro.
(TARGET_SWITCHES): Recognize switches -m[no-]short-load-bytes.
(TARGET_DEFAULT): Only define if not already done so.
(PROMOTE_MODE): Promote HImode unsigned if TARGET_SHORT_BY_BYTES.
(SECONDARY_INPUT_RELOAD_CLASS): Need a scratch for reloading HImode if
TARGET_SHORT_BY_BYTES.

From-SVN: r8200
1994-10-02 15:10:27 +00:00
Richard Earnshaw
0b9d35ddc1 (movsf): If reloading, create a scratch from the target for loading a constant into integer regs.
(movsf): If reloading, create a scratch from the target for loading a
constant into integer regs.
(movdf): Likewise..

From-SVN: r8199
1994-10-02 14:25:07 +00:00
Richard Earnshaw
1f8197a899 ({save,restore}_stack_nonlocal): Delete.
From-SVN: r7754
1994-07-13 01:07:30 +00:00
Richard Earnshaw
688743e794 (FRAME_POINTER_REQUIRED): Always true if the function has a nonlocal
label.

From-SVN: r7753
1994-07-13 01:06:31 +00:00
Richard Earnshaw
cce4322b7f (matcher for SFmode inequality comparison): Use cmfe, not cfm.
(matchers for {store-flag, not-store-flag, neg-store-flag}): Output
if-false instruction first before if-true instruction.
(matcher for (AND store-flag x)): Only match if reversible_cc_register.
(matcher for (IF-THEN-ELSE reg (NOT reg))): Likewise.

From-SVN: r7741
1994-07-12 13:33:12 +00:00
Richard Earnshaw
31e6408aee (PREDICATE_CODES): Add reversible_cc_register.
From-SVN: r7740
1994-07-12 13:31:10 +00:00
Richard Earnshaw
5bbe2d409c (reversible_cc_register): New function.
(final_prescan_insn): Don't try to conditionalize jumps with JUMP_CLOB
attribute.

From-SVN: r7739
1994-07-12 13:31:10 +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 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
Richard Earnshaw
4a1934977f (STARTFILE_SPEC,SIZE_TYPE,PTRDIFF_TYPE): Fix typos.
(ASM_FINAL_SPEC): Only reject -mbsd and -mxopen when -pedantic.

From-SVN: r7572
1994-06-27 15:24:36 +00:00
Richard Earnshaw
24f0c1b4cc (enum floating_point_type): New enumeration type.
(arm_fpu): New declaration.

From-SVN: r7571
1994-06-27 15:24:36 +00:00
Richard Earnshaw
0bdece8adf (movstrsi): Delete.
(movstrqi): New expand.

From-SVN: r7559
1994-06-24 19:51:26 +00:00
Richard Earnshaw
880e25163f (arm_gen_movstrqi): New function.
From-SVN: r7558
1994-06-24 19:51:26 +00:00
Richard Earnshaw
e2c671bad7 include tree.h
include tree.h
(const_ok_for_arm): Add fast return for 0 or just a single non-zero bit.
(const_ok_for_op): New function.
(arm_split_constant): New function.
(arm_rtx_costs): New function.
(reg_or_int_operand): New function.
(shift_operator): Accept ROTATERT.
(multi_register_push): New function.
(shift_op): Don't abort if a constant is outside the acceptable range, but
convert the whole shift expression into something legal.  If the shift is
zero, then return NULL.
(output_return_instruction): Output a call to abort if the function is
volatile.
(arm_volatile_func): New function.
(get_prologue_size): Remove all adjustments for insns that are now output as
rtx.
(output_func_prologue): Remove all code that outputs instructions, just print
a few comments.
(output_func_epilogue): Output a call to abort if a volatile function tries
to return.
(emit_multi_reg_push): New function.
(arm_expand_prologue): New function.  Don't bother to push call-saved regs
if we will never return.
(arm_print_operand, case 'S'): If shift_op returns NULL, then no shift is
required.

From-SVN: r7537
1994-06-23 16:02:41 +00:00
Richard Earnshaw
3967692c7e (TARGET_WHEN_DEBUGGING): Delete.
(MODES_TIEABLE_P): All modes of the same class are tieable.
(CONST_OK_FOR_LETTER_P): Add 'M' for constants valid in a shift.
(FUNCTION_PROFILER): Don't call arm_increase_location.
(INITIAL_ELIMINATION_OFFSET): Call saved regs are no-longer pushed for
functions that don't return.
(LEGITIMIZE_ADDRESS): Push constants that will never be legitimate -- symbols
and labels -- into registers.  Handle DImode better.
(DEFAULT_SIGNED_CHAR): Use unsigned unless already defined.
(RTX_COSTS): Call arm_rtx_costs.
(ADDRESS_COST): Since most operations have the same rtx cost, make the
more complex addresses cheaper.
(PREDICATE_CODES): Add ROTATERT to shift_operator; and new predicates for
reg_or_int_operand and multi_register_push.
(DBX_CONTIN_LENGTH): Only define if not already done.
(PRINT_OPERAND_ADDRESS): Let arm_print operand output the ", " for shifts.

From-SVN: r7536
1994-06-23 16:02:41 +00:00
Richard Earnshaw
e8da7c0237 Delete some dead code.
(STARTFILE_SPEC): Look in the correct places for start files.
(LIB_SPEC): Define.
(LINK_SPEC): Define.
(TARGET_WHEN_DEBUGGING): Delete.
(DEFAULT_SIGNED_CHAR): Set to unsigned.
(SIZE_TYPE, PTRDIFF_TYPE, TARGET_EDOM): Define.

From-SVN: r7535
1994-06-23 16:02:41 +00:00
Richard Earnshaw
7ea544d4ce (DBX_CONTIN_LENGTH): Set to 80.
(DEFAULT_GDB_EXTENSIONS, DBX_NO_XREFS): Don't try to pander to dbx, it is just
to broken to use.

From-SVN: r7534
1994-06-23 16:02:41 +00:00
Richard Earnshaw
091426d3f9 (addsi3, subsi3, andsi3, iorsi3, ashlsi3, ashrsi3, lshrsi3, rotrsi3):
Rewrite as expand patterns.
(rotlsi3): New expand.
(matchers, and split patterns for above): New.
(all patterns with shifts): Let arm_print_operand output the ", " before a
shift if it is needed.
(zero_extendqihi2): Delete.
(zero_extendqisi2): Expand to (and ...) if not memory.
(movsi): Call arm_split_constant to generate a constant.
(movqi): Only force a MEM into a register if not reloading.
(movsf, movdf): If loading a non-immediate floating point value, or loading
and floating point immediate into integer regs, push the constant straight
into the pool.
(movdf): Get rid of the scratch register.
(reload_outdf): Rewrite to expand to the two required insns.
(matcher for movdf): Remove alternative that used scratch register for
storing.
(movxf): rewrite as expand.
(matcher for movxf): Recognize even when XFmode code is disabled, so that
prologue insns can be generated.
(Matcher for reversed conditional jump): Don't match if the mode of the
CC register is not reversible.
(prologue): New expand.
(matcher for multi_register_push insn): New.

From-SVN: r7533
1994-06-23 16:02:41 +00:00
Richard Earnshaw
b5cc037f4b (arm_reload_out_hi): Rewrite.
(arm_reload_out_hi): Rewrite.  Add support for processors running in
big-endian mode.
(fp_immediate_constant): Fix typo in argument declaration.

From-SVN: r7449
1994-06-06 13:14:03 +00:00
Richard Earnshaw
fe241a29e3 (storehi_bigend): New expansion pattern.
(storeinthi): Rework to generate better code, add big-endian support.
(movhi): Add support for processors running in big-endian mode.
(movhi_bigend): New expansion pattern.
(matcher for movhi): Remove incorrect alternative for storing HImode to
memory.  Only match when little endian.
(matcher for big-endian movhi): New pattern.
(matchers/peepholes for extended pre/post increment HImode loads): Only
match when little-endian.
(matcher for operating on adjacent memory locations): Load operation into
arith operands.
(peepholes for extended pre-increment byte loads): New patterns.

From-SVN: r7448
1994-06-06 13:14:03 +00:00
Richard Earnshaw
9c8728721e (PROMOTE_MODE): Promote HImode integers as signed.
(BYTES_BIG_ENDIAN): Allow target description to override default.
(LOAD_EXTEND_OP): When big-endian, HImode loads are sign extended.

From-SVN: r7447
1994-06-06 13:14:03 +00:00
Richard Earnshaw
4eda77ec3e (FUNCTION_PROFILER): Delete duplicate definition.
(FUNCTION_PROFILER, TRAMPOLINE_TEMPLATE, ASM_FILE_START,
 ASM_OUTPUT_REG_{PUSH,POP}, PRINT_OPERAND_ADDRESS):  Output register
 prefix before any explicit register name.
(ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT,
 ASM_OUTPUT_COMMON): Output the target dependent comment char.
(ASM_FILE_START): Output register alias for r10.
(REGISTER_NAMES): Output "r9" now for r9, not "rfp".
(ADDITIONAL_REGISTER_NAMES): New macro.

From-SVN: r7444
1994-06-04 11:17:23 +00:00
Richard Earnshaw
916cc8c5aa (all patterns explicitly mentioning regs): Output the target dependent prefix before the register name.
(all patterns explicitly mentioning regs): Output the target dependent
prefix before the register name.
(all patterns with asm comments): Output the target dependent comment
character.

From-SVN: r7443
1994-06-04 11:17:23 +00:00