openpower-isa.git
21 months agolots of really bad hacks, here
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 17:38:34 +0000 (18:38 +0100)]
lots of really bad hacks, here
https://bugs.libre-soc.org/show_bug.cgi?id=933
1) rename to "pcdec." because it always sets CR0. following the convention
   set by "stbcx." etc.
2) hacked ISACaller into submission because this is the first instruction
   supported with "." at the end which is not Rc=1
3) handle_comparison was bypassed when CR0 is detected as explicitly
   an output: there is no point computing Rc=1 EQ/LT/GT/SO when CR0
   is supplied by the pseudocode
4) the test case case_pcdec_simple() was not making explicit deepcopy()
   of the registers, which causes problems
5) various places in actually getting the instruction from the insn
   dictionary, have to special-case "pcdec."
6) sv/trans/svp64.py updated to name "pcdec."
.

21 months agofix/hack some bugs in prefix_codes_cases
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 17:05:48 +0000 (18:05 +0100)]
fix/hack some bugs in prefix_codes_cases

21 months agoadd (sigh) to the hack-job get_pdecode_idx_out2() in ISACaller
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 16:49:45 +0000 (17:49 +0100)]
add (sigh) to the hack-job get_pdecode_idx_out2() in ISACaller
really should be relying on PowerDecoder2 but hey

21 months agochange variablename dec2.use_svp64_fft to implicit_rs
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 16:43:31 +0000 (17:43 +0100)]
change variablename dec2.use_svp64_fft to implicit_rs

21 months agoadd match on implicit_rc for pcdec
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 16:43:13 +0000 (17:43 +0100)]
add match on implicit_rc for pcdec

21 months agorename all "fft" variables in PowerDecoder2 because they are
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 16:35:16 +0000 (17:35 +0100)]
rename all "fft" variables in PowerDecoder2 because they are
to be used for pcdec as well.
https://bugs.libre-soc.org/show_bug.cgi?id=933

21 months agoadd sv.maddld/mr unit test example with expected results
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 16:21:00 +0000 (17:21 +0100)]
add sv.maddld/mr unit test example with expected results

21 months agoadd expected results for sv.maddld in openpower/test/mul_cases.py
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 16:12:56 +0000 (17:12 +0100)]
add expected results for sv.maddld in openpower/test/mul_cases.py

21 months agoreduce field name lengths (not in use)
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 10:21:40 +0000 (11:21 +0100)]
reduce field name lengths (not in use)

21 months agowhoops offset-tracking on 3-in 2-out supposed to be by MAXVL not VL
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 09:13:39 +0000 (10:13 +0100)]
whoops offset-tracking on 3-in 2-out supposed to be by MAXVL not VL

21 months agoremoved unneeded file
Konstantinos Margaritis [Fri, 23 Sep 2022 07:49:56 +0000 (07:49 +0000)]
removed unneeded file

21 months agoupdate Makefile
Konstantinos Margaritis [Fri, 23 Sep 2022 07:33:44 +0000 (07:33 +0000)]
update Makefile

21 months agoadd new SVP64 function
Konstantinos Margaritis [Fri, 23 Sep 2022 07:33:37 +0000 (07:33 +0000)]
add new SVP64 function

21 months agoreduce iterations, taking too long in the simulator
Konstantinos Margaritis [Fri, 23 Sep 2022 07:33:01 +0000 (07:33 +0000)]
reduce iterations, taking too long in the simulator

21 months agorename reference functions with _c suffix, add header
Konstantinos Margaritis [Fri, 23 Sep 2022 07:32:42 +0000 (07:32 +0000)]
rename reference functions with _c suffix, add header

21 months agorenamed variance_svp64.c to variancefuncs_svp64.c
Konstantinos Margaritis [Fri, 23 Sep 2022 07:31:58 +0000 (07:31 +0000)]
renamed variance_svp64.c to variancefuncs_svp64.c

21 months agoadd pcdec -- doesn't yet work due to broken ISACaller RT/RS output handling
Jacob Lifshay [Fri, 23 Sep 2022 03:05:35 +0000 (20:05 -0700)]
add pcdec -- doesn't yet work due to broken ISACaller RT/RS output handling

21 months agofix maddld pseudo-code
Jacob Lifshay [Fri, 23 Sep 2022 03:22:45 +0000 (20:22 -0700)]
fix maddld pseudo-code

21 months agoadd missing minor_4 decoder
Jacob Lifshay [Fri, 23 Sep 2022 03:02:02 +0000 (20:02 -0700)]
add missing minor_4 decoder

21 months agofix 'write reg ' log call
Jacob Lifshay [Fri, 23 Sep 2022 03:00:52 +0000 (20:00 -0700)]
fix 'write reg ' log call

21 months agoadd RC input to isa/caller.py
Jacob Lifshay [Fri, 23 Sep 2022 02:59:40 +0000 (19:59 -0700)]
add RC input to isa/caller.py

21 months agoformat code
Jacob Lifshay [Fri, 23 Sep 2022 02:56:11 +0000 (19:56 -0700)]
format code

21 months agomaddhd[u]/maddld are official ops
Jacob Lifshay [Fri, 23 Sep 2022 01:02:59 +0000 (18:02 -0700)]
maddhd[u]/maddld are official ops

21 months agoformat code
Jacob Lifshay [Fri, 23 Sep 2022 00:37:33 +0000 (17:37 -0700)]
format code

21 months agoadd first (correctly-working) ctr-mode sv.bc test
Luke Kenneth Casson Leighton [Thu, 22 Sep 2022 23:47:26 +0000 (00:47 +0100)]
add first (correctly-working) ctr-mode sv.bc test

21 months agocomment need for waiting on binutils update
Luke Kenneth Casson Leighton [Thu, 22 Sep 2022 12:41:23 +0000 (13:41 +0100)]
comment need for waiting on binutils update

21 months agofix no of iterations in comment, harmless but wrong
Konstantinos Margaritis [Thu, 22 Sep 2022 11:05:34 +0000 (11:05 +0000)]
fix no of iterations in comment, harmless but wrong

21 months agodump memory
Konstantinos Margaritis [Thu, 22 Sep 2022 08:43:46 +0000 (08:43 +0000)]
dump memory

21 months agobetter handling of memory copies, fix vpx_get4x4sse_cs_svp64
Konstantinos Margaritis [Thu, 22 Sep 2022 08:43:26 +0000 (08:43 +0000)]
better handling of memory copies, fix vpx_get4x4sse_cs_svp64

21 months agoremove extra setvl instruction
Konstantinos Margaritis [Thu, 22 Sep 2022 08:42:05 +0000 (08:42 +0000)]
remove extra setvl instruction

22 months agoadd series of double-stride options to test_caller_svp64_dct.py
Luke Kenneth Casson Leighton [Wed, 21 Sep 2022 19:49:44 +0000 (20:49 +0100)]
add series of double-stride options to test_caller_svp64_dct.py

22 months agodo not set striding on costables, keep them contiguous.
Luke Kenneth Casson Leighton [Wed, 21 Sep 2022 19:17:41 +0000 (20:17 +0100)]
do not set striding on costables, keep them contiguous.
not totally sure this is a good idea, but hey

22 months agogetting better, get rid of the ctr, group src/ref loads
Konstantinos Margaritis [Wed, 21 Sep 2022 18:33:24 +0000 (18:33 +0000)]
getting better, get rid of the ctr, group src/ref loads

22 months agoscale-up svshape pseudo-code for striding in DCT/FFT
Luke Kenneth Casson Leighton [Wed, 21 Sep 2022 17:18:14 +0000 (18:18 +0100)]
scale-up svshape pseudo-code for striding in DCT/FFT

22 months agofix dct/fft test-functions with new "scaling" parameter
Luke Kenneth Casson Leighton [Wed, 21 Sep 2022 16:56:57 +0000 (17:56 +0100)]
fix dct/fft test-functions with new "scaling" parameter
https://bugs.libre-soc.org/show_bug.cgi?id=930

22 months agomissed setting zdim in svshape on DCT modes
Luke Kenneth Casson Leighton [Wed, 21 Sep 2022 14:53:53 +0000 (15:53 +0100)]
missed setting zdim in svshape on DCT modes

22 months agouse sv.subf
Konstantinos Margaritis [Wed, 21 Sep 2022 15:33:49 +0000 (15:33 +0000)]
use sv.subf

22 months agofix braces
Konstantinos Margaritis [Wed, 21 Sep 2022 15:30:45 +0000 (15:30 +0000)]
fix braces

22 months agowhoops stride already has +1 from SVSTATE class
Luke Kenneth Casson Leighton [Wed, 21 Sep 2022 14:46:46 +0000 (15:46 +0100)]
whoops stride already has +1 from SVSTATE class

22 months agoadd SVzd to REMAP (svshape) "stride"
Luke Kenneth Casson Leighton [Wed, 21 Sep 2022 14:40:16 +0000 (15:40 +0100)]
add SVzd to REMAP (svshape) "stride"
https://bugs.libre-soc.org/show_bug.cgi?id=930

22 months agoadd stride-multiplier for 2D DCT/FFT "in-place" offsets
Luke Kenneth Casson Leighton [Wed, 21 Sep 2022 14:36:29 +0000 (15:36 +0100)]
add stride-multiplier for 2D DCT/FFT "in-place" offsets
https://bugs.libre-soc.org/show_bug.cgi?id=930

22 months agoInitial SVP64 attempt to vpx_get4x4sse_cs_svp64_real()
Konstantinos Margaritis [Wed, 21 Sep 2022 14:28:49 +0000 (14:28 +0000)]
Initial SVP64 attempt to vpx_get4x4sse_cs_svp64_real()

22 months agouse mr instead of li/addi pair
Konstantinos Margaritis [Wed, 21 Sep 2022 14:28:14 +0000 (14:28 +0000)]
use mr instead of li/addi pair

22 months agofix comments
Konstantinos Margaritis [Wed, 21 Sep 2022 13:29:02 +0000 (13:29 +0000)]
fix comments

22 months agoadd vpx_get4x4sse_cs_svp64_real() and wrapper
Konstantinos Margaritis [Wed, 21 Sep 2022 13:07:03 +0000 (13:07 +0000)]
add vpx_get4x4sse_cs_svp64_real() and wrapper

22 months agoFirst form of fully working SVP64 version
Konstantinos Margaritis [Wed, 21 Sep 2022 13:06:13 +0000 (13:06 +0000)]
First form of fully working SVP64 version

22 months agoreduce number of iterations in test, as it takes too long
Konstantinos Margaritis [Wed, 21 Sep 2022 13:05:13 +0000 (13:05 +0000)]
reduce number of iterations in test, as it takes too long

22 months agonecessary changes for run_a_simulation to work with pypowersim_wrapper
Konstantinos Margaritis [Wed, 21 Sep 2022 08:50:13 +0000 (08:50 +0000)]
necessary changes for run_a_simulation to work with pypowersim_wrapper

22 months agoInitial attempt for SVP64 asm version of vpx_get_mb_ss_svp64_real()
Konstantinos Margaritis [Wed, 21 Sep 2022 08:49:11 +0000 (08:49 +0000)]
Initial attempt for SVP64 asm version of vpx_get_mb_ss_svp64_real()

22 months agoadd sv.madd* to sv_analysis
Luke Kenneth Casson Leighton [Wed, 21 Sep 2022 00:15:46 +0000 (01:15 +0100)]
add sv.madd* to sv_analysis

22 months agoadd sv.maddld test case
Jacob Lifshay [Wed, 21 Sep 2022 00:00:48 +0000 (17:00 -0700)]
add sv.maddld test case

22 months agominor codemorph, whitespace
Luke Kenneth Casson Leighton [Tue, 20 Sep 2022 23:46:18 +0000 (00:46 +0100)]
minor codemorph, whitespace

22 months agosv.bc reclassified as RM-2P-1S by eliminating SPRs.
Luke Kenneth Casson Leighton [Tue, 20 Sep 2022 20:27:33 +0000 (21:27 +0100)]
sv.bc reclassified as RM-2P-1S by eliminating SPRs.
strictly it should be RM-1P-1S but there is a bug. needs investigation.
sv_analysis temporarily classifies as twin predication for now

22 months agoPoC simplified and isolated unit test for libvpx (VP8 & VP9) that uses pypowersim_wrapper
Konstantinos Margaritis [Tue, 20 Sep 2022 20:16:25 +0000 (20:16 +0000)]
PoC simplified and isolated unit test for libvpx (VP8 & VP9) that uses pypowersim_wrapper

22 months agoInitial PoC for calling pypowersim from within C code
Konstantinos Margaritis [Tue, 20 Sep 2022 20:14:46 +0000 (20:14 +0000)]
Initial PoC for calling pypowersim from within C code

22 months agoremove messy string identification, use RM Mode from database
Luke Kenneth Casson Leighton [Tue, 20 Sep 2022 19:44:51 +0000 (20:44 +0100)]
remove messy string identification, use RM Mode from database
in sv/trans/svp64.py

22 months agoadd quick test and loooong test of pysvp64dis - branches split out
Luke Kenneth Casson Leighton [Tue, 20 Sep 2022 16:43:32 +0000 (17:43 +0100)]
add quick test and loooong test of pysvp64dis - branches split out

22 months agopysvp64asm: fix sz handling
Dmitry Selyutin [Tue, 20 Sep 2022 14:14:03 +0000 (17:14 +0300)]
pysvp64asm: fix sz handling

22 months agopower_insn: unify predicates
Dmitry Selyutin [Tue, 20 Sep 2022 13:39:56 +0000 (16:39 +0300)]
power_insn: unify predicates

22 months agotest_pysvp64dis: test vli specifier
Dmitry Selyutin [Tue, 20 Sep 2022 12:55:33 +0000 (15:55 +0300)]
test_pysvp64dis: test vli specifier

22 months agopysvp64asm: support vli specifier
Dmitry Selyutin [Tue, 20 Sep 2022 12:55:22 +0000 (15:55 +0300)]
pysvp64asm: support vli specifier

22 months agopower_insn: support vli specifier
Dmitry Selyutin [Tue, 20 Sep 2022 12:55:11 +0000 (15:55 +0300)]
power_insn: support vli specifier

22 months agopower_insn: simplify specifiers sorting
Dmitry Selyutin [Tue, 20 Sep 2022 11:36:18 +0000 (14:36 +0300)]
power_insn: simplify specifiers sorting

22 months agomissed one sorting order in test_pysvp64dis.py
Luke Kenneth Casson Leighton [Tue, 20 Sep 2022 11:13:43 +0000 (12:13 +0100)]
missed one sorting order in test_pysvp64dis.py

22 months agosort specifiers in pysvp64dis in lexicographical order
Luke Kenneth Casson Leighton [Tue, 20 Sep 2022 11:11:57 +0000 (12:11 +0100)]
sort specifiers in pysvp64dis in lexicographical order

22 months agoadd two extra tests, sv.bc/m=r3/sz
Luke Kenneth Casson Leighton [Tue, 20 Sep 2022 11:06:00 +0000 (12:06 +0100)]
add two extra tests, sv.bc/m=r3/sz

22 months agopower_insn: custom sz handling for branches
Dmitry Selyutin [Tue, 20 Sep 2022 10:23:44 +0000 (13:23 +0300)]
power_insn: custom sz handling for branches

22 months agopysvp64asm: update sz upon snz specifier
Dmitry Selyutin [Tue, 20 Sep 2022 10:23:15 +0000 (13:23 +0300)]
pysvp64asm: update sz upon snz specifier

22 months agoadd sv.bc/ctr/vsb unit test to test_pysvp64dis.py to show it is possible
Luke Kenneth Casson Leighton [Tue, 20 Sep 2022 09:56:56 +0000 (10:56 +0100)]
add sv.bc/ctr/vsb unit test to test_pysvp64dis.py to show it is possible

22 months agopower_insn: support vs/vsi/vsb/vsbi/ctr/cti specifiers
Dmitry Selyutin [Tue, 20 Sep 2022 00:45:48 +0000 (03:45 +0300)]
power_insn: support vs/vsi/vsb/vsbi/ctr/cti specifiers

22 months agopysvp64asm: support branch modes
Dmitry Selyutin [Mon, 19 Sep 2022 21:27:23 +0000 (00:27 +0300)]
pysvp64asm: support branch modes

22 months agopower_svp64_rm: sync it with tables
Dmitry Selyutin [Tue, 20 Sep 2022 00:32:37 +0000 (03:32 +0300)]
power_svp64_rm: sync it with tables

22 months agopower_insn: support common branch disassembly
Dmitry Selyutin [Mon, 19 Sep 2022 22:09:45 +0000 (01:09 +0300)]
power_insn: support common branch disassembly

22 months agopower_insn: simplify branch table
Dmitry Selyutin [Mon, 19 Sep 2022 21:47:09 +0000 (00:47 +0300)]
power_insn: simplify branch table

22 months agopower_insn: provide SVL/CTR branch fields
Dmitry Selyutin [Mon, 19 Sep 2022 21:24:37 +0000 (00:24 +0300)]
power_insn: provide SVL/CTR branch fields

22 months agoadd bc_ctr and bc_cti but not used yet
Luke Kenneth Casson Leighton [Mon, 19 Sep 2022 21:00:15 +0000 (22:00 +0100)]
add bc_ctr and bc_cti but not used yet

22 months agoprint out reg num in _check_regs, useful debug
Luke Kenneth Casson Leighton [Mon, 19 Sep 2022 20:56:44 +0000 (21:56 +0100)]
print out reg num in _check_regs, useful debug

22 months agotest_pysvp64dis: test els specifier
Dmitry Selyutin [Mon, 19 Sep 2022 20:29:31 +0000 (23:29 +0300)]
test_pysvp64dis: test els specifier

22 months agopower_insn: support els specifier
Dmitry Selyutin [Mon, 19 Sep 2022 20:27:45 +0000 (23:27 +0300)]
power_insn: support els specifier

22 months agocut cruft in caller.py
Luke Kenneth Casson Leighton [Mon, 19 Sep 2022 17:22:42 +0000 (18:22 +0100)]
cut cruft in caller.py

22 months agocodemorph on rc handling
Luke Kenneth Casson Leighton [Mon, 19 Sep 2022 16:04:05 +0000 (17:04 +0100)]
codemorph on rc handling

22 months agocodemorph
Luke Kenneth Casson Leighton [Mon, 19 Sep 2022 15:56:01 +0000 (16:56 +0100)]
codemorph

22 months agofirst interation (ha ha) src/dst iterators for ISACaller
Luke Kenneth Casson Leighton [Mon, 19 Sep 2022 15:44:54 +0000 (16:44 +0100)]
first interation (ha ha) src/dst iterators for ISACaller

22 months agocodemorph reduce indentation
Luke Kenneth Casson Leighton [Mon, 19 Sep 2022 14:30:26 +0000 (15:30 +0100)]
codemorph reduce indentation

22 months agocode cleanup on ISACaller write_output
Luke Kenneth Casson Leighton [Mon, 19 Sep 2022 14:21:31 +0000 (15:21 +0100)]
code cleanup on ISACaller write_output

22 months agorename to avoid conflict pred_dz from pred_dst_zero
Luke Kenneth Casson Leighton [Mon, 19 Sep 2022 12:31:23 +0000 (13:31 +0100)]
rename to avoid conflict pred_dz from pred_dst_zero

22 months agoanother code-morph splitting out the src/dst mask preparation
Luke Kenneth Casson Leighton [Mon, 19 Sep 2022 12:25:03 +0000 (13:25 +0100)]
another code-morph splitting out the src/dst mask preparation
from actual use of it to perform skipping (advancing src/dst step)

22 months agoadd function for calling a simulation
Luke Kenneth Casson Leighton [Mon, 19 Sep 2022 08:15:18 +0000 (09:15 +0100)]
add function for calling a simulation

22 months agoanother code-morph working towards getting the predicate-skipping
Luke Kenneth Casson Leighton [Mon, 19 Sep 2022 07:37:45 +0000 (08:37 +0100)]
another code-morph working towards getting the predicate-skipping
into the iterator-looping

22 months agowhitespace
Luke Kenneth Casson Leighton [Mon, 19 Sep 2022 07:22:26 +0000 (08:22 +0100)]
whitespace

22 months agocode-morph in StepLoop work towards splitting into iterators
Luke Kenneth Casson Leighton [Mon, 19 Sep 2022 07:21:54 +0000 (08:21 +0100)]
code-morph in StepLoop work towards splitting into iterators

22 months agoadd svstate param to constructor of StepLoop, ISACaller
Luke Kenneth Casson Leighton [Mon, 19 Sep 2022 07:12:41 +0000 (08:12 +0100)]
add svstate param to constructor of StepLoop, ISACaller

22 months agomove two big step/loop functions into separate class out of ISACaller
Luke Kenneth Casson Leighton [Mon, 19 Sep 2022 07:02:48 +0000 (08:02 +0100)]
move two big step/loop functions into separate class out of ISACaller

22 months agopower_insn: perform cleanup; turn comments into docstrings
Dmitry Selyutin [Sun, 18 Sep 2022 21:57:09 +0000 (00:57 +0300)]
power_insn: perform cleanup; turn comments into docstrings

22 months agocode-comments identifying tables
Luke Kenneth Casson Leighton [Sun, 18 Sep 2022 21:19:43 +0000 (22:19 +0100)]
code-comments identifying tables

22 months agosimplify predicate mask reporting. assign dw=sw=mask then test 2P
Luke Kenneth Casson Leighton [Sun, 18 Sep 2022 21:17:22 +0000 (22:17 +0100)]
simplify predicate mask reporting. assign dw=sw=mask then test 2P
and assign sw new value

22 months agouse widths.get(dw/sw) and test empty/non-empty after.
Luke Kenneth Casson Leighton [Sun, 18 Sep 2022 21:08:04 +0000 (22:08 +0100)]
use widths.get(dw/sw) and test empty/non-empty after.

22 months agofix predicate mask case when smask was zero but mmode was not
Luke Kenneth Casson Leighton [Sun, 18 Sep 2022 20:59:57 +0000 (21:59 +0100)]
fix predicate mask case when smask was zero but mmode was not
quick/easy way: use predicates.get((mmode,smask)) and if empty skip
added stack of tests, 1P and 2P, to test_pysvp64dis.py

22 months agono, better than hack-job, stop CROpSimpleRM deriving from MRBaseRM
Luke Kenneth Casson Leighton [Sun, 18 Sep 2022 20:34:39 +0000 (21:34 +0100)]
no, better than hack-job, stop CROpSimpleRM deriving from MRBaseRM
that way it can handle "/rg" on its own

22 months agobit of a hack-job, a base class MRBaseRM - MapReduce RM - was confused
Luke Kenneth Casson Leighton [Sun, 18 Sep 2022 20:32:14 +0000 (21:32 +0100)]
bit of a hack-job, a base class MRBaseRM - MapReduce RM - was confused
there is no need to report "/mr" on a "Simple" mode, which was deriving
from MRBaseRM