/* PR target/78967 */ | |
/* { dg-do assemble { target { ! ia32 } } } */ | |
/* { dg-options "-O2" } */ | |
typedef __SIZE_TYPE__ size_t; | |
struct S1 | |
{ | |
unsigned char pad1; | |
unsigned char val; | |
unsigned short pad2; | |
}; | |
extern unsigned char t[256]; | |
struct S1 foo (struct S1 a, size_t i) | |
{ | |
register size_t _i __asm ("r10") = i; | |
asm volatile ("" : "+r" (_i)); | |
a.val = t[_i]; | |
return a; | |
} |