mirror of
https://github.com/nArnoSNES/tcc-65816.git
synced 2024-06-12 13:29:29 +00:00
27 lines
531 B
C
27 lines
531 B
C
/* Test whether a partly call-clobbered register will be moved over a call.
|
|
Although the original test case didn't use any GNUisms, it proved
|
|
difficult to reduce without the named register extension. */
|
|
#if __SH64__ == 32
|
|
#define LOC asm ("r10")
|
|
#else
|
|
#define LOC
|
|
#endif
|
|
|
|
unsigned int foo (char *c, unsigned int x, unsigned int y)
|
|
{
|
|
register unsigned int z LOC;
|
|
|
|
sprintf (c, "%d", x / y);
|
|
z = x + 1;
|
|
return z / (y + 1);
|
|
}
|
|
|
|
int main ()
|
|
{
|
|
char c[16];
|
|
|
|
if (foo (c, ~1U, 4) != (~0U / 5))
|
|
abort ();
|
|
exit (0);
|
|
}
|