From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1792) id 0BD873858C53; Sun, 2 Apr 2023 23:28:35 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0BD873858C53 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1680478115; bh=QnErmStwJlSEizfe7nLwDOXu2gipP5/JF5F5PWilNUU=; h=From:To:Subject:Date:From; b=vZhV7PAN4McvuE4mOFWUjaUy2EsEw551pRiql5NLkfRiNLMziQcZk/TwQNuEtu9zm zPHYhNENM2xK1s6YEXgTwnDQISpW/H64JHzeB1+AgDm4UJHCeX0A6OrBmDqvSKb6cL hj19yu4YfaOBnK0B/2PcaQBGArI3Eq+U66r/W3eM= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Samuel Thibault To: glibc-cvs@sourceware.org Subject: [glibc] hurd: Use uintptr_t for register values in trampoline.c X-Act-Checkin: glibc X-Git-Author: Sergey Bugaev X-Git-Refname: refs/heads/master X-Git-Oldrev: b43cb674577c81c6a320d69345bad9aaad1ffbf6 X-Git-Newrev: a1fbae752722a4f59127d74c362d3247f277be24 Message-Id: <20230402232835.0BD873858C53@sourceware.org> Date: Sun, 2 Apr 2023 23:28:35 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a1fbae752722a4f59127d74c362d3247f277be24 commit a1fbae752722a4f59127d74c362d3247f277be24 Author: Sergey Bugaev Date: Sun Mar 19 18:09:58 2023 +0300 hurd: Use uintptr_t for register values in trampoline.c This is more correct, if only because these fields are defined as having the type unsigned int in the Mach headers, so casting them to a signed int and then back is suboptimal. Also, remove an extra reassignment of uesp -- this is another remnant of the ecx kludge. Signed-off-by: Sergey Bugaev Message-Id: <20230319151017.531737-16-bugaevc@gmail.com> Diff: --- sysdeps/mach/hurd/i386/trampoline.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/sysdeps/mach/hurd/i386/trampoline.c b/sysdeps/mach/hurd/i386/trampoline.c index 8f481e79b8..ab67fb9cd2 100644 --- a/sysdeps/mach/hurd/i386/trampoline.c +++ b/sysdeps/mach/hurd/i386/trampoline.c @@ -270,24 +270,23 @@ _hurd_setup_sighandler (struct hurd_sigstate *ss, const struct sigaction *action _hurdsig_end_catch_fault (); - state->basic.eip = (int) rpc_wait_trampoline; + state->basic.eip = (uintptr_t) rpc_wait_trampoline; /* The reply-receiving trampoline code runs initially on the original user stack. We pass it the signal stack pointer in %ebx. */ - state->basic.uesp = state->basic.esp; /* Restore mach_msg syscall SP. */ - state->basic.ebx = (int) sigsp; + state->basic.ebx = (uintptr_t) sigsp; /* After doing the message receive, the trampoline code will need to update the %eax value to be restored by sigreturn. To simplify the assembly code, we pass the address of its slot in SCP to the trampoline code in %ecx. */ - state->basic.ecx = (int) &scp->sc_eax; + state->basic.ecx = (uintptr_t) &scp->sc_eax; } else { - state->basic.eip = (int) trampoline; - state->basic.uesp = (int) sigsp; + state->basic.eip = (uintptr_t) trampoline; + state->basic.uesp = (uintptr_t) sigsp; } /* We pass the handler function to the trampoline code in %edx. */ - state->basic.edx = (int) handler; + state->basic.edx = (uintptr_t) handler; /* The x86 ABI says the DF bit is clear on entry to any function. */ state->basic.efl &= ~EFL_DF;