Denis Drakhnia
5e41d8106d
e2k: remove aau state from global mem
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
6dcaff62e5
e2k: move complex getf{s,d} to helper and optimize for literal
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
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
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
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
26b9e9a1e4
e2k: Impl basic unix signals support.
2022-06-10 11:48:19 +03:00
Denis Drakhnia
54c4312744
e2k: Add packed float simple and combined ops.
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
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
399416a0d7
e2k: Allow to execute frcps, fsqrts, frsqrts.
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
Alibek Omarov
73b99e75c2
e2k: add fxtoi{s,d}{,tr} and i{s,d}tofx instructions
2022-06-10 11:48:18 +03:00
Denis Drakhnia
23a0139ee6
e2k: Remove control.c
2022-06-10 11:48:17 +03:00
Alibek Omarov
9f39901e0a
e2k: implement plog_* instructions
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
Denis Drakhnia
2e0f2dce66
e2k: Add pmulhrsh instr.
2022-06-10 11:48:17 +03:00
Denis Drakhnia
9440e28b68
e2k: Add psign{b,h,w} instrs.
2022-06-10 11:48:17 +03:00
Denis Drakhnia
780ccf14ab
e2k: Add phadd{,s}{h,w} and phsub{,s}{h,w} instrs.
2022-06-10 11:48:17 +03:00
Denis Drakhnia
e33a9d258b
e2k: Add packuswh instr.
2022-06-10 11:48:17 +03:00
Denis Drakhnia
8c318f6306
e2k: Add pmulubhh instr.
2022-06-10 11:48:17 +03:00
Denis Drakhnia
0b7c8d2650
e2k: Add pshufh instr.
2022-06-10 11:48:17 +03:00
Denis Drakhnia
8606e02150
e2k: Add punpck{l,h}{bh,hw,wd} instrs.
2022-06-10 11:48:17 +03:00
Denis Drakhnia
06471fe869
e2k: Add pshufw instr.
2022-06-10 11:48:17 +03:00
Denis Drakhnia
dc9b17e91a
e2k: Add packsshb, packushb and packsswh instrs.
2022-06-10 11:48:17 +03:00
Denis Drakhnia
b9d7c5874a
e2k: Add pmovmskps and pmovmskpd instrs.
2022-06-10 11:48:17 +03:00
Denis Drakhnia
7fa077d557
e2k: Add pmulhh, pmulhuh and pmullh instrs.
2022-06-10 11:48:17 +03:00
Denis Drakhnia
e777b64356
e2k: Add pavgus{b,h} instrs.
2022-06-10 11:48:17 +03:00
Denis Drakhnia
83c06a7807
e2k: Add psadbw instr.
2022-06-10 11:48:17 +03:00
Denis Drakhnia
0a7e3625e9
e2k: Add pmadd{h,ubsh} instrs.
2022-06-10 11:48:17 +03:00
Denis Drakhnia
7cb77dbe33
e2k: Add psra{h,w} instrs.
2022-06-10 11:48:16 +03:00
Denis Drakhnia
a074d1d1ad
e2k: Add packed shift inters.
2022-06-10 11:48:16 +03:00
Denis Drakhnia
d233d8afa5
e2k: Add packed add and sub using saturation.
2022-06-10 11:48:16 +03:00
Denis Drakhnia
3fb4bcec13
e2k: Add pcmp{eq,gt}{b,h,w,d} instrs.
2022-06-10 11:48:16 +03:00
Alibek Omarov
1a73a97771
e2k: add fstoifs and fdtoifd instrs
2022-06-10 11:48:16 +03:00
Alibek Omarov
3e98a47b0a
e2k: add whole class of packed min & max
2022-06-10 11:48:16 +03:00
Alibek Omarov
27defe956a
e2k: partially refactor helper header
2022-06-10 11:48:16 +03:00
Alibek Omarov
6f463100cc
e2k: implement f{,x}cmp{op}{s,d,x}f instructions
2022-06-10 11:48:16 +03:00
Alibek Omarov
cee5be3c9c
e2k: add fxcmp{op}{type}b instructions
2022-06-10 11:48:16 +03:00
Denis Drakhnia
60faf17466
target: e2k: HACK: Unlock mem addr forces %MLOCK condition.
2022-06-10 11:48:16 +03:00
Denis Drakhnia
126b8b310c
target: e2k: Add basic FX instrs.
2022-06-10 11:48:15 +03:00
Alibek Omarov
b888c75194
target: e2k: add conversion instructions, handle float comparison with predicate result instrs
2022-06-10 11:48:15 +03:00