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