| 410 | |
| 411 | // Calls a 2-argument function `Func` setting the parent unwind frame information to the given SP and PC |
| 412 | __attribute__((naked)) extern "C" uint64_t SEHFrameTrampoline2Args(void* Arg0, void* Arg1, void* Func, uint64_t Sp, uint64_t Pc) { |
| 413 | asm(".seh_proc SEHFrameTrampoline2Args;" |
| 414 | "stp x3, x4, [sp, #-0x10]!;" |
| 415 | ".seh_pushframe;" |
| 416 | "stp x29, x30, [sp, #-0x10]!;" |
| 417 | ".seh_save_fplr_x 16;" |
| 418 | ".seh_endprologue;" |
| 419 | "blr x2;" |
| 420 | "ldp x29, x30, [sp], 0x20;" |
| 421 | "ret;" |
| 422 | ".seh_endproc;"); |
| 423 | } |
| 424 | |
| 425 | class WowSyscallHandler : public FEXCore::HLE::SyscallHandler, public FEXCore::Allocator::FEXAllocOperators { |
| 426 | public: |