diff options
author | Richard Henderson <rth@gcc.gnu.org> | 2002-01-22 15:13:58 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2002-01-22 15:13:58 -0800 |
commit | 2e27193212a89346908fd2d15b505e617dd53045 (patch) | |
tree | 077e84ebe3fa686bad26656454a3408a869533ce /gcc | |
parent | 7f7cfc73b82c0aaff8735a8490b304bd1b6a7bb5 (diff) | |
download | gcc-2e27193212a89346908fd2d15b505e617dd53045.zip gcc-2e27193212a89346908fd2d15b505e617dd53045.tar.gz gcc-2e27193212a89346908fd2d15b505e617dd53045.tar.bz2 |
alpha.md (divmodsi_internal_er): Generate lituse sequence number for the literal.
* config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
sequence number for the literal.
(divmoddi_internal_er): Likewise.
From-SVN: r49110
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/alpha/alpha.md | 18 |
2 files changed, 20 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 27c112d..2e8690f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +<<<<<<< ChangeLog + + * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse + sequence number for the literal. + (divmoddi_internal_er): Likewise. + 2002-01-22 Craig Rodrigues <rodrigc@gcc.gnu.org> PR java/4972 diff --git a/gcc/config/alpha/alpha.md b/gcc/config/alpha/alpha.md index fe256b6..94aeec6 100644 --- a/gcc/config/alpha/alpha.md +++ b/gcc/config/alpha/alpha.md @@ -1212,6 +1212,7 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi" [(parallel [(set (match_dup 0) (sign_extend:DI (match_dup 3))) (use (match_dup 0)) + (use (match_dup 4)) (clobber (reg:DI 23)) (clobber (reg:DI 28))])] { @@ -1233,7 +1234,10 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi" default: abort (); } - emit_move_insn (operands[0], gen_rtx_SYMBOL_REF (DImode, str)); + operands[4] = GEN_INT (alpha_next_sequence_number++); + emit_insn (gen_movdi_er_high_g (operands[0], pic_offset_table_rtx, + gen_rtx_SYMBOL_REF (DImode, str), + operands[4])); } [(set_attr "type" "jsr") (set_attr "length" "8")]) @@ -1244,10 +1248,11 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi" [(match_operand:DI 1 "register_operand" "a") (match_operand:DI 2 "register_operand" "b")]))) (use (match_operand:DI 4 "register_operand" "c")) + (use (match_operand 5 "const_int_operand" "")) (clobber (reg:DI 23)) (clobber (reg:DI 28))] "TARGET_EXPLICIT_RELOCS && ! TARGET_ABI_OPEN_VMS" - "jsr $23,($27),__%E3" + "jsr $23,($27),__%E3%J5" [(set_attr "type" "jsr") (set_attr "length" "4")]) @@ -1275,6 +1280,7 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi" "&& reload_completed" [(parallel [(set (match_dup 0) (match_dup 3)) (use (match_dup 0)) + (use (match_dup 4)) (clobber (reg:DI 23)) (clobber (reg:DI 28))])] { @@ -1296,7 +1302,10 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi" default: abort (); } - emit_move_insn (operands[0], gen_rtx_SYMBOL_REF (DImode, str)); + operands[4] = GEN_INT (alpha_next_sequence_number++); + emit_insn (gen_movdi_er_high_g (operands[0], pic_offset_table_rtx, + gen_rtx_SYMBOL_REF (DImode, str), + operands[4])); } [(set_attr "type" "jsr") (set_attr "length" "8")]) @@ -1307,10 +1316,11 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi" [(match_operand:DI 1 "register_operand" "a") (match_operand:DI 2 "register_operand" "b")])) (use (match_operand:DI 4 "register_operand" "c")) + (use (match_operand 5 "const_int_operand" "")) (clobber (reg:DI 23)) (clobber (reg:DI 28))] "TARGET_EXPLICIT_RELOCS && ! TARGET_ABI_OPEN_VMS" - "jsr $23,($27),__%E3" + "jsr $23,($27),__%E3%J5" [(set_attr "type" "jsr") (set_attr "length" "4")]) |