openpower-isa.git
2 years agoadd Z23 shift-mode fields.txt
Luke Kenneth Casson Leighton [Wed, 28 Sep 2022 18:04:06 +0000 (19:04 +0100)]
add Z23 shift-mode fields.txt

2 years agobugfix reset remaps and get subvl early
Luke Kenneth Casson Leighton [Wed, 28 Sep 2022 16:20:07 +0000 (17:20 +0100)]
bugfix reset remaps and get subvl early

2 years agocomments on horizontal-or
Luke Kenneth Casson Leighton [Wed, 28 Sep 2022 13:34:21 +0000 (14:34 +0100)]
comments on horizontal-or

2 years agomake matrix horizontal-remap example more generic
Luke Kenneth Casson Leighton [Wed, 28 Sep 2022 13:27:21 +0000 (14:27 +0100)]
make matrix horizontal-remap example more generic

2 years agoadd horizontal-or-reduction example that thoroughly abuses the way
Luke Kenneth Casson Leighton [Wed, 28 Sep 2022 13:18:42 +0000 (14:18 +0100)]
add horizontal-or-reduction example that thoroughly abuses the way
that Matrix REMAP works, ignoring the B Matrix entirely

2 years agowhoops VL incorrect in svshape markdown RTL for matrix REMAP
Luke Kenneth Casson Leighton [Wed, 28 Sep 2022 13:11:55 +0000 (14:11 +0100)]
whoops VL incorrect in svshape markdown RTL for matrix REMAP

2 years agoextracting demo JPEG bitstream works
Jacob Lifshay [Wed, 28 Sep 2022 02:25:46 +0000 (19:25 -0700)]
extracting demo JPEG bitstream works

2 years agoadd unpack predicated unit test
Luke Kenneth Casson Leighton [Tue, 27 Sep 2022 16:53:00 +0000 (17:53 +0100)]
add unpack predicated unit test

2 years agohack to check skipping on predicate being all-zero.
Luke Kenneth Casson Leighton [Tue, 27 Sep 2022 16:25:05 +0000 (17:25 +0100)]
hack to check skipping on predicate being all-zero.
HOWEVER... this will not work on sv.branches

2 years agosort out predicate loop-skip on pack/unpack
Luke Kenneth Casson Leighton [Tue, 27 Sep 2022 15:40:32 +0000 (16:40 +0100)]
sort out predicate loop-skip on pack/unpack

2 years agoadapt loops to include predicate-mask skipping in ISACaller
Luke Kenneth Casson Leighton [Tue, 27 Sep 2022 14:39:18 +0000 (15:39 +0100)]
adapt loops to include predicate-mask skipping in ISACaller
currently not working, investigating (disabled for now)

2 years agofix typo
Konstantinos Margaritis [Tue, 27 Sep 2022 10:23:13 +0000 (10:23 +0000)]
fix typo

2 years agocomment out more debug messages and reference C function
Konstantinos Margaritis [Tue, 27 Sep 2022 10:08:09 +0000 (10:08 +0000)]
comment out more debug messages and reference C function

2 years agocomment out debug messages
Konstantinos Margaritis [Tue, 27 Sep 2022 10:07:02 +0000 (10:07 +0000)]
comment out debug messages

2 years agoWorking version of VP8 DCT4x4 in SVP64
Konstantinos Margaritis [Tue, 27 Sep 2022 10:04:49 +0000 (10:04 +0000)]
Working version of VP8 DCT4x4 in SVP64

2 years agoremove unused prototypes
Konstantinos Margaritis [Tue, 27 Sep 2022 10:03:12 +0000 (10:03 +0000)]
remove unused prototypes

2 years agoadd WIP jpeg decoder demo
Jacob Lifshay [Tue, 27 Sep 2022 04:05:38 +0000 (21:05 -0700)]
add WIP jpeg decoder demo

this includes a tiny test jpeg that's <2kB, so should be fine to be in git.

2 years agoadd more tests and fix missing corner case
Jacob Lifshay [Mon, 26 Sep 2022 23:01:03 +0000 (16:01 -0700)]
add more tests and fix missing corner case

2 years agopcdec.: change CR0.eq to be early-stop-needed to fit with data-dependent fail-first
Jacob Lifshay [Mon, 26 Sep 2022 22:59:33 +0000 (15:59 -0700)]
pcdec.: change CR0.eq to be early-stop-needed to fit with data-dependent fail-first

2 years agoadd checks for pcdec. once=1
Jacob Lifshay [Mon, 26 Sep 2022 22:20:13 +0000 (15:20 -0700)]
add checks for pcdec. once=1

2 years agomore cleanup after swapping RA/RB for pcdec.
Jacob Lifshay [Mon, 26 Sep 2022 21:50:34 +0000 (14:50 -0700)]
more cleanup after swapping RA/RB for pcdec.

2 years agoclean up after lkcl swapped RA/RB for pcdec.
Jacob Lifshay [Mon, 26 Sep 2022 21:48:55 +0000 (14:48 -0700)]
clean up after lkcl swapped RA/RB for pcdec.

2 years agoskipping on maskedout elements de-restricted when substep zero
Luke Kenneth Casson Leighton [Mon, 26 Sep 2022 21:44:21 +0000 (22:44 +0100)]
skipping on maskedout elements de-restricted when substep zero
makes predicate skipping work in pack mode

2 years agoadd first predicate-mask test of pack/unpack
Luke Kenneth Casson Leighton [Mon, 26 Sep 2022 19:24:20 +0000 (20:24 +0100)]
add first predicate-mask test of pack/unpack
https://bugs.libre-soc.org/show_bug.cgi?id=871

2 years agoget pack/unpack tests to use sv.ori to copy sequence 01234567
Luke Kenneth Casson Leighton [Mon, 26 Sep 2022 18:55:38 +0000 (19:55 +0100)]
get pack/unpack tests to use sv.ori to copy sequence 01234567
https://bugs.libre-soc.org/show_bug.cgi?id=871

2 years agofinally got pack/unpack working
Luke Kenneth Casson Leighton [Mon, 26 Sep 2022 19:19:49 +0000 (20:19 +0100)]
finally got pack/unpack working
https://bugs.libre-soc.org/show_bug.cgi?id=871

2 years agocode-morph on loop-end detection in ISACaller
Luke Kenneth Casson Leighton [Mon, 26 Sep 2022 17:45:52 +0000 (18:45 +0100)]
code-morph on loop-end detection in ISACaller
there is a bit of a problem in Pack/Unpack in that the end-of-loop
detection is overrunning.

2 years agoexplicit test of src/dststep end-condition in ISACaller iterators
Luke Kenneth Casson Leighton [Mon, 26 Sep 2022 16:14:26 +0000 (17:14 +0100)]
explicit test of src/dststep end-condition in ISACaller iterators

2 years agoswap RA/RB so that RA|0 is used not RB|0
Luke Kenneth Casson Leighton [Mon, 26 Sep 2022 11:03:07 +0000 (12:03 +0100)]
swap RA/RB so that RA|0 is used not RB|0
RB|0 would need a new flag to be passed down to ALUs in HDL

2 years agofix variables in memory copy
Konstantinos Margaritis [Sun, 25 Sep 2022 17:11:58 +0000 (17:11 +0000)]
fix variables in memory copy

2 years agocomment out debug dumps
Konstantinos Margaritis [Sun, 25 Sep 2022 16:56:31 +0000 (16:56 +0000)]
comment out debug dumps

2 years agoFixed SVP64 implentation
Konstantinos Margaritis [Sun, 25 Sep 2022 16:56:08 +0000 (16:56 +0000)]
Fixed SVP64 implentation

2 years agoremove functions as not relevant for this test
Konstantinos Margaritis [Sun, 25 Sep 2022 16:55:43 +0000 (16:55 +0000)]
remove functions as not relevant for this test

2 years agoclean up, convert from uint64 for python due to rounding in Python, fix copying functions
Konstantinos Margaritis [Sun, 25 Sep 2022 16:55:15 +0000 (16:55 +0000)]
clean up, convert from uint64 for python due to rounding in Python, fix copying functions

2 years agoadd prototypes
Konstantinos Margaritis [Sun, 25 Sep 2022 16:54:22 +0000 (16:54 +0000)]
add prototypes

2 years agofix finalize function, clean ups
Konstantinos Margaritis [Sun, 25 Sep 2022 16:54:04 +0000 (16:54 +0000)]
fix finalize function, clean ups

2 years agoremove unimplemented tests, lower iterations
Konstantinos Margaritis [Sun, 25 Sep 2022 16:53:22 +0000 (16:53 +0000)]
remove unimplemented tests, lower iterations

2 years agouse sv.maddled/mr, cleanup
Konstantinos Margaritis [Sun, 25 Sep 2022 16:52:50 +0000 (16:52 +0000)]
use sv.maddled/mr, cleanup

2 years agoadd header
Konstantinos Margaritis [Sat, 24 Sep 2022 19:56:09 +0000 (19:56 +0000)]
add header

2 years agotest_pysvp64dis: sort ld/st idx stride specs
Dmitry Selyutin [Sun, 25 Sep 2022 16:03:30 +0000 (19:03 +0300)]
test_pysvp64dis: sort ld/st idx stride specs

2 years agopower_insn: always provide els for ld/st idx stride
Dmitry Selyutin [Sun, 25 Sep 2022 16:02:58 +0000 (19:02 +0300)]
power_insn: always provide els for ld/st idx stride

2 years agopysvp64asm: fix VLi attribute access
Dmitry Selyutin [Sun, 25 Sep 2022 16:02:00 +0000 (19:02 +0300)]
pysvp64asm: fix VLi attribute access

2 years agopower_insn: fix and unify /vli specifier
Dmitry Selyutin [Sun, 25 Sep 2022 11:05:14 +0000 (14:05 +0300)]
power_insn: fix and unify /vli specifier

2 years agohave to sanity-check dz/zz after full qualifier-processing in branch-mode
Luke Kenneth Casson Leighton [Sun, 25 Sep 2022 12:50:35 +0000 (13:50 +0100)]
have to sanity-check dz/zz after full qualifier-processing in branch-mode

2 years agoadd dz/sz assertion in is_bc mode
Luke Kenneth Casson Leighton [Sun, 25 Sep 2022 12:48:23 +0000 (13:48 +0100)]
add dz/sz assertion in is_bc mode

2 years agowhitespace
Luke Kenneth Casson Leighton [Sun, 25 Sep 2022 12:46:22 +0000 (13:46 +0100)]
whitespace

2 years agomove sea check to after all qualifiers are checked
Luke Kenneth Casson Leighton [Sat, 24 Sep 2022 16:24:35 +0000 (17:24 +0100)]
move sea check to after all qualifiers are checked

2 years agocheck variable rather than explicit == LDST_IDX
Luke Kenneth Casson Leighton [Sat, 24 Sep 2022 16:21:41 +0000 (17:21 +0100)]
check variable rather than explicit == LDST_IDX

2 years agoadd elstrided/sea on ldst_idx mode
Luke Kenneth Casson Leighton [Sat, 24 Sep 2022 16:16:44 +0000 (17:16 +0100)]
add elstrided/sea on ldst_idx mode

2 years agotest_pysvp64dis: test ld/st idx SEA (simple)
Dmitry Selyutin [Sat, 24 Sep 2022 15:17:59 +0000 (18:17 +0300)]
test_pysvp64dis: test ld/st idx SEA (simple)

2 years agopower_insn: support SEA specifier
Dmitry Selyutin [Sat, 24 Sep 2022 14:51:55 +0000 (17:51 +0300)]
power_insn: support SEA specifier

2 years agopysvp64asm: support /sea specifier
Dmitry Selyutin [Sat, 24 Sep 2022 14:40:03 +0000 (17:40 +0300)]
pysvp64asm: support /sea specifier

2 years agoconsts: introduce SEA field
Dmitry Selyutin [Sat, 24 Sep 2022 14:39:24 +0000 (17:39 +0300)]
consts: introduce SEA field

2 years agopysvp64asm: fix comment layout
Dmitry Selyutin [Sat, 24 Sep 2022 14:06:44 +0000 (17:06 +0300)]
pysvp64asm: fix comment layout

2 years agoset sv_mode to 0b01 in element-strided
Luke Kenneth Casson Leighton [Sat, 24 Sep 2022 16:08:59 +0000 (17:08 +0100)]
set sv_mode to 0b01 in element-strided

2 years agofrickin frick
Luke Kenneth Casson Leighton [Sat, 24 Sep 2022 16:03:58 +0000 (17:03 +0100)]
frickin frick

2 years agoadd assert to stop failfirst+sea
Luke Kenneth Casson Leighton [Sat, 24 Sep 2022 16:00:28 +0000 (17:00 +0100)]
add assert to stop failfirst+sea

2 years agoadd extra RC1 test, without VLI.
Luke Kenneth Casson Leighton [Sat, 24 Sep 2022 16:31:00 +0000 (17:31 +0100)]
add extra RC1 test, without VLI.

2 years agoadd RC1 support to ISACaller.
Luke Kenneth Casson Leighton [Sat, 24 Sep 2022 16:17:55 +0000 (17:17 +0100)]
add RC1 support to ISACaller.
this involves:
* reading Rc=0 and substituting RC1 in its place OR
* for non-Rc instructions just putting RC1 in place of Rc
* reading VLi flag and adding it to srcstep to put into VL on ffirst hit
* setting the cr-bit to test to EQ in RC1 mode

2 years agopower_insn: slightly change table checking style
Dmitry Selyutin [Sat, 24 Sep 2022 13:22:14 +0000 (16:22 +0300)]
power_insn: slightly change table checking style

2 years agoadd extra test_pysvp64dis.py test for ff=~RC1/vli mode
Luke Kenneth Casson Leighton [Sat, 24 Sep 2022 13:25:09 +0000 (14:25 +0100)]
add extra test_pysvp64dis.py test for ff=~RC1/vli mode

2 years agowhoops got mask/match test wrong in power_insn.py
Luke Kenneth Casson Leighton [Sat, 24 Sep 2022 13:22:09 +0000 (14:22 +0100)]
whoops got mask/match test wrong in power_insn.py
should be value & mask == search & mask

2 years agocomment inv,CRbit swap in decode_bo
Luke Kenneth Casson Leighton [Sat, 24 Sep 2022 10:25:04 +0000 (11:25 +0100)]
comment inv,CRbit swap in decode_bo

2 years agosv_binutils: support RS opindex
Dmitry Selyutin [Sat, 24 Sep 2022 09:09:32 +0000 (12:09 +0300)]
sv_binutils: support RS opindex

2 years agopower_insn: reorder mode tables to match the spec
Dmitry Selyutin [Fri, 23 Sep 2022 07:37:47 +0000 (10:37 +0300)]
power_insn: reorder mode tables to match the spec

2 years agopower_insn: rename smr to mr
Dmitry Selyutin [Fri, 23 Sep 2022 07:36:37 +0000 (10:36 +0300)]
power_insn: rename smr to mr

2 years agosv_binutils: provide Boolean class and Rc field
Dmitry Selyutin [Thu, 22 Sep 2022 21:49:46 +0000 (00:49 +0300)]
sv_binutils: provide Boolean class and Rc field

2 years agopower_insn: provide Record.Rc field
Dmitry Selyutin [Thu, 22 Sep 2022 21:49:29 +0000 (00:49 +0300)]
power_insn: provide Record.Rc field

2 years agopower_insn: simplify rsvd naming; drop unused rsvd
Dmitry Selyutin [Thu, 22 Sep 2022 21:30:59 +0000 (00:30 +0300)]
power_insn: simplify rsvd naming; drop unused rsvd

2 years agopower_insn: replace Record.function with Record.mode
Dmitry Selyutin [Thu, 22 Sep 2022 21:30:32 +0000 (00:30 +0300)]
power_insn: replace Record.function with Record.mode

2 years agopysvp64asm: expand vector register macros
Dmitry Selyutin [Wed, 21 Sep 2022 19:35:08 +0000 (22:35 +0300)]
pysvp64asm: expand vector register macros

2 years agosv_binutils: support opcodes offset representation
Dmitry Selyutin [Wed, 21 Sep 2022 15:07:01 +0000 (18:07 +0300)]
sv_binutils: support opcodes offset representation

2 years agosv_binutils: fix fields traversal
Dmitry Selyutin [Wed, 21 Sep 2022 15:06:32 +0000 (18:06 +0300)]
sv_binutils: fix fields traversal

2 years agopower_insn: sort database finally
Dmitry Selyutin [Wed, 21 Sep 2022 15:04:53 +0000 (18:04 +0300)]
power_insn: sort database finally

2 years agopower_insn: provide missing cr_in2 properties
Dmitry Selyutin [Wed, 21 Sep 2022 10:21:46 +0000 (13:21 +0300)]
power_insn: provide missing cr_in2 properties

2 years agosv_binutils: generate svp64_cr_in2 opindices
Dmitry Selyutin [Wed, 21 Sep 2022 08:39:00 +0000 (11:39 +0300)]
sv_binutils: generate svp64_cr_in2 opindices

2 years agosv_binutils: generate BA opindex
Dmitry Selyutin [Wed, 21 Sep 2022 08:37:46 +0000 (11:37 +0300)]
sv_binutils: generate BA opindex

2 years agopower_fields: restore class-oriented traversal
Dmitry Selyutin [Tue, 20 Sep 2022 20:50:43 +0000 (23:50 +0300)]
power_fields: restore class-oriented traversal

2 years agopcdec. works!
Jacob Lifshay [Sat, 24 Sep 2022 00:12:47 +0000 (17:12 -0700)]
pcdec. works!

2 years agocheck svstate (vl) in failfirst test
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 23:00:20 +0000 (00:00 +0100)]
check svstate (vl) in failfirst test

2 years agogrr annoying recurrence of svshape bug, mscale starts with 6 bits
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 22:15:23 +0000 (23:15 +0100)]
grr annoying recurrence of svshape bug, mscale starts with 6 bits

2 years agoadd data-dependent fail-first mode, Rc=1 variant not RC1 yet
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 21:44:14 +0000 (22:44 +0100)]
add data-dependent fail-first mode, Rc=1 variant not RC1 yet
first unit test passes, not Vertical-First Mode

2 years agowhoops consistent inversion of inv,CRbit was CRbit,inv
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 21:42:49 +0000 (22:42 +0100)]
whoops consistent inversion of inv,CRbit was CRbit,inv

2 years agoextra failfirst dis tests
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 20:17:52 +0000 (21:17 +0100)]
extra failfirst dis tests

2 years agoremove barse-ackwardsness, use SelectableInt() in decode_bo
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 19:20:39 +0000 (20:20 +0100)]
remove barse-ackwardsness, use SelectableInt() in decode_bo

2 years agoput back the barse-ackward decode_bo inversion of {inv||CR_bit}
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 19:12:05 +0000 (20:12 +0100)]
put back the barse-ackward decode_bo inversion of {inv||CR_bit}

2 years agoremove need for explicit-hack for "pcdec." - rc column in minor_4.csv file
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 17:40:33 +0000 (18:40 +0100)]
remove need for explicit-hack for "pcdec." - rc column in minor_4.csv file
can be set "rc=ONE" which tells ISACaller (and PowerDecoder2) to
*always* write to CR0

2 years 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."
.

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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)

2 years 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

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

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

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