asm1.c
来自「this is a gcc file, you can download it 」· C语言 代码 · 共 57 行
C
57 行
// 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" } }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?