================
@@ -1110,6 +1123,7 @@ void ARMFrameLowering::emitPrologue(MachineFunction &MF,
     DefCFAOffsetCandidates.addInst(LastPush, GPRCS3Size, BeforeFPPush);
     if (FramePtrSpillArea == SpillArea::GPRCS3)
       BeforeFPPush = false;
+    NumBytes -= GPRCS3Size;
----------------
trungnt2910 wrote:

This line is causing `CodeGen/ARM/Windows/wineh-framepointer.ll` to fail.

The assembly check expects the stack to be subtracted by a specific offset that 
includes the already `push`ed Area 3 registers `r11` and `lr`:

https://github.com/llvm/llvm-project/blob/b751719170fdba8c0b9c07b5b6a598e95baba580/llvm/test/CodeGen/ARM/Windows/wineh-framepointer.ll#L21

Meanwhile, the offsets produced by this revision is always 2 words (8 bytes) 
smaller.

@mstorsjo Since you wrote this test, could you please tell me if the failure is 
expected? The test cases use `1256`, `1258`, and `1259`, so it does not seem 
like a 8-byte or 16-byte padding, does it?

https://github.com/llvm/llvm-project/pull/184953
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to