20030811-1.c
来自「Mac OS X 10.4.9 for x86 Source Code gcc」· C语言 代码 · 共 60 行
C
60 行
/* Origin: PR target/11693 from Andreas Schwab <schwab@suse.de> *//* { dg-do compile { target ia64-*-linux* } } *//* { dg-options "-O2 -frename-registers" } */static inline unsigned longfoo (void){ unsigned long x; __asm__ __volatile__ ("" : "=r" (x) :: "memory"); return x;}static inline voidbar (unsigned long x, unsigned long y){ __asm__ __volatile__ ("" :: "r"(x), "r"(y) : "memory");}static inline voidbaz (unsigned long x, unsigned long y, unsigned long z, unsigned long p, unsigned long q){ __asm__ __volatile__ ("" :: "r" (q << 2) : "memory"); __asm__ __volatile__ ("" :: "r" (z) : "memory"); if (x & 0x1) __asm__ __volatile__ ("" :: "r" (y), "r" (p) : "memory"); if (x & 0x2) __asm__ __volatile__ ("" :: "r" (y), "r" (p) : "memory");}static inline unsigned longffz (unsigned long x){ unsigned long r; __asm__ ("" : "=r" (r) : "r" (x & (~x - 1))); return r;}void die (const char *, ...) __attribute__ ((noreturn));voidtest (void *x){ unsigned long a, c; a = foo (); bar (0xc000000000000000, 0x660); bar (0xa00000000000c000, 0x539); baz (2, 1, 0xa000000000008000, ({ unsigned long b; b = ({ unsigned long d; __asm__ ("" : "=r" (d) : "r" (x)); d; }) + 0x10000000000661; b; }), 14); c = ffz (0x1fffffffffffffff); if (c < 51 || c > 61) die ("die", c - 1);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?