@@ -528,6 +528,10 @@ pub(crate) mod jit_trampoline {
528528 fde. add_instruction ( 1 , CallFrameInstruction :: Offset ( RBP , -16 ) ) ;
529529 // After mov rbp, rsp (offset 4): CFA is now RBP + 16
530530 fde. add_instruction ( 4 , CallFrameInstruction :: CfaRegister ( RBP ) ) ;
531+ // After pop rbp
532+ fde. add_instruction ( 0x11 , CallFrameInstruction :: Restore ( RBP ) ) ;
533+ fde. add_instruction ( 0x11 , CallFrameInstruction :: CfaRegister ( RSP ) ) ;
534+ fde. add_instruction ( 0x11 , CallFrameInstruction :: CfaOffset ( 8 ) ) ;
531535 }
532536
533537 #[ cfg( target_arch = "aarch64" ) ]
@@ -539,6 +543,11 @@ pub(crate) mod jit_trampoline {
539543 fde. add_instruction ( 4 , CallFrameInstruction :: Offset ( X30 , -8 ) ) ;
540544 // After mov x29, sp (offset 8): CFA is now X29 + 16
541545 fde. add_instruction ( 8 , CallFrameInstruction :: CfaRegister ( X29 ) ) ;
546+ // After: 0x10: ldp x29, x30, [sp], #16 : CFA is the SP
547+ fde. add_instruction ( 0x14 , CallFrameInstruction :: Restore ( X29 ) ) ;
548+ fde. add_instruction ( 0x14 , CallFrameInstruction :: Restore ( X30 ) ) ;
549+ fde. add_instruction ( 0x14 , CallFrameInstruction :: CfaRegister ( SP ) ) ;
550+ fde. add_instruction ( 0x14 , CallFrameInstruction :: CfaOffset ( 0 ) ) ;
542551 }
543552
544553 fde
0 commit comments