openpower-isa.git
20 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

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

20 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

20 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

20 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

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

20 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

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

20 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

20 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

20 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

20 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

20 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

20 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

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

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

20 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

20 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

20 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

20 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()

20 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

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

20 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

20 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

20 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

20 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

20 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()

20 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

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

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

20 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

20 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

20 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

20 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

20 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

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

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

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

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

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

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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

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

20 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

20 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

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

20 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

20 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

20 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

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

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

20 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

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

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

20 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

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

20 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

20 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

20 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)

20 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

20 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

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

20 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

20 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

20 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

20 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

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

20 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

20 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.

20 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

20 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

20 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

20 months agocorrect COopFF3RM and CRopSimpleRM: extra sz field and sz/dz/zz bit 6
Luke Kenneth Casson Leighton [Sun, 18 Sep 2022 20:20:00 +0000 (21:20 +0100)]
correct COopFF3RM and CRopSimpleRM: extra sz field and sz/dz/zz bit 6

20 months agopower_insn: introduce common mr/mrr RM class
Dmitry Selyutin [Sun, 18 Sep 2022 19:34:25 +0000 (22:34 +0300)]
power_insn: introduce common mr/mrr RM class

20 months agopower_insn: support ff/pr predicates
Dmitry Selyutin [Sun, 18 Sep 2022 18:55:49 +0000 (21:55 +0300)]
power_insn: support ff/pr predicates

20 months agopysvp64asm: restore original BO
Dmitry Selyutin [Sun, 18 Sep 2022 19:17:33 +0000 (22:17 +0300)]
pysvp64asm: restore original BO

20 months agopower_insn: fix CR ops classes naming
Dmitry Selyutin [Sun, 18 Sep 2022 18:56:22 +0000 (21:56 +0300)]
power_insn: fix CR ops classes naming

20 months agopower_insn: fix coding style
Dmitry Selyutin [Sun, 18 Sep 2022 18:37:44 +0000 (21:37 +0300)]
power_insn: fix coding style

20 months agopower_insn: introduce common dz/sz RM classes
Dmitry Selyutin [Sun, 18 Sep 2022 18:36:19 +0000 (21:36 +0300)]
power_insn: introduce common dz/sz RM classes

20 months agopower_insn: introduce common zz RM class
Dmitry Selyutin [Sun, 18 Sep 2022 18:21:24 +0000 (21:21 +0300)]
power_insn: introduce common zz RM class

20 months agopower_insn: introduce common Sat RM class
Dmitry Selyutin [Sun, 18 Sep 2022 18:18:20 +0000 (21:18 +0300)]
power_insn: introduce common Sat RM class

20 months agopower_insn: introduce common FFPRRc0 RM class
Dmitry Selyutin [Sun, 18 Sep 2022 18:16:43 +0000 (21:16 +0300)]
power_insn: introduce common FFPRRc0 RM class

20 months agopower_insn: simplify RM classes naming
Dmitry Selyutin [Sun, 18 Sep 2022 18:05:37 +0000 (21:05 +0300)]
power_insn: simplify RM classes naming

20 months agoadd first attempt at swapping inner/outer vl/subvl loops pack/unpack
Luke Kenneth Casson Leighton [Sun, 18 Sep 2022 19:20:06 +0000 (20:20 +0100)]
add first attempt at swapping inner/outer vl/subvl loops pack/unpack
no swap still fine, swap is borked

20 months agoadd new svstep mode setting up pack/unpack
Luke Kenneth Casson Leighton [Sun, 18 Sep 2022 19:18:49 +0000 (20:18 +0100)]
add new svstep mode setting up pack/unpack
in simplev.mdwn pseudocode

20 months agosigh, check length of string returned, if non-zero add space
Luke Kenneth Casson Leighton [Sun, 18 Sep 2022 17:33:01 +0000 (18:33 +0100)]
sigh, check length of string returned, if non-zero add space

20 months agosort out CR RM Mode (sz/dz bits moved, consistent)
Luke Kenneth Casson Leighton [Sun, 18 Sep 2022 17:31:35 +0000 (18:31 +0100)]
sort out CR RM Mode (sz/dz bits moved, consistent)

20 months agoadd comments (links to URLs) into power_insns.py for RM modes
Luke Kenneth Casson Leighton [Sun, 18 Sep 2022 17:28:50 +0000 (18:28 +0100)]
add comments (links to URLs) into power_insns.py for RM modes

20 months agoremove f"" use simpler code, easier to read
Luke Kenneth Casson Leighton [Sun, 18 Sep 2022 17:25:21 +0000 (18:25 +0100)]
remove f"" use simpler code, easier to read

20 months agoreverse decode_bo inv/eq/lt/le/etc. thing
Luke Kenneth Casson Leighton [Sun, 18 Sep 2022 16:33:32 +0000 (17:33 +0100)]
reverse decode_bo inv/eq/lt/le/etc. thing
rather than piss about modifying the table itself, do an MSB0-LSB0 swap

20 months agodumb. accidentally removed test-call
Luke Kenneth Casson Leighton [Sun, 18 Sep 2022 16:17:04 +0000 (17:17 +0100)]
dumb. accidentally removed test-call

20 months agoadd unit tests for Rc=1 ffirst/predicate-result
Luke Kenneth Casson Leighton [Sun, 18 Sep 2022 16:14:04 +0000 (17:14 +0100)]
add unit tests for Rc=1 ffirst/predicate-result
to test_pysvp64dis.py

20 months agotest_pysvp64dis: test RC1/~RC1 in ff/pr
Dmitry Selyutin [Sun, 18 Sep 2022 16:05:42 +0000 (19:05 +0300)]
test_pysvp64dis: test RC1/~RC1 in ff/pr

20 months agopower_insn: fix Rc operand accessor
Dmitry Selyutin [Sun, 18 Sep 2022 16:05:11 +0000 (19:05 +0300)]
power_insn: fix Rc operand accessor