diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-03-16 14:34:44 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-03-16 14:34:44 +0100 |
| commit | c2a0d7bc32ee6068c8b99e3be67c112678c4d517 (patch) | |
| tree | 5c6ef82629e37bf74e69c1c9d22d0adfcf1aa24c /src/emu | |
| parent | 34c1fec8f7f0d8d5f6655ad2ccedb3a62467628b (diff) | |
| download | box64-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-x | src/emu/x64emu_private.h | 17 |
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) |