Denis Drakhnia
bd5206f3dd
e2k: add gen_staaq
2024-04-25 20:09:00 +03:00
Denis Drakhnia
446abed271
e2k: add helper getf{s,d}_v5
2024-04-25 20:09:00 +03:00
Denis Drakhnia
5e41d8106d
e2k: remove aau state from global mem
2024-04-25 20:09:00 +03:00
Denis Drakhnia
df03a68a6d
e2k: use separate array for global regs
2024-04-25 20:09:00 +03:00
Denis Drakhnia
297d302688
e2k: optimize helper probe_{read,write}_access for user targets
2024-04-25 20:09:00 +03:00
Denis Drakhnia
f1714370c4
e2k: allow getpl write to ctpr
2024-04-25 20:09:00 +03:00
Denis Drakhnia
83b4e4af52
e2k: poison store
2024-04-25 20:09:00 +03:00
Denis Drakhnia
8f19d2e3fa
e2k: movep tags
2024-04-25 20:09:00 +03:00
Denis Drakhnia
6e72472145
e2k: poison result
2024-04-25 20:09:00 +03:00
Denis Drakhnia
9d869d8b4e
e2k: refactor gen_advance_loop_counters
2024-04-25 20:08:59 +03:00
Denis Drakhnia
7458cfadc2
e2k: gettagd write 32-bit result
2024-04-25 20:08:59 +03:00
Denis Drakhnia
bec013fab1
e2k: check mrgc tag
2024-04-25 20:08:59 +03:00
Denis Drakhnia
ca5b13ca4e
e2k: check tag for ct qual
2024-04-25 20:08:59 +03:00
Denis Drakhnia
9044a3bb28
e2k: check predicate registers tags
2024-04-25 20:08:59 +03:00
Denis Drakhnia
b7aa8589e9
e2k: track writes to ctprs in disas context
2024-04-25 20:08:59 +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
0db57d1579
e2k: add gen_rrs
2024-04-25 20:08:59 +03:00
Denis Drakhnia
5afa8efc6e
e2k: cpu always spill/fill 32 bytes for every 2 regs
2024-04-25 20:08:59 +03:00
Denis Drakhnia
e381e6d3f5
e2k: remove delayed tag check
2024-04-25 20:08:59 +03:00
Denis Drakhnia
b3baf0539d
e2k: refactor gen stubs
2024-04-25 20:08:59 +03:00
Denis Drakhnia
8a6ee164b5
e2k: remove unused gen_result_init
2024-04-25 20:08:59 +03:00
Denis Drakhnia
6dcaff62e5
e2k: move complex getf{s,d} to helper and optimize for literal
2024-04-25 20:08:59 +03:00
Denis Drakhnia
36ef654ea1
e2k: optimize sxt for imm5 in src1
2024-04-25 20:08:59 +03:00
Denis Drakhnia
1a5aeee39a
e2k: refactor preg read/write
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
55278b45c5
e2k: use Int128 for X/QP ops
2024-04-25 20:08:59 +03:00
Denis Drakhnia
b78874bdb0
e2k: refactor alop src generation
2024-04-25 20:08:59 +03:00
Denis Drakhnia
d23cf508ba
e2k: gen return only for ctpr3
2024-04-25 20:08:59 +03:00
Denis Drakhnia
335042809b
e2k: illop if pc is not aligned by 8 bytes
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
0cd2e9c69b
e2k: do not dissabmle fake kernel code
...
Signed-off-by: Denis Drakhnia <numas13@gmail.com>
2022-09-07 21:34:01 +03:00
Denis Drakhnia
fb9330bd0e
e2k: Add cctop* insns.
...
Signed-off-by: Denis Drakhnia <numas13@gmail.com>
2022-06-10 11:48:20 +03:00
Denis Drakhnia
bcc04e0c5b
e2k: Increase the number of NR to 224.
...
Signed-off-by: Denis Drakhnya <numas13@gmail.com>
2022-06-10 11:48:20 +03:00
Denis Drakhnia
0a0655109a
e2k: Gen illopc for mirrored ld+st.
...
Signed-off-by: Denis Drakhnya <numas13@gmail.com>
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
21ff5cbef9
e2k: Remove syscall helper.
...
Signed-off-by: Denis Drakhnya <numas13@gmail.com>
2022-06-10 11:48:20 +03:00
Denis Drakhnia
c8ed74f626
e2k: Add tags and force_save_alc_dst properties.
...
Signed-off-by: Denis Drakhnya <numas13@gmail.com>
2022-06-10 11:48:20 +03:00
Denis Drakhnia
d84636d73a
e2k: Restore basic tags support.
...
Disabled at compile time.
2022-06-10 11:48:20 +03:00
Denis Drakhnia
0c634e952b
e2k: Do not generate loop_end for stores outside of loops.
...
Signed-off-by: Denis Drakhnya <numas13@gmail.com>
2022-06-10 11:48:20 +03:00
Denis Drakhnia
52e67df3a1
e2k: Reorg usage of registers.
...
Till then we had separate stage to write results of
an operations to registers. Now operations will write
result immediately to a destination register. Registers
will be saved to a temporary location if following
operations in a bundle must read them.
The change elliminates additional branches for
conditional operations in the write stage and reduces
data movements.
Signed-off-by: Denis Drakhnya <numas13@gmail.com>
2022-06-10 11:48:20 +03:00
Denis Drakhnia
ba89b350dc
e2k: signals: Save and restore more state.
...
Signed-off-by: Denis Drakhnya <numas13@gmail.com>
2022-06-10 11:48:20 +03:00
Denis Drakhnia
c03d91b7c0
e2k: Fix read and write probe access.
...
Signed-off-by: Denis Drakhnya <numas13@gmail.com>
2022-06-10 11:48:19 +03:00
Denis Drakhnia
6cbcdc4d5c
e2k: Implement basic v6 support.
...
Not tested on a real hardware.
Signed-off-by: Denis Drakhnya <numas13@gmail.com>
2022-06-10 11:48:19 +03:00
Denis Drakhnia
8f4de9d485
e2k: Implement basic v5 support.
...
Add gdb xml files for e2k.
Tags are partially disabled for better performance.
Signed-off-by: Denis Drakhnya <numas13@gmail.com>
2022-06-10 11:48:19 +03:00
Denis Drakhnia
6fb98e718e
e2k: Move TCG translation parts into single file.
...
The TCG translation was splitted into multiple files and
it was painful because it has a lot of cross references.
Reorg FX helpers.
Signed-off-by: Denis Drakhnya <numas13@gmail.com>
2022-06-10 11:48:19 +03:00
Denis Drakhnia
b0a1af39c6
e2k: Add a fake atomic execution.
...
QEMU has cpu_exec_step_atomic function to run
one instruction in an exclusive mode but we need
to execute multiple instructions in that mode.
I don't want to modify the function.
The solution provides a correct execution of
atomic operations like on real CPU but needs
more testing to prove that it works correctly
in all cases.
Signed-off-by: Denis Drakhnya <numas13@gmail.com>
2022-06-10 11:48:19 +03:00
Denis Drakhnia
374e658eb1
e2k: Add access_hw_stacks and backtrace syscalls.
...
Special system calls for managing hardware stacks.
Required for C++ exceptions.
Signed-off-by: Denis Drakhnya <numas13@gmail.com>
2022-06-10 11:48:19 +03:00
Denis Drakhnia
f49a9d8df0
e2k: Fix incorrect initialization of mlock.
...
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
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