https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99342
Stewart Hildebrand <stewart.hildebrand at dornerworks dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #50286|0 |1
is obsolete| |
--- Comment #4 from Stewart Hildebrand <stewart.hildebrand at dornerworks dot
com> ---
Created attachment 50287
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50287&action=edit
Simplified test case
I simplified the test case - hopefully this should make it clearer. This:
asm volatile("\n"
"ldr x0, %0 \n"
"ldr x1, %1 \n"
"ldr x2, %2 \n"
: // No output operands
: // Inputs:
"Q"(s_current->_state.fp), "Ump"(s_current->_state.sp),
"Ump"(this->_state.fp)
: // Clobbers:
// Registers we use here
"x0", "x1", "x2",
// Callee-saved registers (general purpose)
"x19", "x20", "x21", "x22", "x23", "x24",
"x25", "x26", "x27", "x28",
// Memory access
"memory");
Results in:
118: f9400080 ldr x0, [x4]
11c: f9401461 ldr x1, [x3, #40]
120: f9400c02 ldr x2, [x0, #24]