Hi,
sorry for asking this question in the Linux-Kernel Mailing list,
but it seems that I can get the best solution for my problem here
(gnu.gcc.help ignores my question).
A code fragment of a project looks like this:
asm volatile(" <some assembler instructions here>"
: "=a" (outEAX),
"=b" (outEBX),
"=c" (outECX),
"=d" (outEDX),
"=S" (outESI),
"=D" (outEDI)
: "a" (inEAX),
"b" (inEBX),
"c" (inECX),
"d" (inEDX),
"S" (inESI),
"D" (inEDI)
: "memory");
This can't be compiled with gcc 2.95 because there are more than 10
operands. Why does such an limit exist? AFAIK I can't split the code
fragment into two parts ala
asm volatile(" <some assembler inststructions here> "
: "=a" (outEAX),
"=b" (outEBX),
"=c" (outECX),
"=d" (outEDX),
"=S" (outESI),
"=D" (outEDI));
asm volatile(" "
: "a" (inEAX),
"b" (inEBX),
"c" (inECX),
"d" (inEDX),
"S" (inESI),
"D" (inEDI)
: "memory");
because I don't know how gcc changes the registers between the two asm
instructions. Is there any trick to handle more than 10 operands with
gcc?
Frank
-- Frank Mehnert ## Dept. of Computer Science, Dresden University of Technology, Germany ## ## E-Mail: fm3@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/~fm3 ##- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Sun May 07 2000 - 21:00:12 EST