summaryrefslogtreecommitdiff
path: root/gcc/final.c
diff options
context:
space:
mode:
authorcrux <crux@138bc75d-0d04-0410-961f-82ee72b054a4>1998-12-04 12:55:59 +0000
committercrux <crux@138bc75d-0d04-0410-961f-82ee72b054a4>1998-12-04 12:55:59 +0000
commit78e49515f67a3b85292ce00180eade5e0d53aef7 (patch)
tree7eac8b63b458dd5da67b48a5a4d8ca0d0304223f /gcc/final.c
parentbd22b1ba93be98421ce88247a143c8027983664a (diff)
downloadgcc-78e49515f67a3b85292ce00180eade5e0d53aef7.tar.gz
* final.c (cleanup_subreg_operands): Delete some unused code.
* recog.h (MAX_RECOG_ALTERNATIVES): New macro. (struct insn_alternative): New structure definition. (recog_op_alt): Declare variable. (preprocess_constraints): Declare function. * recog.c (recog_op_alt): New variable. (extract_insn): Verify number of alternatives is in range. (preprocess_constraints): New function. * reg-stack.c: Include recog.h. (constrain_asm_operands): Delete. (get_asm_operand_lengths): Delete. (get_asm_operand_n_inputs): New function. (record_asm_reg_life): Delete OPERANDS, CONSTRAINTS, N_INPUTS and N_OUTPUTS args. All callers changed. Compute number of inputs and outputs here by calling get_asm_operand_n_inputs. Instead of constrain_asm_operands, call extract_insn, constrain_operands and preprocess_constaints. Use information computed by these functions throughout. (record_reg_life): Delete code that is unused due to changes in record_asm_reg_life. (subst_asm_stack_regs): Delete OPERANDS, OPERAND_LOC, CONSTRAINTS, N_INPUTS and N_OUTPUTS args. All callers changed. Similar changes as in record_asm_reg_life. (subst_stack_regs): Move n_operands declaration into the if statement where it's used. Delete code that is unused due to changes in subst_asm_stack_regs. * stmt.c (expand_asm_operands): Verify number of alternatives is in range. * Makefile.in (reg-stack.o): Depend on recog.h. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@24090 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/final.c')
-rw-r--r--gcc/final.c17
1 files changed, 1 insertions, 16 deletions
diff --git a/gcc/final.c b/gcc/final.c
index 5bcfd6bd4ca..32ed6fbf9f2 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -3031,23 +3031,8 @@ void
cleanup_subreg_operands (insn)
rtx insn;
{
- int insn_code_number, i;
-
- /* Ignore things we can not handle. */
- if (GET_RTX_CLASS (GET_CODE (insn)) != 'i'
- || GET_CODE (PATTERN (insn)) == USE
- || GET_CODE (PATTERN (insn)) == ADDR_VEC
- || GET_CODE (PATTERN (insn)) == ADDR_DIFF_VEC
- || GET_CODE (PATTERN (insn)) == ASM_INPUT
- || asm_noperands (PATTERN (insn)) >= 0)
- return;
-
- /* Try to recognize the instruction.
- If successful, verify that the operands satisfy the
- constraints for the instruction. Crash if they don't,
- since `reload' should have changed them so that they do. */
+ int i;
- insn_code_number = recog_memoized (insn);
extract_insn (insn);
for (i = 0; i < recog_n_operands; i++)
{