re PR target/55146 (jumptables with byte entries produce wrong code with -Os/-O2 for SH-1)
PR target/55146 * gcc.target/sh/pr55146.c: New. From-SVN: r195743
This commit is contained in:
parent
951eb5c7e2
commit
3503fff112
|
@ -1,4 +1,9 @@
|
|||
2012-02-04 Oleg Endo <olegendo@gcc.gnu.org>
|
||||
2013-02-04 Oleg Endo <olegendo@gcc.gnu.org>
|
||||
|
||||
PR target/55146
|
||||
* gcc.target/sh/pr55146.c: New.
|
||||
|
||||
2013-02-04 Oleg Endo <olegendo@gcc.gnu.org>
|
||||
|
||||
PR tree-optimization/54386
|
||||
* gcc.target/sh/pr54386.c: New.
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
/* Check that the 'extu.b' instruction is generated for short jump tables. */
|
||||
/* { dg-do compile { target "sh*-*-*" } } */
|
||||
/* { dg-options "-Os" } */
|
||||
/* { dg-skip-if "" { "sh*-*-*" } { "-m5*"} { "" } } */
|
||||
/* { dg-final { scan-assembler "extu.b" } } */
|
||||
|
||||
int
|
||||
test (int arg)
|
||||
{
|
||||
int rc;
|
||||
switch (arg)
|
||||
{
|
||||
case 0:
|
||||
asm ("nop\n\tnop\n\tnop\n\tnop\n\tnop\n\t"
|
||||
"nop\n\tnop\n\tnop\n\tnop\n\tnop\n\tnop\n\t"
|
||||
"mov r4,%0"
|
||||
: "=r" (rc)
|
||||
: "r" (arg));
|
||||
break;
|
||||
case 1:
|
||||
asm ("nop\n\tnop\n\tnop\n\tnop\n\tnop\n\t"
|
||||
"nop\n\tnop\n\tnop\n\tnop\n\tnop\n\tnop\n\t"
|
||||
"mov r5,%0"
|
||||
: "=r" (rc)
|
||||
: "r" (arg));
|
||||
break;
|
||||
case 2:
|
||||
asm ("nop\n\tnop\n\tnop\n\tnop\n\tnop\n\t"
|
||||
"nop\n\tnop\n\tnop\n\tnop\n\tnop\n\tnop\n\t"
|
||||
"mov r6,%0"
|
||||
: "=r" (rc)
|
||||
: "r" (arg));
|
||||
break;
|
||||
case 3:
|
||||
asm ("nop\n\tnop\n\tnop\n\tnop\n\tnop\n\t"
|
||||
"nop\n\tnop\n\tnop\n\tnop\n\tnop\n\tnop\n\tnop\n\t"
|
||||
"mov r7,%0"
|
||||
: "=r" (rc)
|
||||
: "r" (arg));
|
||||
break;
|
||||
case 4:
|
||||
asm ("nop\n\tnop\n\tnop\n\tnop\n\tnop\n\t"
|
||||
"nop\n\tnop\n\tnop\n\tnop\n\tnop\n\tnop\n\tnop\n\t"
|
||||
"mov r8,%0"
|
||||
: "=r" (rc)
|
||||
: "r" (arg));
|
||||
break;
|
||||
}
|
||||
return rc;
|
||||
}
|
Loading…
Reference in New Issue