[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 0/8] tcg: support 32-bit guest addresses as signed
From: |
Richard Henderson |
Subject: |
[PATCH 0/8] tcg: support 32-bit guest addresses as signed |
Date: |
Sun, 10 Oct 2021 10:43:53 -0700 |
We have 2, and nearly 3, hosts that naturally produce sign-extended
values, and have to work extra hard (with 1 or 2 insns) to produce
the zero-extended address that we expect today.
However, it's a simple matter of arithmetic for the middle-end to
require sign-extended addresses instead. For user-only, we do have
to be careful not to allow a guest object to wrap around the signed
boundary, but that's fairly easily done.
Tested with aarch64, as that's the best hw currently available.
r~
Richard Henderson (8):
tcg: Add TCG_TARGET_SIGNED_ADDR32
accel/tcg: Split out g2h_tlbe
accel/tcg: Support TCG_TARGET_SIGNED_ADDR32 for softmmu
accel/tcg: Add guest_base_signed_addr32 for user-only
linux-user: Support TCG_TARGET_SIGNED_ADDR32
tcg/aarch64: Support TCG_TARGET_SIGNED_ADDR32
target/mips: Support TCG_TARGET_SIGNED_ADDR32
target/riscv: Support TCG_TARGET_SIGNED_ADDR32
include/exec/cpu-all.h | 20 ++++++++---
include/exec/cpu_ldst.h | 3 +-
tcg/aarch64/tcg-target-sa32.h | 7 ++++
tcg/arm/tcg-target-sa32.h | 1 +
tcg/i386/tcg-target-sa32.h | 1 +
tcg/mips/tcg-target-sa32.h | 9 +++++
tcg/ppc/tcg-target-sa32.h | 1 +
tcg/riscv/tcg-target-sa32.h | 5 +++
tcg/s390x/tcg-target-sa32.h | 1 +
tcg/sparc/tcg-target-sa32.h | 1 +
tcg/tci/tcg-target-sa32.h | 1 +
accel/tcg/cputlb.c | 36 +++++++++++++------
bsd-user/main.c | 4 +++
linux-user/elfload.c | 62 +++++++++++++++++++++++++-------
linux-user/main.c | 3 ++
tcg/aarch64/tcg-target.c.inc | 68 ++++++++++++++++++++++-------------
tcg/mips/tcg-target.c.inc | 13 ++-----
tcg/riscv/tcg-target.c.inc | 8 ++---
18 files changed, 176 insertions(+), 68 deletions(-)
create mode 100644 tcg/aarch64/tcg-target-sa32.h
create mode 100644 tcg/arm/tcg-target-sa32.h
create mode 100644 tcg/i386/tcg-target-sa32.h
create mode 100644 tcg/mips/tcg-target-sa32.h
create mode 100644 tcg/ppc/tcg-target-sa32.h
create mode 100644 tcg/riscv/tcg-target-sa32.h
create mode 100644 tcg/s390x/tcg-target-sa32.h
create mode 100644 tcg/sparc/tcg-target-sa32.h
create mode 100644 tcg/tci/tcg-target-sa32.h
--
2.25.1
- [PATCH 0/8] tcg: support 32-bit guest addresses as signed,
Richard Henderson <=