Commit Graph

9641 Commits

Author SHA1 Message Date
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 0335773d70 e2k: Add pandd, pandnd, pord and pxord 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 c559bfb032 e2k: Add quad shifts instrs with 8-bit immediate. 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 034ceec4e7 e2k: Add padd{b,h,w} and psub{b,h,w} instrs. 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
Denis Drakhnia e4e22e089c e2k: Prepare to remove CRs from env. 2022-06-10 11:48:16 +03:00
Denis Drakhnia 06df1e9168 e2k: Impl e2k_longjmp2 syscall. 2022-06-10 11:48:16 +03:00
Alibek Omarov db26409a33 e2k: fix dumb mistake in fcomb 64 instructions 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
Denis Drakhnia 142104fd89 e2k: Reorg alc. 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 7f3dbf0c0d e2k: elbrus by default have extended precision, set it 2022-06-10 11:48:16 +03:00
Denis Drakhnia 5f665e70ae e2k: Decode/execute ct cond after alc execution. 2022-06-10 11:48:16 +03:00
Denis Drakhnia dae0735e36 e2k: Fix address generation in mova instrs. 2022-06-10 11:48:16 +03:00
Denis Drakhnia 67413ad340 e2k: Fix fcmp{op}{s,d}b instructions. 2022-06-10 11:48:16 +03:00
Denis Drakhnia b9691deedb e2k: Change pred type to TCGv_i32 in e2k_gen_store_preg. 2022-06-10 11:48:16 +03:00
Denis Drakhnia fb1c8adcc7 e2k: Invalidate mlock after each instruction. 2022-06-10 11:48:16 +03:00
Denis Drakhnia 6633770b16 e2k: Fix operands order in icomb. 2022-06-10 11:48:16 +03:00
Denis Drakhnia 7a667b7ba5 target: e2k: Add short, ext, ext1, ext2 alops table. 2022-06-10 11:48:16 +03:00
Alibek Omarov 3607137905 e2k: add fcmp{op} instructions that write into normal register 2022-06-10 11:48:16 +03:00
Denis Drakhnia 1c16338c6d target: e2k: Correctly save/restore wdbl. 2022-06-10 11:48:16 +03:00
Denis Drakhnia 94f7599a54 target: e2k: Execute load on flush cache MAS. 2022-06-10 11:48:16 +03:00
Alibek Omarov ed20953a35 e2k: fpu: implement float combined instrs 2022-06-10 11:48:16 +03:00
Alibek Omarov 66293fd843 e2k: helper_fpu: fix various compiler warnings 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 797c661d91 target: e2k: Rename alc execute fns. 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
Denis Drakhnia 3796f54bad target: e2k: Add movfi/movif instrs. 2022-06-10 11:48:15 +03:00
Denis Drakhnia 5883b53088 target: e2k: Move fpcr/fpsr to state reg helpers. 2022-06-10 11:48:15 +03:00
Denis Drakhnia d5737b0927 target: e2k: Add get_src{1,2}_i80 funcs. 2022-06-10 11:48:15 +03:00
Denis Drakhnia c05dcc12d4 target: e2k: Add xreg read/write functions. 2022-06-10 11:48:15 +03:00
Denis Drakhnia 1a52b6054b target: e2k: Add temps for FX/SIMD ops. 2022-06-10 11:48:15 +03:00
Denis Drakhnia 8881486b62 target: e2k: Remove rptr and tptr from state. 2022-06-10 11:48:15 +03:00
Alibek Omarov c52d9f9af9 target: e2k: set disas isa version 2022-06-10 11:48:15 +03:00
Alibek Omarov 2c4f847a0f target: e2k: fdiv has opc2 == 1, as well as additional fadd, fsub, fmul on e2k-v4. Fix SIGILL not generated when opce2 unrecognized for float conversion instructions 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
Alibek Omarov ebb2b2485f target: e2k: add basic fpu instructions 2022-06-10 11:48:15 +03:00
Denis Drakhnia 21b39b8206 target: e2k: Delete hack for saving USD registers on proc call/ret. 2022-06-10 11:48:15 +03:00
Denis Drakhnia 245359c6f6 target: e2k: Add psubd instr. 2022-06-10 11:48:15 +03:00
Denis Drakhnia a2ac544dde target: e2k: Fix address generation in staa. 2022-06-10 11:48:15 +03:00
Denis Drakhnia bcc311b773 target: e2k: Fix udivs exception hack. 2022-06-10 11:48:15 +03:00
Denis Drakhnia 6496153694 target: e2k: Impl restore_state_to_opc. 2022-06-10 11:48:15 +03:00
Denis Drakhnia 1dd030c321 target: e2k: Add e2k_todo{,_illop} macros. 2022-06-10 11:48:15 +03:00
Denis Drakhnia 4646e43803 target: e2k: Add tlb_fill handler. 2022-06-10 11:48:15 +03:00
Denis Drakhnia 8143c8c7e8 target: e2k: Clear registers in new allocated range of window. 2022-06-10 11:48:15 +03:00
Denis Drakhnia 4a13be8f68 target: e2k: Fix incorrect registers view in gdb after exception. 2022-06-10 11:48:15 +03:00
Denis Drakhnia 8cac70df0e target: e2k: Fix gdb run till exit from func. 2022-06-10 11:48:15 +03:00
Denis Drakhnia d402c52f4a target: e2k: %cr0 must hold pregs and ip of previous procedure. 2022-06-10 11:48:15 +03:00
Denis Drakhnia 37b4ee19b0 target: e2k: Remove unneeded regs array in TCG state. 2022-06-10 11:48:15 +03:00
Denis Drakhnia ad6bc687e4 target: e2k: HACK: Tag storage for procedure stack. 2022-06-10 11:48:15 +03:00
Denis Drakhnia 728e400620 target: e2k: Save PC before reading it in rr{s,d}. 2022-06-10 11:48:15 +03:00
Denis Drakhnia 8028167de5 target: e2k: Select tag for taken source in merge{s,d}. 2022-06-10 11:48:15 +03:00
Denis Drakhnia 5b444c9356 target: e2k: Add dbl window modifier. 2022-06-10 11:48:15 +03:00
Denis Drakhnia 2446fbf44c target: e2k: mova{b,h,w} must write to reg64. 2022-06-10 11:48:15 +03:00
Denis Drakhnia 3497bb27c2 target: e2k: Impl multiple pred for ALC exec. 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 42776dbe37 target: e2k: Add cmp{o,s,p}{s,d} instrs.
Fix cmpandp{s,d}b.
2022-06-10 11:48:15 +03:00
Denis Drakhnia 5bdd9dcd3d target: e2k: Do not account %predN for ct in loop prologue. 2022-06-10 11:48:15 +03:00
Denis Drakhnia 64ac87f915 target: e2k: Add %pcntN condition. 2022-06-10 11:48:15 +03:00
Denis Drakhnia bd027ff219 target: e2k: Force ps pop in FX mode. 2022-06-10 11:48:15 +03:00
Denis Drakhnia 9e1baaca2a target: e2k: Ignore unimplemented mas opc in store. 2022-06-10 11:48:15 +03:00
Denis Drakhnia db78528419 target: e2k: Add pmovmskb instr. 2022-06-10 11:48:14 +03:00
Denis Drakhnia 2543a5cc12 target: e2k: Add p{min,max}{ub,sh} instrs. 2022-06-10 11:48:14 +03:00
Denis Drakhnia b979c52ac5 target: e2k: Add staaq instr. 2022-06-10 11:48:14 +03:00
Denis Drakhnia 2d0cb97529 target: e2k: Execute ALES2/5 together with others channels. 2022-06-10 11:48:14 +03:00
Denis Drakhnia 4a572f8263 target: e2k: Add xregs. 2022-06-10 11:48:14 +03:00
Denis Drakhnia a19227acd9 target: e2k: Log msg if wd.fx is setted. 2022-06-10 11:48:14 +03:00
Denis Drakhnia 9662877725 target: e2k: Do not save IP on every instruction. 2022-06-10 11:48:14 +03:00
Denis Drakhnia 65ffbc6d30 target: e2k: Reading %ilcr for gdb. 2022-06-10 11:48:14 +03:00
Denis Drakhnia 9e88287e16 target: e2k: Fix setting ctpr.ipd for *disp instr. 2022-06-10 11:48:14 +03:00
Denis Drakhnia d66487e181 target: e2k: Dec store rem in loop mode. 2022-06-10 11:48:14 +03:00
Denis Drakhnia 1c03415d9e target: e2k: Restricted loop_mode implementation. 2022-06-10 11:48:14 +03:00
Denis Drakhnia 0f874d1b0b target: e2k: Fix reading aadN from gdb. 2022-06-10 11:48:14 +03:00
Denis Drakhnia 31e084720a target: e2k: Add basic mova{b,h,w,d} impl. 2022-06-10 11:48:14 +03:00
Denis Drakhnia bd6208c09f target: e2k: Fix ctpr size. 2022-06-10 11:48:14 +03:00
Denis Drakhnia 7578f94f7c target: e2k: Remove merge condition from Instr. 2022-06-10 11:48:14 +03:00
Denis Drakhnia 93acd43783 target: e2k: Add staa{b,h} instrs. 2022-06-10 11:48:14 +03:00
Alibek Omarov 327bc03604 target: e2k: define CPUs we're testing against, define gdb arch 2022-06-10 11:48:14 +03:00
Alibek Omarov df21ab3d70 target: e2k: define CPUs we're testing against, define gdb arch 2022-06-10 11:48:14 +03:00
Denis Drakhnia 7bdf849174 target: e2k: Add clarification to gen_tag funcs. 2022-06-10 11:48:14 +03:00
Alibek Omarov e19c72c5df target: e2k: add umulx/smulx instrs. 2022-06-10 11:48:14 +03:00
Denis Drakhnia 9dc320f574 target: e2k: Fix sxt/st operand sizes. 2022-06-10 11:48:14 +03:00
Denis Drakhnia 8e033a839e target: e2k: Hack delay %rN index gen for result. 2022-06-10 11:48:14 +03:00
Denis Drakhnia 1ad7988e9a target: e2k: Fix based preg. 2022-06-10 11:48:14 +03:00
Denis Drakhnia a357666e69 target: e2k: Log msg if dbl is setted. 2022-06-10 11:48:14 +03:00
Denis Drakhnia 6aeee516f3 target: e2k: Add {u,s}mulhd instrs. 2022-06-10 11:48:14 +03:00
Denis Drakhnia 7ff1f54b8f target: e2k: Add mova stubs. 2022-06-10 11:48:14 +03:00
Denis Drakhnia 250a648edf target: e2k: Fix uninit plu_result.reg bug. 2022-06-10 11:48:14 +03:00
Denis Drakhnia 5017d6fa5d target: e2k: Add combined int instructions. 2022-06-10 11:48:14 +03:00
Denis Drakhnia d2518af194 target: e2k: Add Instr struct to alc. 2022-06-10 11:48:14 +03:00
Denis Drakhnia 39bb97e24e target: e2k: Reorganize tag usage. 2022-06-10 11:48:14 +03:00
Denis Drakhnia 5a1e118992 target: e2k: Fix icont bug. 2022-06-10 11:48:14 +03:00
Denis Drakhnia 80b3909fb0 target: e2k: Read %idr in rrd. 2022-06-10 11:48:14 +03:00
Denis Drakhnia cd57ff3686 target: e2k: Increase startup window size. 2022-06-10 11:48:14 +03:00
Denis Drakhnia aa93b81f40 target: e2k: Fix bitrev{s,d} instrs. 2022-06-10 11:48:14 +03:00
Denis Drakhnia e5126b32d4 target: e2k: Impl reading some regs through rrd.
%wd, %pcsp.lo, %pcsp.hi, %pcshtp, %cr1.hi, %cr1.lo.
2022-06-10 11:48:14 +03:00
Alibek Omarov 4d88941e0a target: e2k: add reading %ip register through rrd 2022-06-10 11:48:14 +03:00
Denis Drakhnia 0ac9e690a2 target: e2k: Fix getsp src2 size. 2022-06-10 11:48:14 +03:00
Alibek Omarov a410422f9a target: e2k: add lzcnt and popcnt instrs (untested!) 2022-06-10 11:48:14 +03:00
Alibek Omarov 990976cf99 target: e2k: add bitrev instr 2022-06-10 11:48:14 +03:00
Denis Drakhnia 6a0a45602b target: e2k: Impl pcmpeqb. 2022-06-10 11:48:14 +03:00
Denis Drakhnia 1c1db1a395 target: e2k: Replace some panics with messages. 2022-06-10 11:48:14 +03:00
Denis Drakhnia a6d8edd30f target: e2k: Add %cr1.{lo,hi} to rr{s,d}/rw{s,d}. 2022-06-10 11:48:14 +03:00
Denis Drakhnia b14ca9755f target: e2k: Impl write AL result to ctpr. 2022-06-10 11:48:14 +03:00
Denis Drakhnia 683d96b8fa target: e2k: Partial staa{d,w} implementation. 2022-06-10 11:48:13 +03:00
Denis Drakhnia 51048a3f3e target: e2k: Increase temp i32 limit. 2022-06-10 11:48:13 +03:00
Denis Drakhnia a7e7a746ca target: e2k: Add paddd instr. 2022-06-10 11:48:13 +03:00
Denis Drakhnia 300fe4742f target: e2k: Add mul{s,d} instrs. 2022-06-10 11:48:13 +03:00
Denis Drakhnia 72bcbbabb0 target: e2k: Add pshufb instr. 2022-06-10 11:48:13 +03:00
Denis Drakhnia 32ee7f3b15 target: e2k: Add insf{s,d} instrs. 2022-06-10 11:48:13 +03:00
Denis Drakhnia f0390fa97b target: e2k: Add gettag{s,d} instrs. 2022-06-10 11:48:13 +03:00
Denis Drakhnia f817f7e354 target: e2k: Add puttag{s,d} instrs. 2022-06-10 11:48:13 +03:00
Denis Drakhnia 57b3469cda target: e2k: Impl speculative execution. 2022-06-10 11:48:13 +03:00
Alibek Omarov 7d03b739e9 target: e2k: refactor instruction decoding based on active channel 2022-06-10 11:48:13 +03:00
Denis Drakhnia 294f11ecb6 target: e2k: Increace i32 temp limit. 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 a008c8d102 target: e2k: Add registers tags. 2022-06-10 11:48:13 +03:00
Denis Drakhnia 06e789a573 target: e2k: Jump to ctpr_addr if ctpr is return. 2022-06-10 11:48:13 +03:00
Denis Drakhnia c81e20732d target: e2k: Fix instr return. 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 be45bd770e target: e2k: Gen rt exception in udivs hack. 2022-06-10 11:48:13 +03:00
Denis Drakhnia 2ba3ae22f6 target: e2k: Fix gen_goto_tb usage. 2022-06-10 11:48:13 +03:00
Denis Drakhnia 2ab3c18ce1 target: e2k: Fix instr start address. 2022-06-10 11:48:13 +03:00
Denis Drakhnia 0b4a9728dc target: e2k: Move int helpers to separate file. 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 229797cfbd target: e2k: Ps push/pop with pshtp. 2022-06-10 11:48:13 +03:00
Denis Drakhnia 028d27ae4c target: e2k: Add setwd helper. 2022-06-10 11:48:13 +03:00
Denis Drakhnia 2ec66c49c5 target: e2k: Reorg cr1. 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 dd3aa7283a target: e2k: Reorg br. 2022-06-10 11:48:13 +03:00
Denis Drakhnia 4d16d006d5 target: e2k: Restore udivs dump state hack. 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 8aa929e289 target: e2k: Move helper_cur_dec to TCG. 2022-06-10 11:48:13 +03:00
Denis Drakhnia b200334479 target: e2k: Add exceptions to wregs access. 2022-06-10 11:48:13 +03:00
Denis Drakhnia 6ee4ab4bd3 target: e2k: Fix literal loading. 2022-06-10 11:48:13 +03:00
Denis Drakhnia 6d3f1d71e4 target: e2k: Fix control flow condition. 2022-06-10 11:48:12 +03:00
Denis Drakhnia e7e3e91bfc target: e2k: Add {s,u}div{s,d}. 2022-06-10 11:48:12 +03:00
Denis Drakhnia a73f073ffe target: e2k: Fix mas array size. 2022-06-10 11:48:12 +03:00
Denis Drakhnia 468277c315 target: e2k: Remove helper unimpl. 2022-06-10 11:48:12 +03:00