From: James Van Artsdalen Date: Tue, 16 Mar 1993 09:54:12 +0000 (+0000) Subject: (FIXED_REGNO_P): Pseudos can't be fixed regs. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9798977501cfeda200514277bec653ec57259c97;p=gcc.git (FIXED_REGNO_P): Pseudos can't be fixed regs. From-SVN: r3757 --- diff --git a/gcc/cse.c b/gcc/cse.c index d170046d100..f328ef8a9f2 100644 --- a/gcc/cse.c +++ b/gcc/cse.c @@ -438,11 +438,13 @@ struct table_elt but not if it is an overlapping register. */ #ifdef OVERLAPPING_REGNO_P #define FIXED_REGNO_P(N) \ - (((N) == FRAME_POINTER_REGNUM || fixed_regs[N]) \ + (((N) == FRAME_POINTER_REGNUM \ + || ((N) < FIRST_PSEUDO_REGISTER && fixed_regs[N])) \ && ! OVERLAPPING_REGNO_P ((N))) #else #define FIXED_REGNO_P(N) \ - ((N) == FRAME_POINTER_REGNUM || fixed_regs[N]) + ((N) == FRAME_POINTER_REGNUM \ + || ((N) < FIRST_PSEUDO_REGISTER && fixed_regs[N])) #endif /* Compute cost of X, as stored in the `cost' field of a table_elt. Fixed @@ -4472,9 +4474,11 @@ simplify_ternary_operation (code, mode, op0_mode, op0, op1, op2) Otherwise, return X, possibly with one or more operands modified by recursive calls to this function. - If X is a register whose contents are known, we do NOT - return those contents. This is because an instruction that - uses a register is usually faster than one that uses a constant. + If X is a register whose contents are known, we may or may not + return those contents. An instruction that uses a register is usually + faster than one that uses a constant. But on machines with few hard + regs, using a register instead of a constant increases register life, + hurting register allocation. INSN is the insn that we may be modifying. If it is 0, make a copy of X before modifying it. */