[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 15/17] tcg: Add TCGMemOp
From: |
Richard Henderson |
Subject: |
[Qemu-devel] [PULL 15/17] tcg: Add TCGMemOp |
Date: |
Thu, 10 Oct 2013 14:28:43 -0700 |
Signed-off-by: Richard Henderson <address@hidden>
---
tcg/tcg.h | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 54 insertions(+)
diff --git a/tcg/tcg.h b/tcg/tcg.h
index 7d0c652..db0abc3 100644
--- a/tcg/tcg.h
+++ b/tcg/tcg.h
@@ -197,6 +197,60 @@ typedef enum TCGType {
#endif
} TCGType;
+/* Constants for qemu_ld and qemu_st for the Memory Operation field. */
+typedef enum TCGMemOp {
+ MO_8 = 0,
+ MO_16 = 1,
+ MO_32 = 2,
+ MO_64 = 3,
+ MO_SIZE = 3, /* Mask for the above. */
+
+ MO_SIGN = 4, /* Sign-extended, otherwise zero-extended. */
+
+ MO_BSWAP = 8, /* Host reverse endian. */
+#ifdef HOST_WORDS_BIGENDIAN
+ MO_LE = MO_BSWAP,
+ MO_BE = 0,
+#else
+ MO_LE = 0,
+ MO_BE = MO_BSWAP,
+#endif
+#ifdef TARGET_WORDS_BIGENDIAN
+ MO_TE = MO_BE,
+#else
+ MO_TE = MO_LE,
+#endif
+
+ /* Combinations of the above, for ease of use. */
+ MO_UB = MO_8,
+ MO_UW = MO_16,
+ MO_UL = MO_32,
+ MO_SB = MO_SIGN | MO_8,
+ MO_SW = MO_SIGN | MO_16,
+ MO_SL = MO_SIGN | MO_32,
+ MO_Q = MO_64,
+
+ MO_LEUW = MO_LE | MO_UW,
+ MO_LEUL = MO_LE | MO_UL,
+ MO_LESW = MO_LE | MO_SW,
+ MO_LESL = MO_LE | MO_SL,
+ MO_LEQ = MO_LE | MO_Q,
+
+ MO_BEUW = MO_BE | MO_UW,
+ MO_BEUL = MO_BE | MO_UL,
+ MO_BESW = MO_BE | MO_SW,
+ MO_BESL = MO_BE | MO_SL,
+ MO_BEQ = MO_BE | MO_Q,
+
+ MO_TEUW = MO_TE | MO_UW,
+ MO_TEUL = MO_TE | MO_UL,
+ MO_TESW = MO_TE | MO_SW,
+ MO_TESL = MO_TE | MO_SL,
+ MO_TEQ = MO_TE | MO_Q,
+
+ MO_SSIZE = MO_SIZE | MO_SIGN,
+} TCGMemOp;
+
typedef tcg_target_ulong TCGArg;
/* Define a type and accessor macros for variables. Using a struct is
--
1.8.1.4
- [Qemu-devel] [PULL 06/17] tcg: Remove stray semi-colons from target-*/helper.h, (continued)
- [Qemu-devel] [PULL 06/17] tcg: Remove stray semi-colons from target-*/helper.h, Richard Henderson, 2013/10/10
- [Qemu-devel] [PULL 05/17] tcg: Move helper registration into tcg_context_init, Richard Henderson, 2013/10/10
- [Qemu-devel] [PULL 07/17] tcg: Put target helper data into an array., Richard Henderson, 2013/10/10
- [Qemu-devel] [PULL 08/17] tcg: Add tcg-runtime.c helpers to all_helpers, Richard Henderson, 2013/10/10
- [Qemu-devel] [PULL 10/17] tcg-aarch64: Update to helper_ret_*_mmu routines, Richard Henderson, 2013/10/10
- [Qemu-devel] [PULL 09/17] tcg: Merge tcg_register_helper into tcg_context_init, Richard Henderson, 2013/10/10
- [Qemu-devel] [PULL 11/17] exec: Delete is_tcg_gen_code and GETRA_EXT, Richard Henderson, 2013/10/10
- [Qemu-devel] [PULL 12/17] tcg: Add tcg-be-null.h, Richard Henderson, 2013/10/10
- [Qemu-devel] [PULL 13/17] tcg: Add tcg-be-ldst.h, Richard Henderson, 2013/10/10
- [Qemu-devel] [PULL 14/17] configure: Remove CONFIG_QEMU_LDST_OPTIMIZATION, Richard Henderson, 2013/10/10
- [Qemu-devel] [PULL 15/17] tcg: Add TCGMemOp,
Richard Henderson <=
- [Qemu-devel] [PULL 16/17] tcg: Add qemu_ld_st_i32/64, Richard Henderson, 2013/10/10
- [Qemu-devel] [PULL 17/17] exec: Add both big- and little-endian memory helpers, Richard Henderson, 2013/10/10