- User Since
- Dec 27 2014, 5:26 PM (233 w, 2 d)
Feb 25 2019
What's the status of this?
Jan 24 2019
Replaced by D56944
I don't know enough about LLVM to review the code, but I just built a custom Rust compiler that uses this patch and can verify that this fixes the passed error code. The passed exception stack frame looks correct too.
Jan 17 2019
Yep, I plan to pick it up this week.
Jan 16 2019
Ping @rnk: Do you have some time to fix this?
Jan 5 2019
@rnk Thanks for your thoughtful reply! Sorry for voicing my frustration, I just feared that the issue remains unfixed because no one wants to invest the time to fix it properly. But I understand your reasoning and I see how the current code is somewhat hacky.
Jan 4 2019
Jan 3 2019
I tried to add additional checks to the x86-64-intrcc.ll test, but the patched version of llc generates the exact same assembly as the unpatched version for this test (with and without -O0). I think this is because the test doesn't use the relevant code paths. I'm not sure whether it's practical to construct new tests for every code path and how to construct such tests.
Apr 2 2017
Friendly ping :)
Mar 21 2017
It seems like this patch is ready to land. I don't have SVN access, so it would be great if someone could commit it for me.
Mar 15 2017
Mar 14 2017
(updated the test_isr_clobbers test too, even though the CHECK-SSE-NEXT directives are broken at the moment)
The argument offsets (exception stack frame and error code) are now updated if the stack is aligned. I also updated the tests accordingly.
I just tested this version again and found a bug in the implementation: I forgot to adjust the offset of the error code and the pointer to the exception stack frame. So please do not merge this yet.
Mar 13 2017
What's the state of this? Are there any problems with this PR?
Feb 21 2017
No, there is no need to realign stack in 64-bit mode.
Feb 18 2017
add a . in comment
re-created the patch with -U999999
Amjad pointed out to me that the incoming alignment to an interrupt handler is only guaranteed to be 0 mod 8, not 8 mod 16 as is the case with the normal x86-64 ABI. HJ mentions this in 26477.
Feb 16 2017
This should also fix the 64-bit case of Bug 26477. I'm not quite sure what's the problem in the 32-bit case.
Could someone commit this for me, please?
Feb 15 2017
You were right: The generated code with and without -O0 is identical.
I don't have commit access. Could someone commit it for me?
I added a regression test.
Feb 14 2017
PR26413 is a different problem: The generated code for targets with SSE support uses movaps instructions instead of movups instructions, which leads to alignment exceptions because the stack is only 8-byte aligned.