URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [g++.dg/] [ext/] [asm1.C] - Rev 701
Go to most recent revision | Compare with Previous | Blame | View Log
// Check that the 3.1 named operand syntax can be used in template functions.struct arg1 {int value;static const int info = 99;};struct arg2 {int value;static const int info = 11;};template<int j>int foo (void){int i;asm ("# foo on %[third] %[second] %[fourth] %[first]": [first] "=r" (i): [second] "i" (j),[third] "i" (j + 2),[fourth] "i" (100));return i;}template<class TYPE>TYPE bar (TYPE t){asm ("# bar on %[first] %[second] %[third]": [first] "=r" (t.value): [second] "i[first]" (t.value),[third] "i" (t.info));return t;}template<class TYPE>struct S {static void frob (TYPE t){asm ("# frob on %[arg]" :: [arg] "i" (t.info));}};void test (){arg1 x;arg2 y;foo<42> ();bar (x);bar (y);S<arg1>::frob (x);}// { dg-final { scan-assembler "foo on" } }// { dg-final { scan-assembler "bar on" } }// { dg-final { scan-assembler "frob on" } }
Go to most recent revision | Compare with Previous | Blame | View Log
