Denis Drakhnia
3d824320ba
e2k: add more cpu models and set idr.mdl
2024-04-25 20:09:00 +03:00
Denis Drakhnia
0df54fb097
e2k: write tags only if enabled
2024-04-25 20:09:00 +03:00
Denis Drakhnia
624fe3175c
e2k: gen exception if call wbs is greater than wsz
2024-04-25 20:08:59 +03:00
Denis Drakhnia
670c781327
linux-user/e2k: do syscall only if nr is valid i32
2024-04-25 20:08:59 +03:00
Denis Drakhnia
d4961a8a3e
e2k: refactor GPR reads and writes
2024-04-25 20:08:59 +03:00
Denis Drakhnia
39039c5554
linux-user/e2k: do nothing if wsz is zero in syscall
2024-04-25 20:08:59 +03:00
Denis Drakhnia
a84db39085
e2k: v9.0.0 fixes
2024-04-25 20:07:04 +03:00
Denis Drakhnia
8b2746e8ca
linux-user/e2k: save initial frame for gdb.
2022-06-10 11:48:20 +03:00
Denis Drakhnia
48290cb80c
e2k: Update get/set state regs.
...
Signed-off-by: Denis Drakhnya <numas13@gmail.com>
2022-06-10 11:48:20 +03:00
Denis Drakhnia
17be44b21b
e2k: Use one large array for registers.
...
Previously was used two separate arrays for low and
high halves of a register. Now we can pass direct
pointer to a register into helpers instead of copying
the halves into a temporary buffer and pass pointer to
that buffer.
Signed-off-by: Denis Drakhnya <numas13@gmail.com>
2022-06-10 11:48:19 +03:00
Denis Drakhnia
e440ebc3db
e2k: Basic impl of e2k32-linux-user.
...
Fix target_stat64 field types in 32-bit mode.
Basic impl of getpl.
Basic impl of ldgd{b,h,w,d}.
Basic impl of stgd{b,h,w,d}.
Add e2k exceptions.
Add Dynamic hw stacks expansion.
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
26b9e9a1e4
e2k: Impl basic unix signals support.
2022-06-10 11:48:19 +03:00
Denis Drakhnia
7c4ff94e5f
e2k: Impl basic init thread support.
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
0b7f461be7
e2k: Remove pshtp and window base.
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
06df1e9168
e2k: Impl e2k_longjmp2 syscall.
2022-06-10 11:48:16 +03:00
Denis Drakhnia
ad6bc687e4
target: e2k: HACK: Tag storage for procedure stack.
2022-06-10 11:48:15 +03:00
Denis Drakhnia
381868f71a
target: e2k: Return aligned pointer from getsp.
2022-06-10 11:48:15 +03:00
Denis Drakhnia
83e2503867
target: e2k: HACK: Add stack for USD registers.
...
CPU must restore `USD` after calls but I don't know how it should be implemented.
2022-06-10 11:48:15 +03:00
Denis Drakhnia
57b3469cda
target: e2k: Impl speculative execution.
2022-06-10 11:48:13 +03:00
Denis Drakhnia
281f6af159
target: e2k: Remove unneeded ip change in syscall.
2022-06-10 11:48:13 +03:00
Denis Drakhnia
db10b6d8a4
target: e2k: Reorg reg file.
2022-06-10 11:48:13 +03:00
Denis Drakhnia
d2646eb82b
target: e2k: Update TODO messages.
2022-06-10 11:48:13 +03:00
Denis Drakhnia
f37d246c90
target: e2k: Make gdb happier.
2022-06-10 11:48:13 +03:00
Denis Drakhnia
5601f6e45a
target: e2k: Reorg wd.
2022-06-10 11:48:13 +03:00
Denis Drakhnia
9105937fd9
target: e2k: Reord pcsp.
2022-06-10 11:48:13 +03:00
Denis Drakhnia
ab13f761a2
target: e2k: Reorg psp.
2022-06-10 11:48:13 +03:00
Denis Drakhnia
468277c315
target: e2k: Remove helper unimpl.
2022-06-10 11:48:12 +03:00
Denis Drakhnia
938d78d836
target: e2k: Fix load instrs.
2022-06-10 11:48:12 +03:00
Denis Drakhnia
d05841bd16
target: e2k: Fix ct in gdb.
2022-06-10 11:48:12 +03:00
Denis Drakhnia
c3e5a53689
target: e2k: Read NR in gdb.
2022-06-10 11:48:12 +03:00
Denis Drakhnia
c40cc30f26
target: e2k: Reorg + basic gdb debugging.
2022-06-10 11:48:12 +03:00
Alibek Omarov
9cf42881f6
target: e2k: initial gdb support
2022-06-10 11:48:12 +03:00
Denis Drakhnia
ff2d059db8
target: e2k: Add procedure stack.
2022-06-10 11:48:11 +03:00
Denis Drakhnia
2eba228ecb
target: e2k: Rotate window registers in syscall.
2022-06-10 11:48:11 +03:00
Denis Drakhnia
0198775b67
target: e2k: Add basic call (without saving regs).
2022-06-10 11:48:11 +03:00
Denis Drakhnia
54feb6fbe3
target: e2k: Fix bugs.
2022-06-10 11:48:11 +03:00
Denis Drakhnia
37acf287ad
target: e2k: Impl rotated pregs.
2022-06-10 11:48:11 +03:00
Denis Drakhnia
725d1d5acf
target: e2k: Add basic syscall support.
2022-06-10 11:48:11 +03:00
Denis Drakhnia
11c80f0227
target: e2k: Try to impl syscall.
2022-06-10 11:48:11 +03:00
Denis Drakhnia
ff5127d36a
target: e2k: unpack long instructions.
2022-06-10 11:48:10 +03:00
Alibek Omarov
d52c541b62
linux-user: add loading ELFs for e2kg
2022-06-10 11:48:10 +03:00