diff options
author | Jeff Law <law@gcc.gnu.org> | 1993-08-18 10:34:05 -0600 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1993-08-18 10:34:05 -0600 |
commit | 9d53c942648faa593c459b137142338e9864dc53 (patch) | |
tree | 1dec2a7ba87c7eaa4ed07ffbef8a1423a09a00fa /gcc | |
parent | 42e86f852419d133985c781ffeba49e68d16f911 (diff) | |
download | gcc-9d53c942648faa593c459b137142338e9864dc53.zip gcc-9d53c942648faa593c459b137142338e9864dc53.tar.gz gcc-9d53c942648faa593c459b137142338e9864dc53.tar.bz2 |
pa.md (movdf insn): Distinguish between offsettable and nonoffsettable memory locations when...
* pa.md (movdf insn): Distinguish between offsettable and
nonoffsettable memory locations when loading/storing a GR.
(movdi insn): Likewise. Loading a DImode constant can take
as many os 4 insns.
From-SVN: r5182
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/pa/pa.md | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md index ea9137e..732ec4e 100644 --- a/gcc/config/pa/pa.md +++ b/gcc/config/pa/pa.md @@ -1355,9 +1355,9 @@ (define_insn "" [(set (match_operand:DF 0 "reg_or_nonsymb_mem_operand" - "=fx,*r,Q,?Q,fx,*&r") + "=fx,*r,Q,?o,?Q,fx,*&r,*&r") (match_operand:DF 1 "reg_or_0_or_nonsymb_mem_operand" - "fxG,*rG,fx,*r,Q,Q"))] + "fxG,*rG,fx,*r,*r,Q,o,Q"))] "register_operand (operands[0], DFmode) || reg_or_0_operand (operands[1], DFmode)" "* @@ -1367,8 +1367,8 @@ return output_fp_move_double (operands); return output_move_double (operands); }" - [(set_attr "type" "fpalu,move,fpstore,store,fpload,load") - (set_attr "length" "4,8,4,8,4,8")]) + [(set_attr "type" "fpalu,move,fpstore,store,store,fpload,load,load") + (set_attr "length" "4,8,4,8,16,4,8,16")]) (define_insn "" [(set (match_operand:DF 0 "register_operand" "=fx") @@ -1472,9 +1472,9 @@ (define_insn "" [(set (match_operand:DI 0 "reg_or_nonsymb_mem_operand" - "=r,Q,&r,&r,x,x,*T") + "=r,o,Q,&r,&r,&r,x,x,*T") (match_operand:DI 1 "general_operand" - "rM,r,Q,i,xM,*T,x"))] + "rM,r,r,o,Q,i,xM,*T,x"))] "register_operand (operands[0], DImode) || reg_or_0_operand (operands[1], DImode)" "* @@ -1484,8 +1484,8 @@ return output_fp_move_double (operands); return output_move_double (operands); }" - [(set_attr "type" "move,store,load,misc,fpalu,fpload,fpstore") - (set_attr "length" "8,12,12,12,4,4,4")]) + [(set_attr "type" "move,store,store,load,load,misc,fpalu,fpload,fpstore") + (set_attr "length" "8,8,16,8,16,16,4,4,4")]) (define_insn "" [(set (match_operand:DI 0 "register_operand" "=r,r") |