-
Notifications
You must be signed in to change notification settings - Fork 15.5k
Closed
Labels
backend:AArch64questionA question, not bug report. Check out https://llvm.org/docs/GettingInvolved.html instead!A question, not bug report. Check out https://llvm.org/docs/GettingInvolved.html instead!
Description
Hello,
We believe the following generated stackmap for the attached case is wrong. This only happens on arm64. x64 is correct.
Please refer to https://llvm.org/docs/StackMaps.html#stackmap-format.
uint8 : Register | Direct | Indirect | Constant | ConstantIndex
uint8 : Reserved (expected to be 0)
uint16 : Location Size
uint16 : Dwarf RegNum
uint16 : Reserved (expected to be 0)
int32 : Offset or SmallConstant
[bad]
Ltmp9-_next_criticals967_code7BCE
.byte 3 # Indirect
.byte 0
.short 8
.short 19 # RegNum (wrong)
.short 0
.long 56 # Offset (wrong)
[good]
Ltmp9-_next_criticals967_code7BCE
.byte 3 # Indirect
.byte 0
.short 8
.short 29 # RegNum (correct)
.short 0
.long -56 # Offset (correct)
r29 should the frame register on arm64. And the offset should be negative.
llc --version
LLVM (http://llvm.org/):
LLVM version 17.0.2
Optimized build.
Default target: arm64-apple-darwin23.6.0
Host CPU: apple-m1
Thanks,
Ling
Metadata
Metadata
Assignees
Labels
backend:AArch64questionA question, not bug report. Check out https://llvm.org/docs/GettingInvolved.html instead!A question, not bug report. Check out https://llvm.org/docs/GettingInvolved.html instead!