summaryrefslogtreecommitdiffstats
path: root/tcg/README
diff options
context:
space:
mode:
authorRichard Henderson2020-12-09 20:58:39 +0100
committerRichard Henderson2021-01-07 16:09:06 +0100
commit07ce0b05300de5bc8f1932a4cfbe38f3323e5ab1 (patch)
treea22f2b213b2cb96c8e0e30c69bca9edb00b678bc /tcg/README
parenttcg/i386: Adjust TCG_TARGET_HAS_MEMORY_BSWAP (diff)
downloadqemu-07ce0b05300de5bc8f1932a4cfbe38f3323e5ab1.tar.gz
qemu-07ce0b05300de5bc8f1932a4cfbe38f3323e5ab1.tar.xz
qemu-07ce0b05300de5bc8f1932a4cfbe38f3323e5ab1.zip
tcg: Introduce INDEX_op_qemu_st8_i32
Enable this on i386 to restrict the set of input registers for an 8-bit store, as required by the architecture. This removes the last use of scratch registers for user-only mode. Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'tcg/README')
-rw-r--r--tcg/README5
1 files changed, 5 insertions, 0 deletions
diff --git a/tcg/README b/tcg/README
index 2f051e5c97..0cf9e2727c 100644
--- a/tcg/README
+++ b/tcg/README
@@ -502,6 +502,7 @@ goto_ptr opcode, emitting this op is equivalent to emitting exit_tb(0).
* qemu_ld_i32/i64 t0, t1, flags, memidx
* qemu_st_i32/i64 t0, t1, flags, memidx
+* qemu_st8_i32 t0, t1, flags, memidx
Load data at the guest address t1 into t0, or store data in t0 at guest
address t1. The _i32/_i64 size applies to the size of the input/output
@@ -518,6 +519,10 @@ of the memory access.
For a 32-bit host, qemu_ld/st_i64 is guaranteed to only be used with a
64-bit memory access specified in flags.
+For i386, qemu_st8_i32 is exactly like qemu_st_i32, except the size of
+the memory operation is known to be 8-bit. This allows the backend to
+provide a different set of register constraints.
+
********* Host vector operations
All of the vector ops have two parameters, TCGOP_VECL & TCGOP_VECE.