diff options
author | YamaArashi <shadow962@live.com> | 2016-02-14 18:43:19 -0800 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-02-14 18:43:19 -0800 |
commit | 7aeb8da2138f7521a78d377343b3a266e1e6f9d6 (patch) | |
tree | 8d1f73d3b850609a2152ce86719c68177558aef9 /gcc/reload1.c | |
parent | 9e217b935f6df9afa8e8fbad9c5c6401b879e54a (diff) |
remove delay slot and stack reg code
Diffstat (limited to 'gcc/reload1.c')
-rwxr-xr-x | gcc/reload1.c | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c index 8cf24a7..e8af2a2 100755 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -1218,108 +1218,6 @@ reload (first, global, dumpfile) static void maybe_fix_stack_asms () { -#ifdef STACK_REGS - char *constraints[MAX_RECOG_OPERANDS]; - enum machine_mode operand_mode[MAX_RECOG_OPERANDS]; - struct insn_chain *chain; - - for (chain = reload_insn_chain; chain != 0; chain = chain->next) - { - int i, noperands; - HARD_REG_SET clobbered, allowed; - rtx pat; - - if (GET_RTX_CLASS (GET_CODE (chain->insn)) != 'i' - || (noperands = asm_noperands (PATTERN (chain->insn))) < 0) - continue; - pat = PATTERN (chain->insn); - if (GET_CODE (pat) != PARALLEL) - continue; - - CLEAR_HARD_REG_SET (clobbered); - CLEAR_HARD_REG_SET (allowed); - - /* First, make a mask of all stack regs that are clobbered. */ - for (i = 0; i < XVECLEN (pat, 0); i++) - { - rtx t = XVECEXP (pat, 0, i); - if (GET_CODE (t) == CLOBBER && STACK_REG_P (XEXP (t, 0))) - SET_HARD_REG_BIT (clobbered, REGNO (XEXP (t, 0))); - } - - /* Get the operand values and constraints out of the insn. */ - decode_asm_operands (pat, recog_operand, recog_operand_loc, - constraints, operand_mode); - - /* For every operand, see what registers are allowed. */ - for (i = 0; i < noperands; i++) - { - char *p = constraints[i]; - /* For every alternative, we compute the class of registers allowed - for reloading in CLS, and merge its contents into the reg set - ALLOWED. */ - int cls = (int) NO_REGS; - - for (;;) - { - char c = *p++; - - if (c == '\0' || c == ',' || c == '#') - { - /* End of one alternative - mark the regs in the current - class, and reset the class. */ - IOR_HARD_REG_SET (allowed, reg_class_contents[cls]); - cls = NO_REGS; - if (c == '#') - do { - c = *p++; - } while (c != '\0' && c != ','); - if (c == '\0') - break; - continue; - } - - switch (c) - { - case '=': case '+': case '*': case '%': case '?': case '!': - case '0': case '1': case '2': case '3': case '4': case 'm': - case '<': case '>': case 'V': case 'o': case '&': case 'E': - case 'F': case 's': case 'i': case 'n': case 'X': case 'I': - case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': - case 'P': -#ifdef EXTRA_CONSTRAINT - case 'Q': case 'R': case 'S': case 'T': case 'U': -#endif - break; - - case 'p': - cls = (int) reg_class_subunion[cls][(int) BASE_REG_CLASS]; - break; - - case 'g': - case 'r': - cls = (int) reg_class_subunion[cls][(int) GENERAL_REGS]; - break; - - default: - cls = (int) reg_class_subunion[cls][(int) REG_CLASS_FROM_LETTER (c)]; - - } - } - } - /* Those of the registers which are clobbered, but allowed by the - constraints, must be usable as reload registers. So clear them - out of the life information. */ - AND_HARD_REG_SET (allowed, clobbered); - for (i = 0; i < FIRST_PSEUDO_REGISTER; i++) - if (TEST_HARD_REG_BIT (allowed, i)) - { - CLEAR_REGNO_REG_SET (chain->live_before, i); - CLEAR_REGNO_REG_SET (chain->live_after, i); - } - } - -#endif } @@ -8693,16 +8591,6 @@ reload_cse_regs_1 (first) continue; } -#ifdef NON_SAVING_SETJMP - if (NON_SAVING_SETJMP && GET_CODE (insn) == NOTE - && NOTE_LINE_NUMBER (insn) == NOTE_INSN_SETJMP) - { - for (i = 0; i < FIRST_PSEUDO_REGISTER; i++) - reg_values[i] = 0; - - continue; - } -#endif if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') continue; |