diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1992-06-22 06:43:55 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1992-06-22 06:43:55 -0400 |
commit | 740ab4a2a56cb1e1d48a31e7926f3c466f0dac5f (patch) | |
tree | d0951264177735aac4dc97e93acd800fc3aef5fb /gcc | |
parent | e8a8bc249697d3c0d290b3926ab9c1aea89fd17c (diff) | |
download | gcc-740ab4a2a56cb1e1d48a31e7926f3c466f0dac5f.zip gcc-740ab4a2a56cb1e1d48a31e7926f3c466f0dac5f.tar.gz gcc-740ab4a2a56cb1e1d48a31e7926f3c466f0dac5f.tar.bz2 |
*** empty log message ***
From-SVN: r1235
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 8 | ||||
-rw-r--r-- | gcc/emit-rtl.c | 11 |
2 files changed, 15 insertions, 4 deletions
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index abbdf5b..b3ffcbc 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -535,13 +535,13 @@ (plus:DI (lshift:DI (zero_extend:DI (match_operand:SI 1 "gpc_reg_operand" "r")) (const_int 32)) - (zero_extend:DI (match_operand:SI 2 "register_operand" "*q"))) + (zero_extend:DI (match_operand:SI 4 "register_operand" "0"))) (match_operand:SI 3 "gpc_reg_operand" "r"))) - (set (match_operand:SI 4 "register_operand" "=*q") + (set (match_operand:SI 2 "register_operand" "=*q") (umod:SI (plus:DI (lshift:DI (zero_extend:DI (match_dup 1)) (const_int 32)) - (zero_extend:DI (match_dup 2))) + (zero_extend:DI (match_dup 4))) (match_dup 3)))] "" @@ -4532,7 +4532,7 @@ (define_insn "" [(set (pc) - (match_operand:SI 0 "register_operand" "c,r")) + (match_operand:SI 0 "register_operand" "c,l")) (use (label_ref (match_operand 1 "" "")))] "" "@ diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 95f276f..db9e087 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -2670,6 +2670,17 @@ init_emit () regno_reg_rtx[VIRTUAL_STACK_VARS_REGNUM] = virtual_stack_vars_rtx; regno_reg_rtx[VIRTUAL_STACK_DYNAMIC_REGNUM] = virtual_stack_dynamic_rtx; regno_reg_rtx[VIRTUAL_OUTGOING_ARGS_REGNUM] = virtual_outgoing_args_rtx; + + /* Indicate that the virtual registers and stack locations are + all pointers. */ + REGNO_POINTER_FLAG (STACK_POINTER_REGNUM) = 1; + REGNO_POINTER_FLAG (FRAME_POINTER_REGNUM) = 1; + REGNO_POINTER_FLAG (ARG_POINTER_REGNUM) = 1; + + REGNO_POINTER_FLAG (VIRTUAL_INCOMING_ARGS_REGNUM) = 1; + REGNO_POINTER_FLAG (VIRTUAL_STACK_VARS_REGNUM) = 1; + REGNO_POINTER_FLAG (VIRTUAL_STACK_DYNAMIC_REGNUM) = 1; + REGNO_POINTER_FLAG (VIRTUAL_OUTGOING_ARGS_REGNUM) = 1; } /* Create some permanent unique rtl objects shared between all functions. |