Mail Archives: djgpp/1999/03/29/14:57:47
Andrew Davidson wrote:
>
> I'm having a neat little problem with a teeny little bit of inline
> assembler. The line goes like this:
>
> asm (
> "call %%esi\n"
> : "=a" (regpcaf), "=b" (regiyhl), "=c" (regixbc), "=d" (regspde)
> : "a" (regpcaf),"b" (regiyhl), "c" (regixbc), "d" (regspde), "S"
> (cpuid->scratchmem), "D" (cpuid->cpumem)
> : "%eax", "%ebx", "%ecx", "%edx", "%esi", "%edi"
> );
>
> (all the reg...s are #defines but fear not, they all work perfectly).
I think Shawn pegged your problem, but also note that it is technically
illegal to declare an input or output register as clobbered. You can
delete eax thru edx from the clobber list (they aren't clobbered,
they're filled with an output), and esi and edi should be added as
outputs assigned to dummy variables. EGCS enforces this.
--
Nate Eldredge
nate AT cartsys DOT com
- Raw text -