openpower-isa.git
2 years agorewrite pcdec. pseudocode to work better for JPEG
Jacob Lifshay [Fri, 30 Sep 2022 03:17:50 +0000 (20:17 -0700)]
rewrite pcdec. pseudocode to work better for JPEG

the pcdec. unittests aren't updated yet

2 years agoadd lookup table generation for JPEG decode
Jacob Lifshay [Fri, 30 Sep 2022 01:44:47 +0000 (18:44 -0700)]
add lookup table generation for JPEG decode

2 years agoallow logging function to be overridden for Mem.log_fancy
Jacob Lifshay [Fri, 30 Sep 2022 01:44:23 +0000 (18:44 -0700)]
allow logging function to be overridden for Mem.log_fancy

2 years agoconvert svp64 bigint unittests to use TestAccumulatorBase
Jacob Lifshay [Thu, 29 Sep 2022 23:21:22 +0000 (16:21 -0700)]
convert svp64 bigint unittests to use TestAccumulatorBase

2 years agofinish changing to use adde, not addeo for bigint add
Jacob Lifshay [Thu, 29 Sep 2022 22:46:48 +0000 (15:46 -0700)]
finish changing to use adde, not addeo for bigint add

2 years agosv.adde not sv.addeo
Luke Kenneth Casson Leighton [Thu, 29 Sep 2022 18:00:30 +0000 (19:00 +0100)]
sv.adde not sv.addeo

2 years agodestination for maddedu and divmod2du for RS defaults to RC for scalar
Luke Kenneth Casson Leighton [Thu, 29 Sep 2022 14:06:52 +0000 (15:06 +0100)]
destination for maddedu and divmod2du for RS defaults to RC for scalar

2 years agowowser, complex. implementing maddedu implicit RC/RS rules.
Luke Kenneth Casson Leighton [Thu, 29 Sep 2022 13:59:45 +0000 (14:59 +0100)]
wowser, complex. implementing maddedu implicit RC/RS rules.
still TODO
    <!-- bit 8 of EXTRA is clear: RS.[s|v]=RT.[s|v]+MAXVL
    <!-- bit 8 of EXTRA is set  : RS.[s|v]=RC.[s|v]
actually it is currently "if RC is scalar then RS=RC" which is more
sensible

2 years agoadd carry-roll-over-vector-mul-with-add (!) unit test
Luke Kenneth Casson Leighton [Thu, 29 Sep 2022 13:57:26 +0000 (14:57 +0100)]
add carry-roll-over-vector-mul-with-add (!) unit test
test_caller_svp64_bigint.py
https://bugs.libre-soc.org/show_bug.cgi?id=937

2 years agocomments
Luke Kenneth Casson Leighton [Thu, 29 Sep 2022 11:09:43 +0000 (12:09 +0100)]
comments

2 years agoadd shift-left and shift-right scalar-to-vector tests
Luke Kenneth Casson Leighton [Thu, 29 Sep 2022 10:56:20 +0000 (11:56 +0100)]
add shift-left and shift-right scalar-to-vector tests

2 years agoupdate iterators in ISACaller, not used yet
Luke Kenneth Casson Leighton [Thu, 29 Sep 2022 01:39:55 +0000 (02:39 +0100)]
update iterators in ISACaller, not used yet

2 years agorename madded->maddedu for consistency with PowerISA maddhdu instruction
Jacob Lifshay [Thu, 29 Sep 2022 03:10:05 +0000 (20:10 -0700)]
rename madded->maddedu for consistency with PowerISA maddhdu instruction

2 years agorename divrem2du->divmod2du for consistency with PowerISA mod* instructions
Jacob Lifshay [Thu, 29 Sep 2022 03:05:02 +0000 (20:05 -0700)]
rename divrem2du->divmod2du for consistency with PowerISA mod* instructions

2 years agoadd bigint tests and fix madded pseudocode
Jacob Lifshay [Thu, 29 Sep 2022 02:46:54 +0000 (19:46 -0700)]
add bigint tests and fix madded pseudocode

2 years agoadd bigint ops
Jacob Lifshay [Thu, 29 Sep 2022 02:46:15 +0000 (19:46 -0700)]
add bigint ops

2 years agofill out dsld/dsrd pseudocode
Jacob Lifshay [Thu, 29 Sep 2022 02:45:00 +0000 (19:45 -0700)]
fill out dsld/dsrd pseudocode

2 years agoadd missing DRAFT comment
Jacob Lifshay [Thu, 29 Sep 2022 02:43:16 +0000 (19:43 -0700)]
add missing DRAFT comment

2 years agofix test_minor_30
Jacob Lifshay [Thu, 29 Sep 2022 02:39:27 +0000 (19:39 -0700)]
fix test_minor_30

2 years agoformat code
Jacob Lifshay [Thu, 29 Sep 2022 02:39:07 +0000 (19:39 -0700)]
format code

2 years agoclean up bigint instruction naming
Jacob Lifshay [Thu, 29 Sep 2022 02:33:00 +0000 (19:33 -0700)]
clean up bigint instruction naming

2 years agoremove unnecesary commented code
Jacob Lifshay [Thu, 29 Sep 2022 02:29:20 +0000 (19:29 -0700)]
remove unnecesary commented code

2 years agoadd unofficial and comment2 fields to minor_31.csv
Jacob Lifshay [Thu, 29 Sep 2022 02:08:07 +0000 (19:08 -0700)]
add unofficial and comment2 fields to minor_31.csv

2 years agosrcstep
Luke Kenneth Casson Leighton [Wed, 28 Sep 2022 23:49:46 +0000 (00:49 +0100)]
srcstep

2 years agorename iterators init function
Luke Kenneth Casson Leighton [Wed, 28 Sep 2022 21:14:17 +0000 (22:14 +0100)]
rename iterators init function

2 years agoredundant comment
Luke Kenneth Casson Leighton [Wed, 28 Sep 2022 21:04:16 +0000 (22:04 +0100)]
redundant comment

2 years agosplit out svstate update in ISACaller
Luke Kenneth Casson Leighton [Wed, 28 Sep 2022 21:00:23 +0000 (22:00 +0100)]
split out svstate update in ISACaller

2 years agomove failfirst check to separate function in ISACaller
Luke Kenneth Casson Leighton [Wed, 28 Sep 2022 20:44:54 +0000 (21:44 +0100)]
move failfirst check to separate function in ISACaller

2 years agonew revision of dsld
Luke Kenneth Casson Leighton [Wed, 28 Sep 2022 20:00:10 +0000 (21:00 +0100)]
new revision of dsld

2 years agoadd double-sld pseudocode, first draft
Luke Kenneth Casson Leighton [Wed, 28 Sep 2022 18:33:48 +0000 (19:33 +0100)]
add double-sld pseudocode, first draft

2 years agoadd limit argument to MASK() helper
Luke Kenneth Casson Leighton [Wed, 28 Sep 2022 18:33:00 +0000 (19:33 +0100)]
add limit argument to MASK() helper

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