|
@@ -94,6 +94,19 @@ typedef struct QEMU_PACKED {
|
|
|
DebugFrameFDEHeader fde;
|
|
|
} DebugFrameHeader;
|
|
|
|
|
|
+typedef struct TCGLabelQemuLdst {
|
|
|
+ bool is_ld; /* qemu_ld: true, qemu_st: false */
|
|
|
+ MemOpIdx oi;
|
|
|
+ TCGType type; /* result type of a load */
|
|
|
+ TCGReg addrlo_reg; /* reg index for low word of guest virtual addr */
|
|
|
+ TCGReg addrhi_reg; /* reg index for high word of guest virtual addr */
|
|
|
+ TCGReg datalo_reg; /* reg index for low word to be loaded or stored */
|
|
|
+ TCGReg datahi_reg; /* reg index for high word to be loaded or stored */
|
|
|
+ const tcg_insn_unit *raddr; /* addr of the next IR of qemu_ld/st IR */
|
|
|
+ tcg_insn_unit *label_ptr[2]; /* label pointers to be updated */
|
|
|
+ QSIMPLEQ_ENTRY(TCGLabelQemuLdst) next;
|
|
|
+} TCGLabelQemuLdst;
|
|
|
+
|
|
|
static void tcg_register_jit_int(const void *buf, size_t size,
|
|
|
const void *debug_frame,
|
|
|
size_t debug_frame_size)
|