1 /* PR debug/43299 */
2 /* { dg-do assemble } */
3 /* { dg-options "-g -O2" } */
4
5 extern void *emit_insn (void *);
6
7 __attribute__((noinline))
gen_load_locked_si(void * x,void * y)8 void *gen_load_locked_si (void *x, void *y)
9 {
10 return x;
11 }
12
13 __attribute__((noinline))
gen_load_locked_di(void * x,void * y)14 void *gen_load_locked_di (void *x, void *y)
15 {
16 return x;
17 }
18
19 void
emit_load_locked(int mode,void * reg,void * mem)20 emit_load_locked (int mode, void *reg, void *mem)
21 {
22 void * (*fn) (void *, void *) = ((void *)0);
23 if (mode == 9)
24 fn = gen_load_locked_si;
25 else if (mode == 10)
26 fn = gen_load_locked_di;
27 emit_insn (fn (reg, mem));
28 }
29