Commit Graph

283 Commits

Author SHA1 Message Date
Denis Drakhnia ab620f7a2b e2k: Delete redundant unimplemented messages.
DAM has not been yet implemented. We always generate
a jump to a fixing code. All these messages are redundant.

Signed-off-by: Denis Drakhnya <numas13@gmail.com>
2022-06-10 11:48:19 +03:00
Denis Drakhnia e404c06a2d e2k: Fix syscall restart.
We cannot just change the IP address in E2K to restart
the instruction because the same register can be read
and written in the same instruction (and many more
situations), but we can create a fake syscall instruction
and restart it.

Signed-off-by: Denis Drakhnya <numas13@gmail.com>
2022-06-10 11:48:19 +03:00
Denis Drakhnia 5e66da5f7d e2k: Delete top CRs from cpu state.
Signed-off-by: Denis Drakhnya <numas13@gmail.com>
2022-06-10 11:48:19 +03:00
Denis Drakhnia 05304bd1f3 e2k: Fix compiler warnings.
Remove unused static functions.
Replace a misused not operator by bitwise not.
2022-06-10 11:48:19 +03:00
Denis Drakhnia 26b9e9a1e4 e2k: Impl basic unix signals support. 2022-06-10 11:48:19 +03:00
Denis Drakhnia 9c1321402e e2k: Fix getf{s,d} ops. 2022-06-10 11:48:18 +03:00
Denis Drakhnia 7237457c44 e2k: Add stub for pref op. 2022-06-10 11:48:18 +03:00
Denis Drakhnia 54c4312744 e2k: Add packed float simple and combined ops. 2022-06-10 11:48:18 +03:00
Denis Drakhnia f73e828f75 e2k: Fix fcomb_check. 2022-06-10 11:48:18 +03:00
Denis Drakhnia 8a56f792b7 e2k: Probe AAU read access once per page. 2022-06-10 11:48:18 +03:00
Denis Drakhnia 00502466f2 e2k: Always ignore lock load. 2022-06-10 11:48:18 +03:00
Denis Drakhnia b692d4c596 e2k: Fix decoding fcomb and pshufb. 2022-06-10 11:48:18 +03:00
Denis Drakhnia 177922ca64 e2k: Split ALC decode/generate stages. 2022-06-10 11:48:18 +03:00
Denis Drakhnia 99280ddade e2k: Fix movxc. 2022-06-10 11:48:18 +03:00
Denis Drakhnia 00a4284abb e2k: Reorg fcomb ops. 2022-06-10 11:48:18 +03:00
Denis Drakhnia 1caf8cf356 e2k: Reorg icomb ops. 2022-06-10 11:48:18 +03:00
Alibek Omarov dd64dfa134 e2k: %pfpfr write stubs 2022-06-10 11:48:18 +03:00
Alibek Omarov 400947bba3 e2k: implement fsqrttd/fxsqrttxx through ignoring what fsqrtid/fxsqrt{i,u}xx does 2022-06-10 11:48:18 +03:00
Denis Drakhnia 65675ac1cf e2k: Check address before MOVA memory read. 2022-06-10 11:48:18 +03:00
Denis Drakhnia cf04412feb e2k: Do not align mova addr. 2022-06-10 11:48:18 +03:00
Denis Drakhnia a37964a9d3 e2k: Fix fcomb operand ordering. 2022-06-10 11:48:18 +03:00
Denis Drakhnia b166b260da e2k: Impl neg src2 in fscale{s,d} and fxscalesx. 2022-06-10 11:48:18 +03:00
Denis Drakhnia 399416a0d7 e2k: Allow to execute frcps, fsqrts, frsqrts. 2022-06-10 11:48:18 +03:00
Denis Drakhnia f018f02a5b e2k: Add movt{,c}{s,d,q} ops. 2022-06-10 11:48:18 +03:00
Denis Drakhnia 6277820c04 e2k: Add fscale{s,d} and fxscalesx ops. 2022-06-10 11:48:18 +03:00
Denis Drakhnia 7c4ff94e5f e2k: Impl basic init thread support. 2022-06-10 11:48:18 +03:00
Alibek Omarov 73b99e75c2 e2k: add fxtoi{s,d}{,tr} and i{s,d}tofx instructions 2022-06-10 11:48:18 +03:00
Alibek Omarov ac964b4826 e2k: add stringified opcodes 2022-06-10 11:48:18 +03:00
Denis Drakhnia 732033c341 e2k: Fix mova{b,h,w} reg tag write. 2022-06-10 11:48:18 +03:00
Denis Drakhnia 9354896d9c e2k: Fix insfd. 2022-06-10 11:48:18 +03:00
Denis Drakhnia 2536956da6 e2k: Fix getf{s,d}. 2022-06-10 11:48:18 +03:00
Denis Drakhnia 7dde6cc100 e2k: ecnt must not decrement if vlc is not set. 2022-06-10 11:48:18 +03:00
Denis Drakhnia 38ef61024d e2k: Fix incorrect epilogue counter decrement. 2022-06-10 11:48:18 +03:00
Denis Drakhnia 9e8c927036 e2k: Add delayed window bounds static/dynamic checks. 2022-06-10 11:48:18 +03:00
Alibek Omarov f56cad7923 e2k: implement detecting ISA version by ELF flags, throw an error for protected mode and x86 recompiled binaries for now 2022-06-10 11:48:18 +03:00
Denis Drakhnia 23a0139ee6 e2k: Remove control.c 2022-06-10 11:48:17 +03:00
Denis Drakhnia 0b7f461be7 e2k: Remove pshtp and window base. 2022-06-10 11:48:17 +03:00
Denis Drakhnia 9e79810b32 e2k: Fix incorrect restore from a breakpoint. 2022-06-10 11:48:17 +03:00
Alibek Omarov 9f39901e0a e2k: implement plog_* instructions 2022-06-10 11:48:17 +03:00
Alibek Omarov 380a6384e0 e2k: add pf{mul,add,sub,div,min,max}d instructions 2022-06-10 11:48:17 +03:00
Denis Drakhnia 3b03e60115 e2k: Disable debug restore checks if not needed.
Do not check illtag if not needed.
2022-06-10 11:48:17 +03:00
Denis Drakhnia 89aa3a80c1 e2k: Remove {GET,SET}_FIELD macros. 2022-06-10 11:48:17 +03:00
Denis Drakhnia 53bb2d49eb e2k: Small performance improvements.
Do not initialize alops_map for every tb.
Reduced alops size.
Delayed window bounds checks.
2022-06-10 11:48:17 +03:00
Denis Drakhnia 5aa3d47668 e2k: Fix decoding of ALES2/5. 2022-06-10 11:48:17 +03:00
Denis Drakhnia 562df00e27 e2k: Aaincr must be executed outside of the staa pred cond. 2022-06-10 11:48:17 +03:00
Denis Drakhnia 28aafb053c e2k: Restore usage of env CRs.
Fixes syscall e2k_longjmp2.
2022-06-10 11:48:17 +03:00
Denis Drakhnia ce88afe251 e2k: Add movx{,a,c} instr. 2022-06-10 11:48:17 +03:00
Denis Drakhnia d37ee639b1 e2k: Add {u,s}{div,mod}x instrs. 2022-06-10 11:48:17 +03:00
Denis Drakhnia acc2f18f97 e2k: Add mpsadbh instr. 2022-06-10 11:48:17 +03:00
Denis Drakhnia d2b6bb3f9c e2k: Add phminposuh instr. 2022-06-10 11:48:17 +03:00