blob: 824025db08cc64d3f58c832ba21d116fbfc4b35e [file] [log] [blame]
/* Check that the GBR address optimization works when there are multiple
GBR register definitions and function calls, if the GBR is marked as a
call saved register. */
/* { dg-do compile } */
/* { dg-options "-O1 -fcall-saved-gbr" } */
/* { dg-final { scan-assembler-not "stc\tgbr" } } */
typedef struct
{
int x, y, z, w;
} tcb_t;
extern void test_00 (void);
int
test_01 (int x, volatile int* y, int a)
{
if (a)
test_00 ();
y[0] = 1;
tcb_t* tcb = (tcb_t*)__builtin_thread_pointer ();
return (a & 5) ? tcb->x : tcb->w;
}