diff options
author | John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | 2007-12-10 03:17:24 +0000 |
---|---|---|
committer | John David Anglin <danglin@gcc.gnu.org> | 2007-12-10 03:17:24 +0000 |
commit | 276103f10323836330927cf5827fba852b6723bd (patch) | |
tree | e1491ff12d41abebf2a3e36368467d0f2ade8a51 /gcc/ChangeLog | |
parent | a811d552d99173f75b731f0f976161ff570d8c98 (diff) | |
download | gcc-276103f10323836330927cf5827fba852b6723bd.tar.gz |
re PR target/32889 (ICE in delete_output_reload, at reload1.c:7926)
PR middle-end/32889
PR target/34091
* pa.md: Consolidate HImode and QImode move patterns into one pattern
each, eliminating floating-point alternatives.
* pa-protos.h (pa_cannot_change_mode_class, pa_modes_tieable_p):
Declare functions.
* pa-64.h (SECONDARY_MEMORY_NEEDED): Define here.
* pa.c (pa_secondary_reload): Use an intermediate general register
for copies to/from floating-point register classes. Simplify code
SHIFT_REGS class. Provide additional comments.
(pa_cannot_change_mode_class, pa_modes_tieable_p): New functions.
* pa.h (MODES_TIEABLE_P): Use pa_modes_tieable_p.
(SECONDARY_MEMORY_NEEDED): Delete define.
(INT14_OK_STRICT): Define.
(MODE_OK_FOR_SCALED_INDEXING_P): Allow SFmode and DFmode when using
soft float.
(MODE_OK_FOR_UNSCALED_INDEXING_P): Likewise.
(GO_IF_LEGITIMATE_ADDRESS): Use INT14_OK_STRICT in REG+D case for
SFmode and DFmode.
(LEGITIMIZE_RELOAD_ADDRESS): Use INT14_OK_STRICT in mask selection.
Align DImode offsets when generating 64-bit code.
* pa32-regs.h (VALID_FP_MODE_P): Remove QImode and HImode.
(CANNOT_CHANGE_MODE_CLASS): Define.
* pa64-regs.h (VALID_FP_MODE_P): Remove QImode and HImode.
(CANNOT_CHANGE_MODE_CLASS): Define using pa_cannot_change_mode_class.
From-SVN: r130735
Diffstat (limited to 'gcc/ChangeLog')
-rw-r--r-- | gcc/ChangeLog | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6d2fa78ba02..189371ddb0a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,31 @@ +2007-12-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> + + PR middle-end/32889 + PR target/34091 + * pa.md: Consolidate HImode and QImode move patterns into one pattern + each, eliminating floating-point alternatives. + * pa-protos.h (pa_cannot_change_mode_class, pa_modes_tieable_p): + Declare functions. + * pa-64.h (SECONDARY_MEMORY_NEEDED): Define here. + * pa.c (pa_secondary_reload): Use an intermediate general register + for copies to/from floating-point register classes. Simplify code + SHIFT_REGS class. Provide additional comments. + (pa_cannot_change_mode_class, pa_modes_tieable_p): New functions. + * pa.h (MODES_TIEABLE_P): Use pa_modes_tieable_p. + (SECONDARY_MEMORY_NEEDED): Delete define. + (INT14_OK_STRICT): Define. + (MODE_OK_FOR_SCALED_INDEXING_P): Allow SFmode and DFmode when using + soft float. + (MODE_OK_FOR_UNSCALED_INDEXING_P): Likewise. + (GO_IF_LEGITIMATE_ADDRESS): Use INT14_OK_STRICT in REG+D case for + SFmode and DFmode. + (LEGITIMIZE_RELOAD_ADDRESS): Use INT14_OK_STRICT in mask selection. + Align DImode offsets when generating 64-bit code. + * pa32-regs.h (VALID_FP_MODE_P): Remove QImode and HImode. + (CANNOT_CHANGE_MODE_CLASS): Define. + * pa64-regs.h (VALID_FP_MODE_P): Remove QImode and HImode. + (CANNOT_CHANGE_MODE_CLASS): Define using pa_cannot_change_mode_class. + 2007-11-28 Rask Ingemann Lambertsen <rask@sygehus.dk> Backport from mainline: |