pr21291.c
来自「用于进行gcc测试」· C语言 代码 · 共 37 行
C
37 行
/* The asm has 2 "r" in/out operands, 1 earlyclobber "r" output, 1 "r" input and 2 fixed "r" clobbers (eax and edx), so there are a total of 6 registers that must not conflict. Add to that the PIC register, the frame pointer, and the stack pointer, and we've run out of registers on 32-bit targets. *//* { dg-do compile } *//* { dg-options "-O" } */typedef unsigned long bngdigit;typedef bngdigit *bng;typedef unsigned int bngcarry;typedef unsigned long bngsize;bngdigitbng_ia32_mult_sub_digit (bng a, bngsize alen, bng b, bngsize blen, bngdigit d){ bngdigit out, tmp; bngcarry carry; bngdigit a11; alen -= blen; out = 0; asm ("" : "+r" (a), "+r" (b), "+mr" (blen), "+mr" (out), "=&r" (tmp) : "mr" (d) : "eax", "edx"); if (alen == 0) { a11 = out; goto t; } a11 = 1; t: return a11;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?