diff options
author | Richard Henderson <richard.henderson@linaro.org> | 2021-07-25 11:47:35 -1000 |
---|---|---|
committer | Richard Henderson <richard.henderson@linaro.org> | 2021-10-05 16:53:17 -0700 |
commit | abe2e23eb703b7e2b0479b4672d087cc37b0e667 (patch) | |
tree | 43961fd3001743d6b41295d2ea656478388f96c4 /include/exec | |
parent | 9002ffcb7264947d9a193567b457dea42f15c321 (diff) | |
download | qemu-abe2e23eb703b7e2b0479b4672d087cc37b0e667.zip qemu-abe2e23eb703b7e2b0479b4672d087cc37b0e667.tar.gz qemu-abe2e23eb703b7e2b0479b4672d087cc37b0e667.tar.bz2 |
tcg: Split out MemOpIdx to exec/memopidx.h
Move this code from tcg/tcg.h to its own header.
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'include/exec')
-rw-r--r-- | include/exec/memopidx.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/include/exec/memopidx.h b/include/exec/memopidx.h new file mode 100644 index 0000000..83bce97 --- /dev/null +++ b/include/exec/memopidx.h @@ -0,0 +1,55 @@ +/* + * Combine the MemOp and mmu_idx parameters into a single value. + * + * Authors: + * Richard Henderson <rth@twiddle.net> + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + */ + +#ifndef EXEC_MEMOPIDX_H +#define EXEC_MEMOPIDX_H 1 + +#include "exec/memop.h" + +typedef uint32_t MemOpIdx; + +/** + * make_memop_idx + * @op: memory operation + * @idx: mmu index + * + * Encode these values into a single parameter. + */ +static inline MemOpIdx make_memop_idx(MemOp op, unsigned idx) +{ +#ifdef CONFIG_DEBUG_TCG + assert(idx <= 15); +#endif + return (op << 4) | idx; +} + +/** + * get_memop + * @oi: combined op/idx parameter + * + * Extract the memory operation from the combined value. + */ +static inline MemOp get_memop(MemOpIdx oi) +{ + return oi >> 4; +} + +/** + * get_mmuidx + * @oi: combined op/idx parameter + * + * Extract the mmu index from the combined value. + */ +static inline unsigned get_mmuidx(MemOpIdx oi) +{ + return oi & 15; +} + +#endif |