summaryrefslogtreecommitdiff
path: root/gcc/recog.c
diff options
context:
space:
mode:
authoraldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4>2005-01-14 21:22:14 +0000
committeraldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4>2005-01-14 21:22:14 +0000
commit202fb81df8dfa68c9065940ec5fb95580fc875b5 (patch)
tree44ec03ace9a33d611bf37e4c25c9c7ffad7a7728 /gcc/recog.c
parent3b2b2861f9dd8dc58766bc94b071f609960e4ac5 (diff)
downloadgcc-202fb81df8dfa68c9065940ec5fb95580fc875b5.tar.gz
* config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
on e500v2. (CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2. (PREDICATE_CODES): Add rs6k_nonimmediate_operand. * config/rs6000/rs6000.c (invalid_e500_subreg): New. (rs6k_nonimmediate_operand): New. (rs6000_legitimate_offset_address_p): Handle DI modes on e500v2 correctly. (legitimate_lo_sum_address_p): Same. (rs6000_legitimize_address): Same. (rs6000_legitimize_reload_address): Same. (rs6000_legitimate_address): Same. (spe_build_register_parallel): Pass DF and DC modes in a DI register. * config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate to rs6k_nonimmediate_operand. * config/rs6000/spe.md ("*frob_df_di"): New. ("*frob_di_df"): New. ("*frob_di_df_2"): New. ("*mov_sidf_e500_subreg0"): New. ("*mov_sidf_e500_subreg4"): New. ("*movdf_e500_double"): Change predicate to rs6k_nonimmediate_operand. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@93665 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/recog.c')
0 files changed, 0 insertions, 0 deletions