From 21d23092cd695f2284691d6fab5ed4a3fe5bafc9 Mon Sep 17 00:00:00 2001 From: 4lDO2 <4lDO2@protonmail.com> Date: Sun, 4 Aug 2024 12:06:14 +0200 Subject: [PATCH] Mostly fix i686. --- redox-rt/src/arch/i686.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/redox-rt/src/arch/i686.rs b/redox-rt/src/arch/i686.rs index 9edff0b08a..71319f50d5 100644 --- a/redox-rt/src/arch/i686.rs +++ b/redox-rt/src/arch/i686.rs @@ -148,10 +148,10 @@ asmfunction!(__relibc_internal_sigentry: [" mov ecx, gs:[{tcb_sa_off} + {sa_pctl}] // Read standard signal word - for the process - mov eax, [ecx + {pctl_word}] + mov eax, [ecx + {pctl_pending}] and eax, edx - jz 3f bsf eax, eax + jz 3f // Read si_pid and si_uid, atomically. movq gs:[{tcb_sa_off} + {sa_tmp_mm0}], mm0 @@ -160,12 +160,12 @@ asmfunction!(__relibc_internal_sigentry: [" movq mm0, gs:[{tcb_sa_off} + {sa_tmp_mm0}] // Try clearing the pending bit, otherwise retry if another thread did that first - lock btr [ecx + {pctl_word}], eax + lock btr [ecx + {pctl_pending}], eax jnc 1b jmp 2f 3: // Read realtime thread and process signal word together - mov edx, [ecx + {pctl_word} + 4] + mov edx, [ecx + {pctl_pending} + 4] mov eax, gs:[{tcb_sc_off} + {sc_word} + 8] or eax, edx and eax, gs:[{tcb_sc_off} + {sc_word} + 12] @@ -242,7 +242,7 @@ asmfunction!(__relibc_internal_sigentry: [" mov ecx, esp call {inner} - fxrstor [esp + 32] + fxrstor [esp + 48] add esp, 48 + 29 * 16 + 2 * 4 pop ebp @@ -303,7 +303,7 @@ __relibc_internal_sigentry_crit_third: tcb_sc_off = const offset_of!(crate::Tcb, os_specific) + offset_of!(RtSigarea, control), pctl_actions = const offset_of!(SigProcControl, actions), pctl_sender_infos = const offset_of!(SigProcControl, sender_infos), - pctl_word = const offset_of!(SigProcControl, pending), + pctl_pending = const offset_of!(SigProcControl, pending), pctl = sym PROC_CONTROL_STRUCT, STACK_ALIGN = const 16, SYS_SIGDEQUEUE = const syscall::SYS_SIGDEQUEUE,