From nobody Wed Mar 22 15:30:30 2023 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4PhXVH2XMCz40yGv; Wed, 22 Mar 2023 15:30:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4PhXVH1wNYz3Dxq; Wed, 22 Mar 2023 15:30:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1679499031; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FbEiBZfvKBt0lpnew1+sG30Z3pqBnvFVtYjxDUxdN14=; b=AiT0jXtUzGuVgFwSWyuyD3Xn+DDcIUglugobxr3LuyEv5CPQnuu7nLp/hEhNU+crDXAGCO oD6boxq7OCGaMs1hY1AzuUJ47zTwuD78PPlrUL+h6VAQfWwV80gwtB062GkQbf55H/w93h r63bzf9zqnjbxGfvXOhD2jtV2+sbHeo03CFW4WjTxPZunGYQByFyVWJ51C+bfTPionEqw6 Uzx/CUWM+B8jVHHzXXVvMssDY5H6tNv0UVpKkAz+N0yira9RjWoBCAQ+NMpCbWZ/GFqzgg NIJY7CNO1GSS8x7M/Ey101wOIfTs0HblOQWXNBtHU37nrGm2xqUTERQNkZJBdw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1679499031; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FbEiBZfvKBt0lpnew1+sG30Z3pqBnvFVtYjxDUxdN14=; b=EvUt+il4k/d9dbE4KXC38JAYuByTkfCCidJI6HVdPj/h1T9f8c/CURexkR98tPdWwfrUG9 YOW+p5dXHtJFh+R1NODUHG+lOIJ4U5r0oNdw6lDCGgy0qffuOk7iEs9Gk1Ue4pgp5+4+oM /ixCKcszWTXzvb0EBuV98BhWYc463dd/Ik44rYCu+Vv7y/QfySJIsO0pN3reNh3BmHVmPc F9WtQFpiNDcdJOl8XexHsCRnQWIEsXwuMnUf6oe+RG1bygtcxF5czQn6J113JnMAY2FWXH nrpD6kW4tWrAnPsBS7U+QVvl8nZzEVpwviE9/94iC7cD1+5DNPTi9vgci42Tow== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1679499031; a=rsa-sha256; cv=none; b=RJyuzW646/JQzy6ynNS/w9FsJciaXXxJc6tez+oZ4WpZdtAkrEHZzPbCZCjlhXnuC/R+kl iEmzeRun/HqbMcs1J7ymyKcXgTYVHVuLwrO74p6rWtC/nYxFNNk5hvf17x1w4q1bVmh4Sa pKDwDaJRIwZ1VzSakJ0DHP31Pbu6n66vwLacqTmjowWAFwWHrxWZc14o/6nLFwk3Ocpc/7 2ua7+ezHyAPvMP/S7hUtt8DdkUOrWU96I3bLMAmr+ZWHTnSr9I8eTGCQ8v7/Owov0tm/jz 2+iLOWdKZffSt2484oIX4rSFdrlvHU//sOOsyfFYC/+1/uEvTDb0VPw+ucyORg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4PhXVH0vS5zyqn; Wed, 22 Mar 2023 15:30:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 32MFUUHj018053; Wed, 22 Mar 2023 15:30:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 32MFUU7i018052; Wed, 22 Mar 2023 15:30:30 GMT (envelope-from git) Date: Wed, 22 Mar 2023 15:30:30 GMT Message-Id: <202303221530.32MFUU7i018052@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Andrew Turner Subject: git: 1c33a94ab06b - main - Add macros for arm64 pcb register offsets List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 1c33a94ab06bb8274c8a50257a8b94e209a2e2ee Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=1c33a94ab06bb8274c8a50257a8b94e209a2e2ee commit 1c33a94ab06bb8274c8a50257a8b94e209a2e2ee Author: Andrew Turner AuthorDate: 2023-03-22 12:18:41 +0000 Commit: Andrew Turner CommitDate: 2023-03-22 15:08:03 +0000 Add macros for arm64 pcb register offsets Add macros for offsets of macros we set in the arm64 pcb pcb_x array. This will simplift reducing the size of this array in a later change. Sponsored by: Arm Ltd --- sys/arm64/arm64/db_trace.c | 2 +- sys/arm64/arm64/stack_machdep.c | 2 +- sys/arm64/arm64/vm_machdep.c | 12 ++++++------ sys/arm64/include/pcb.h | 4 ++++ 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/sys/arm64/arm64/db_trace.c b/sys/arm64/arm64/db_trace.c index 4d68cd513bce..2b47ae2a89c7 100644 --- a/sys/arm64/arm64/db_trace.c +++ b/sys/arm64/arm64/db_trace.c @@ -144,7 +144,7 @@ db_trace_thread(struct thread *thr, int count) if (thr != curthread) { ctx = kdb_thr_ctx(thr); - frame.fp = (uintptr_t)ctx->pcb_x[29]; + frame.fp = (uintptr_t)ctx->pcb_x[PCB_FP]; frame.pc = (uintptr_t)ctx->pcb_lr; db_stack_trace_cmd(thr, &frame); } else diff --git a/sys/arm64/arm64/stack_machdep.c b/sys/arm64/arm64/stack_machdep.c index 706beb05761c..8a3e8ce7dbc7 100644 --- a/sys/arm64/arm64/stack_machdep.c +++ b/sys/arm64/arm64/stack_machdep.c @@ -68,7 +68,7 @@ stack_save_td(struct stack *st, struct thread *td) if (TD_IS_RUNNING(td)) return (EOPNOTSUPP); - frame.fp = td->td_pcb->pcb_x[29]; + frame.fp = td->td_pcb->pcb_x[PCB_FP]; frame.pc = ADDR_MAKE_CANONICAL(td->td_pcb->pcb_lr); stack_capture(td, st, &frame); diff --git a/sys/arm64/arm64/vm_machdep.c b/sys/arm64/arm64/vm_machdep.c index 006bf5127d25..dee42a8b568d 100644 --- a/sys/arm64/arm64/vm_machdep.c +++ b/sys/arm64/arm64/vm_machdep.c @@ -105,8 +105,8 @@ cpu_fork(struct thread *td1, struct proc *p2, struct thread *td2, int flags) td2->td_frame = tf; /* Set the return value registers for fork() */ - td2->td_pcb->pcb_x[19] = (uintptr_t)fork_return; - td2->td_pcb->pcb_x[20] = (uintptr_t)td2; + td2->td_pcb->pcb_x[PCB_X19] = (uintptr_t)fork_return; + td2->td_pcb->pcb_x[PCB_X20] = (uintptr_t)td2; td2->td_pcb->pcb_lr = (uintptr_t)fork_trampoline; td2->td_pcb->pcb_sp = (uintptr_t)td2->td_frame; @@ -183,8 +183,8 @@ cpu_copy_thread(struct thread *td, struct thread *td0) bcopy(td0->td_frame, td->td_frame, sizeof(struct trapframe)); bcopy(td0->td_pcb, td->td_pcb, sizeof(struct pcb)); - td->td_pcb->pcb_x[19] = (uintptr_t)fork_return; - td->td_pcb->pcb_x[20] = (uintptr_t)td; + td->td_pcb->pcb_x[PCB_X19] = (uintptr_t)fork_return; + td->td_pcb->pcb_x[PCB_X20] = (uintptr_t)td; td->td_pcb->pcb_lr = (uintptr_t)fork_trampoline; td->td_pcb->pcb_sp = (uintptr_t)td->td_frame; @@ -287,8 +287,8 @@ void cpu_fork_kthread_handler(struct thread *td, void (*func)(void *), void *arg) { - td->td_pcb->pcb_x[19] = (uintptr_t)func; - td->td_pcb->pcb_x[20] = (uintptr_t)arg; + td->td_pcb->pcb_x[PCB_X19] = (uintptr_t)func; + td->td_pcb->pcb_x[PCB_X20] = (uintptr_t)arg; } void diff --git a/sys/arm64/include/pcb.h b/sys/arm64/include/pcb.h index a7416d65b344..8767a9e4dba3 100644 --- a/sys/arm64/include/pcb.h +++ b/sys/arm64/include/pcb.h @@ -36,6 +36,10 @@ struct trapframe; +#define PCB_X19 19 +#define PCB_X20 20 +#define PCB_FP 29 + struct pcb { uint64_t pcb_x[30]; uint64_t pcb_lr;