about summary refs log tree commit diff stats
path: root/src/emu
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-03-16 14:34:44 +0100
committerptitSeb <sebastien.chev@gmail.com>2021-03-16 14:34:44 +0100
commitc2a0d7bc32ee6068c8b99e3be67c112678c4d517 (patch)
tree5c6ef82629e37bf74e69c1c9d22d0adfcf1aa24c /src/emu
parent34c1fec8f7f0d8d5f6655ad2ccedb3a62467628b (diff)
downloadbox64-c2a0d7bc32ee6068c8b99e3be67c112678c4d517.tar.gz
box64-c2a0d7bc32ee6068c8b99e3be67c112678c4d517.zip
[DYNAREC] Added a few more opcodes, some arm64_printer opcodes, and made sure it works
Diffstat (limited to 'src/emu')
-rwxr-xr-xsrc/emu/x64emu_private.h17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/emu/x64emu_private.h b/src/emu/x64emu_private.h
index 05570965..144a6f33 100755
--- a/src/emu/x64emu_private.h
+++ b/src/emu/x64emu_private.h
@@ -30,14 +30,15 @@ typedef struct x64emu_s {
 	x87flags_t  sw;
 	uint32_t    top;        // top is part of sw, but it's faster to have it separatly
     int         fpu_stack;
+    uint32_t    mxcsr;
 	fpu_round_t round;
     fpu_ld_t    fpu_ld[8]; // for long double emulation / 80bits fld fst
     fpu_ll_t    fpu_ll[8]; // for 64bits fild / fist sequence
 	fpu_p_reg_t p_regs[8];
     // sse
     sse_regs_t  xmm[16];
-    uint32_t    mxcsr;
     // defered flags
+    int         dummy1;     // to align on 64bits with df
     defered_flags_t df;
     uint64_t    op1;
     uint64_t    op2;
@@ -50,6 +51,13 @@ typedef struct x64emu_s {
     uint32_t    segs[6];        // only 32bits value?
     uintptr_t   segs_offs[6];   // computed offset associate with segment
     uint64_t    segs_serial[6];  // are seg offset clean (not 0) or does they need to be re-computed (0)? For GS, serial need to be the same as context->sel_serial
+    // parent context
+    box64context_t *context;
+    // cpu helpers
+    reg64_t     zero;
+    reg64_t     *sbiidx[16];
+    // scratch stack, used for alignement of double and 64bits ints on arm. 200 elements should be enough
+    uint64_t    scratch[200];
     // emu control
     int         quit;
     int         error;
@@ -58,13 +66,6 @@ typedef struct x64emu_s {
     int         exit;
     int         quitonlongjmp;  // quit if longjmp is called
     int         longjmp;        // if quit because of longjmp
-    // parent context
-    box64context_t *context;
-    // cpu helpers
-    reg64_t     zero;
-    reg64_t     *sbiidx[16];
-    // scratch stack, used for alignement of double and 64bits ints on arm. 200 elements should be enough
-    uint64_t    scratch[200];
     // local stack, do be deleted when emu is freed
     void*       stack2free; // this is the stack to free (can be NULL)
     void*       init_stack; // initial stack (owned or not)