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]

Reply via email to