openpower-isa.git
2 years agosvstep calls SVSTATE_NEXT so needs svstate_pre_inc
Luke Kenneth Casson Leighton [Sat, 1 Oct 2022 23:24:25 +0000 (00:24 +0100)]
svstep calls SVSTATE_NEXT so needs svstate_pre_inc
setvl no longer calls SVSTATE_NEXT so does not

2 years agoremove special case from setvl calling SVSTATE_NEXT,
Luke Kenneth Casson Leighton [Sat, 1 Oct 2022 23:10:15 +0000 (00:10 +0100)]
remove special case from setvl calling SVSTATE_NEXT,
only accessible through svstep now

2 years agoreplacing setvl-svstep with just svstep
Luke Kenneth Casson Leighton [Sat, 1 Oct 2022 21:40:21 +0000 (22:40 +0100)]
replacing setvl-svstep with just svstep

2 years agoreplacing setvl-svstep with just svstep
Luke Kenneth Casson Leighton [Sat, 1 Oct 2022 21:36:04 +0000 (22:36 +0100)]
replacing setvl-svstep with just svstep

2 years agoreplacing setvl-svstep with just svstep
Luke Kenneth Casson Leighton [Sat, 1 Oct 2022 21:27:25 +0000 (22:27 +0100)]
replacing setvl-svstep with just svstep

2 years agocomments
Luke Kenneth Casson Leighton [Sat, 1 Oct 2022 16:00:06 +0000 (17:00 +0100)]
comments

2 years agocomments
Luke Kenneth Casson Leighton [Sat, 1 Oct 2022 15:55:13 +0000 (16:55 +0100)]
comments

2 years agominor cleanup in ISACaller on result handling
Luke Kenneth Casson Leighton [Sat, 1 Oct 2022 15:44:56 +0000 (16:44 +0100)]
minor cleanup in ISACaller on result handling
create a dictionary matched with output reg names, adapt handle_carry
handle_overflow etc. to use it. mostly

2 years agosimplify ISACaller execute_one
Luke Kenneth Casson Leighton [Sat, 1 Oct 2022 13:43:24 +0000 (14:43 +0100)]
simplify ISACaller execute_one

2 years agosimplify setting default SVSHAPE SPRs to zero
Luke Kenneth Casson Leighton [Sat, 1 Oct 2022 13:21:44 +0000 (14:21 +0100)]
simplify setting default SVSHAPE SPRs to zero

2 years agoincrease pcdec. output compression by skipping impossible codes
Jacob Lifshay [Sat, 1 Oct 2022 00:10:44 +0000 (17:10 -0700)]
increase pcdec. output compression by skipping impossible codes

2 years agoprefix codes tests pass
Jacob Lifshay [Fri, 30 Sep 2022 23:08:53 +0000 (16:08 -0700)]
prefix codes tests pass

2 years agono need for ctr mode on sv.bc
Luke Kenneth Casson Leighton [Fri, 30 Sep 2022 17:39:45 +0000 (18:39 +0100)]
no need for ctr mode on sv.bc

2 years agoctr mode not needed, just use unconditional CTR dec
Luke Kenneth Casson Leighton [Fri, 30 Sep 2022 17:37:35 +0000 (18:37 +0100)]
ctr mode not needed, just use unconditional CTR dec

2 years agoset srcstep/dststep to zero in StepLoop (ISACaller) at loopend
Luke Kenneth Casson Leighton [Fri, 30 Sep 2022 13:39:27 +0000 (14:39 +0100)]
set srcstep/dststep to zero in StepLoop (ISACaller) at loopend
see if a different style of looping can be used

2 years agoadd sv.bc vlset-inverted test
Luke Kenneth Casson Leighton [Fri, 30 Sep 2022 13:03:20 +0000 (14:03 +0100)]
add sv.bc vlset-inverted test

2 years agocomments/variables-cleanup
Luke Kenneth Casson Leighton [Fri, 30 Sep 2022 12:59:05 +0000 (13:59 +0100)]
comments/variables-cleanup

2 years agoadd sv.bc vlset-inverted test
Luke Kenneth Casson Leighton [Fri, 30 Sep 2022 11:28:19 +0000 (12:28 +0100)]
add sv.bc vlset-inverted test
this one inverts all the logic (some instead of all, LE instead of GT,
VL-truncate if FAIL)
and thus can swap the success-fail branch point.  avoids one branch in loops

2 years agoadd sv.bc/vs - VLset - test. truncates VL at the vector-condition-fail point
Luke Kenneth Casson Leighton [Fri, 30 Sep 2022 10:56:55 +0000 (11:56 +0100)]
add sv.bc/vs - VLset - test. truncates VL at the vector-condition-fail point

2 years agoadd code-comments in variance_svp64_real.s on how to use sv.bc/ctr/all
Luke Kenneth Casson Leighton [Fri, 30 Sep 2022 09:47:41 +0000 (10:47 +0100)]
add code-comments in variance_svp64_real.s on how to use sv.bc/ctr/all

2 years agoadd new sv.bc CTR-loop test, subtracts VL from CTR
Luke Kenneth Casson Leighton [Fri, 30 Sep 2022 09:37:57 +0000 (10:37 +0100)]
add new sv.bc CTR-loop test, subtracts VL from CTR

2 years agowhitespace
Luke Kenneth Casson Leighton [Fri, 30 Sep 2022 08:14:26 +0000 (09:14 +0100)]
whitespace

2 years agouse regs variables in get_predint
Luke Kenneth Casson Leighton [Fri, 30 Sep 2022 08:12:41 +0000 (09:12 +0100)]
use regs variables in get_predint

2 years agocomments
Luke Kenneth Casson Leighton [Fri, 30 Sep 2022 08:06:58 +0000 (09:06 +0100)]
comments

2 years agofix pcdec. assembly -- merge into va_form() since it's no longer VA2-form
Jacob Lifshay [Fri, 30 Sep 2022 03:49:16 +0000 (20:49 -0700)]
fix pcdec. assembly -- merge into va_form() since it's no longer VA2-form

2 years agofix pcdec.'s form
Jacob Lifshay [Fri, 30 Sep 2022 03:46:38 +0000 (20:46 -0700)]
fix pcdec.'s form

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