@@ -30,7 +30,7 @@ int handle_kekcall(uint64_t* regs, uint64_t* args, uint32_t nr)
3030 stack_frame [10 ] &= -16 ;
3131 }
3232 push_stack (regs , stack_frame , sizeof (stack_frame ));
33- kpoke64 (regs [RDI ]+ td_retval + ( fwver >= 0x1000 ? 0x10 : 0 ) , 0 );
33+ kpoke64 (regs [RDI ]+ td_retval , 0 );
3434 regs [RDI ] = regs [RSP ] + 48 ;
3535 regs [RSI ] = args [RDI ];
3636 regs [RDX ] = 48 ;
@@ -81,7 +81,7 @@ void handle_kekcall_trap(uint64_t* regs, uint32_t trap)
8181 regs [RIP ] = stack_frame [13 ];
8282 if ((uint32_t )regs [RAX ])
8383 return ;
84- kpoke64 (stack_frame [11 ]+ td_retval + ( fwver >= 0x1000 ? 0x10 : 0 ) , 0 );
84+ kpoke64 (stack_frame [11 ]+ td_retval , 0 );
8585 set_pcb_dbregs ();
8686 write_dbgregs (stack_frame + 5 );
8787 }
@@ -114,10 +114,10 @@ void handle_kekcall_trap(uint64_t* regs, uint32_t trap)
114114 {
115115 stack_frame_2 [1 ] = MKTRAP (TRAP_KEKCALL , 4 );
116116 stack_frame_2 [8 ] = kpeek64 (kpeek64 (regs [RDI ]+ td_pcb )+ pcb_fsbase + (fwver >= 0x1000 ? 0x10 : 0 ));
117- kpoke64 (stack_frame [13 ]+ td_retval + ( fwver >= 0x1000 ? 0x10 : 0 ) , 0 );
117+ kpoke64 (stack_frame [13 ]+ td_retval , 0 );
118118 }
119119 else
120- kpoke64 (regs [RDI ]+ td_retval + ( fwver >= 0x1000 ? 0x10 : 0 ) , 0 );
120+ kpoke64 (regs [RDI ]+ td_retval , 0 );
121121 push_stack (regs , stack_frame_2 , sizeof (stack_frame_2 ));
122122 regs [RAX ] = (uint64_t )& sysents [sysc_no ];
123123 if (sysc_no == SYS_sysarch && (uint32_t )stack_frame [7 ] == AMD64_GET_FSBASE )
@@ -139,7 +139,7 @@ void handle_kekcall_trap(uint64_t* regs, uint32_t trap)
139139 uint64_t stack_frame [14 ];
140140 pop_stack (regs , stack_frame , sizeof (stack_frame ));
141141 if (trap == 3 && !(uint32_t )regs [RAX ])
142- kpoke64 (stack_frame [5 ]+ td_retval + ( fwver >= 0x1000 ? 0x10 : 0 ) , kpeek64 (stack_frame [6 ]+ td_retval + ( fwver >= 0x1000 ? 0x10 : 0 ) ));
142+ kpoke64 (stack_frame [5 ]+ td_retval , kpeek64 (stack_frame [6 ]+ td_retval ));
143143 regs [RIP ] = stack_frame [13 ];
144144 }
145145}
0 commit comments