MOVEM is used to spill the register, which will cause problem with 1 byte data, since it only supports word (2 bytes) and long (4 bytes) size.
We change to use the normal move instruction to spill 1 byte data.
Fixes #57660
Paths
| Differential D133636
[M68k] Fix the crash of fast register allocator ClosedPublic Authored by 0x59616e on Sep 9 2022, 11:49 PM.
Details Summary MOVEM is used to spill the register, which will cause problem with 1 byte data, since it only supports word (2 bytes) and long (4 bytes) size. We change to use the normal move instruction to spill 1 byte data. Fixes #57660
Diff Detail
Event Timeline
Comment Actions Thank you for fixing this bug! Comment Actions Fix the assertion in M68kInstrInfo::storeRegToStackSlot and M68kInstrInfo::loadRegFromStackSlot
0x59616e marked 2 inline comments as done. Comment ActionsAdd assertion to check the size of the stack slot matches the size of register class This revision is now accepted and ready to land.Sep 14 2022, 8:08 AM This revision was landed with ongoing or failed builds.Sep 14 2022, 6:24 PM Closed by commit rGbea33f75e2bf: [M68k] Fix the crash of fast register allocator (authored by 0x59616e). · Explain Why This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 460282 llvm/lib/Target/M68k/M68kInstrInfo.cpp
llvm/test/CodeGen/M68k/PR57660.ll
|
Oh I didn't notice this, thanks for spotting