On 09-07-14 23:06, Tom de Vries wrote:
On 09-07-14 20:32, Richard Sandiford wrote:
Tom de Vries <tom_devr...@mentor.com> writes:
Richard,

during testing the gcc.target/mips/fuse-caller-save*.c test-cases with more
combinations of -march, -mabi, -fpic etc, I found that the checks for amount of
stores are rather fragile, so I removed them in this patch.

Which combinations specifically?  I don't see offhand why -march would
make a difference,

--target_board=unix/-march=mips32:
...
FAIL: gcc.target/mips/fuse-caller-save-mips16.c   -O2   scan-assembler-times
(?n)s[wd]\t\\$.*,.*\\(\\$sp\\) 2
FAIL: gcc.target/mips/fuse-caller-save-mips16.c   -O3 -fomit-frame-pointer
scan-assembler-times (?n)s[wd]\t\\$.*,.*\\(\\$sp\\) 2
FAIL: gcc.target/mips/fuse-caller-save-mips16.c   -O3 -g   scan-assembler-times
(?n)s[wd]\t\\$.*,.*\\(\\$sp\\) 2
FAIL: gcc.target/mips/fuse-caller-save-mips16.c   -Os   scan-assembler-times
(?n)s[wd]\t\\$.*,.*\\(\\$sp\\) 2
FAIL: gcc.target/mips/fuse-caller-save-mips16.c   -O2 -flto -flto-partition=none
   scan-assembler-times (?n)s[wd]\t\\$.*,.*\\(\\$sp\\) 2
FAIL: gcc.target/mips/fuse-caller-save-mips16.c   -O2 -flto scan-assembler-times
(?n)s[wd]\t\\$.*,.*\\(\\$sp\\) 2
...

We're using save instead of sw.

<SNIP>

What do we do about the 'save' instead of 'sw' ?


The mips16e save/restore enabling is controlled by this code in mips.h:
...
/* Generate mips16e code. Default 16bit ASE for mips32* and mips64* */
#define GENERATE_MIPS16E        (TARGET_MIPS16 && mips_isa >= 32)
/* Generate mips16e register save/restore sequences.  */
#define GENERATE_MIPS16E_SAVE_RESTORE (GENERATE_MIPS16E && mips_abi == ABI_32)
...

Adding isa_rev=0 in dg-options works. Is that the way to fix it?

Thanks,
- Tom

Reply via email to