http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57299
--- Comment #8 from Chris Mihelich ---
(In reply to Andrew Pinski from comment #7)
> Actually it only needs 4 (and not 6) due to holding of the pointer of y and
> x can happen with only 2 registers.
That's not what GCC is doing, actually. When I
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57299
--- Comment #6 from Chris Mihelich ---
Ah, but "=m" and "m" operands shouldn't need any register at all: their purpose
is just to declare that a specific piece of memory is written or read in the
assembly code, a declaration that helps the optimiz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57299
--- Comment #4 from Chris Mihelich ---
Yes indeed, x is loaded from the stack into edi, and y is loaded from the stack
into esi, as the register variable declarations specified. That's two
registers. Where are the other two?
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57299
--- Comment #2 from Chris Mihelich ---
The asm statement uses only two registers. Of the six inputs and outputs, only
"r" (p) and "r" (q) are registers; the four "=m" and "m" entries only declare
that memory is read or written in the assembly cod
Severity: normal
Priority: P3
Component: inline-asm
Assignee: unassigned at gcc dot gnu.org
Reporter: umbricola at gmail dot com
Consider this function with an inline assembly statement that takes two pointer
inputs in named registers and declares