Commit Graph

84 Commits

Author SHA1 Message Date
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