[Arm64] Fix EmitShuffleThunk reg allocation#16947
Conversation
| EmitLoadStoreRegImm(eLOAD, IntReg(8), RegSp, pEntry->srcofs * sizeof(void*)); | ||
| EmitLoadStoreRegImm(eSTORE, IntReg(8), RegSp, pEntry->dstofs * sizeof(void*)); | ||
| EmitLoadStoreRegImm(eLOAD, IntReg(9), RegSp, pEntry->srcofs * sizeof(void*)); | ||
| EmitLoadStoreRegImm(eSTORE, IntReg(9), RegSp, pEntry->dstofs * sizeof(void*)); |
There was a problem hiding this comment.
x8 is a bad choice because it destroys the return struct address passed in x8.
Use x9 instead.
Free up the x9 register by moving the target address to x16/IP, where it belongs anyway.
janvorli
left a comment
There was a problem hiding this comment.
LGTM, thank you for fixing it!
|
test Windows_NT armlb Cross Checked Innerloop Build and Test |
|
Looks like most recent armlb runs are failing. Given that this only touches an arm64 specific file, I think this can be merged test Windows_NT armlb Cross Checked Innerloop Build and Test |
|
@dotnet/jit-contrib, the "Windows_NT armlb Cross Checked Innerloop Build and Test" is consistently failing with the following error. @briansull it seems it has started with this change: |
|
I've created issue #16961 to track it. |
No description provided.