소스 검색

bugfix: 修正sys_rt_sigreturn的汇编,错误的压多了一个栈指针的问题 (#25)

LoGin 1 년 전
부모
커밋
27e779dc23
1개의 변경된 파일3개의 추가작업 그리고 8개의 파일을 삭제
  1. 3 8
      src/header/signal/dragonos.rs

+ 3 - 8
src/header/signal/dragonos.rs

@@ -1,19 +1,14 @@
 use core::arch::global_asm;
 
 // Needs to be defined in assembly because it can't have a function prologue
-// rax is register, 25 is RT_SIGRETURN
+// rax is register, 15 is RT_SIGRETURN
 #[cfg(target_arch = "x86_64")]
 global_asm!(
     "
     .global __restore_rt
     __restore_rt:
-        push   rbp      
-        mov    rbp,rsp
-        mov    eax, 15
-        int    0x80
-        nop
-        pop    rbp
-        ret  
+        mov rax, 15
+        syscall
 "
 );