On 12/04/12 02:48, Joey Ye wrote: > For thumb1 use move + add instructions for immediate move [256-510]. > > Following is a complete range if combine an imm mov with listed > instructions. Among them, lsls and neg have already been implemented. The > only missing opportunity is add, in which I enabled in this patch. Others > are replicated with lsls or neg. > > 1. Result imm range with 16bit movs > Insn Result imm with movs > lsls [0x1-0xff] shifted by 1-31 > add [256, 510] > neg [-255, 0] > rev [0x1000000-0xff000000] step 0x1000000 > rev16 [0x100-0xff00] step 0x100 > revsh [0x10000-0xff0000] step 0x10000 > rsb [-255, 0] > mvn [-255, 0] > sub [-255, 0] > sxtb [-255, 0] > > ChangeLog: > > * config/arm/constraints.md (Pe): New constraint. > * config/arm/arm.md: New split for imm 256-510. > > Testcase: > * gcc.target/arm/thumb1-imm.c: New testcase. >
OK. R.