openpower-isa.git
12 months agoAdd 2 more instructions to help with 2-coeff butterfly maddsubrs
Konstantinos Margaritis [Thu, 4 May 2023 14:11:31 +0000 (14:11 +0000)]
Add 2 more instructions to help with 2-coeff butterfly
fdct_round_shift(a*c1 +/- b*c2)
They are to be used complementary to maddsubrs, so one can now
do this calculation in 3 instructions.
Added some unit tests to demonstrate the operation.

12 months agouse a simpler way to do the same thing
Konstantinos Margaritis [Mon, 1 May 2023 18:05:10 +0000 (18:05 +0000)]
use a simpler way to do the same thing

12 months agoHandle large 64-bit values, but only the low 64-bit half of the multiplication, add...
Konstantinos Margaritis [Sun, 30 Apr 2023 21:29:47 +0000 (21:29 +0000)]
Handle large 64-bit values, but only the low 64-bit half of the multiplication, add more tests

12 months agodo proper rounding, no rounding for SH=0 (for now), add tests
Konstantinos Margaritis [Sun, 30 Apr 2023 18:10:35 +0000 (18:10 +0000)]
do proper rounding, no rounding for SH=0 (for now), add tests

13 months agoResult needs rounding so add +1 to prod*
Konstantinos Margaritis [Sat, 29 Apr 2023 15:29:32 +0000 (15:29 +0000)]
Result needs rounding so add +1 to prod*

13 months agohandle negatives correctly by adding sign bit to final result
Konstantinos Margaritis [Fri, 28 Apr 2023 16:41:22 +0000 (16:41 +0000)]
handle negatives correctly by adding sign bit to final result

13 months agoalmost there, positive values work, negative values differ by 1
Konstantinos Margaritis [Fri, 28 Apr 2023 16:02:26 +0000 (16:02 +0000)]
almost there, positive values work, negative values differ by 1

13 months agouse proper register sizes
Konstantinos Margaritis [Fri, 28 Apr 2023 11:48:48 +0000 (11:48 +0000)]
use proper register sizes

13 months agoMULS instead of MUL, RA instead of RT in in1
Konstantinos Margaritis [Fri, 28 Apr 2023 11:41:02 +0000 (11:41 +0000)]
MULS instead of MUL, RA instead of RT in in1

13 months agoTurns out DCTI-Form is another variant of A-Form
Konstantinos Margaritis [Fri, 28 Apr 2023 11:26:11 +0000 (11:26 +0000)]
Turns out DCTI-Form is another variant of A-Form

13 months agominor fixes in pseudocode, CONST_UI->CONST_SH in minor_22.csv
Konstantinos Margaritis [Fri, 28 Apr 2023 11:10:24 +0000 (11:10 +0000)]
minor fixes in pseudocode, CONST_UI->CONST_SH in minor_22.csv

13 months agoWIP: maddsubrs initial approach
Konstantinos Margaritis [Fri, 28 Apr 2023 09:46:45 +0000 (09:46 +0000)]
WIP: maddsubrs initial approach

13 months agoprefix-sum remap works!
Jacob Lifshay [Fri, 28 Apr 2023 08:49:30 +0000 (01:49 -0700)]
prefix-sum remap works!

13 months agochange order to tuple in remap preduce tests/demos to match rest of simulator
Jacob Lifshay [Fri, 28 Apr 2023 08:48:03 +0000 (01:48 -0700)]
change order to tuple in remap preduce tests/demos to match rest of simulator

13 months agofix <u and >u with int arguments
Jacob Lifshay [Fri, 28 Apr 2023 08:47:12 +0000 (01:47 -0700)]
fix <u and >u with int arguments

13 months agoreduce fdmadds down to only 3 operands, RT-overwrite, to save on operand
Luke Kenneth Casson Leighton [Fri, 28 Apr 2023 07:53:40 +0000 (08:53 +0100)]
reduce fdmadds down to only 3 operands, RT-overwrite, to save on operand
space.  it is still 3-in 2-out but FRC is now FRA

13 months agoadd SVSHAPE setup for parallel/prefix but it refuses to work
Luke Kenneth Casson Leighton [Thu, 27 Apr 2023 23:42:14 +0000 (00:42 +0100)]
add SVSHAPE setup for parallel/prefix but it refuses to work
correctly right now because SVyd is utterly borked. needs investigating

13 months agoadd implicit rs detection for maddsubrs
Luke Kenneth Casson Leighton [Thu, 27 Apr 2023 20:01:28 +0000 (21:01 +0100)]
add implicit rs detection for maddsubrs

13 months agolink in new parallel-prefix REMAP schedule
Luke Kenneth Casson Leighton [Thu, 27 Apr 2023 09:23:27 +0000 (10:23 +0100)]
link in new parallel-prefix REMAP schedule

13 months agoadd scan/prefix-sum support to copy of parallel-reduce remap iterator
Jacob Lifshay [Thu, 27 Apr 2023 05:09:19 +0000 (22:09 -0700)]
add scan/prefix-sum support to copy of parallel-reduce remap iterator

13 months agoformat remap_preduce_yield.py
Jacob Lifshay [Thu, 27 Apr 2023 02:27:58 +0000 (19:27 -0700)]
format remap_preduce_yield.py

13 months agopower_insn: deprecate ff/pr common code nopr
Dmitry Selyutin [Wed, 26 Apr 2023 11:36:21 +0000 (14:36 +0300)]
power_insn: deprecate ff/pr common code

13 months agopower_insn: deprecate PR specifier
Dmitry Selyutin [Wed, 26 Apr 2023 11:31:56 +0000 (14:31 +0300)]
power_insn: deprecate PR specifier

13 months agopower_insn: deprecate normal PR mode
Dmitry Selyutin [Wed, 26 Apr 2023 11:24:18 +0000 (14:24 +0300)]
power_insn: deprecate normal PR mode

13 months agopysvp64dis: deprecate pr tests
Dmitry Selyutin [Wed, 26 Apr 2023 11:37:35 +0000 (14:37 +0300)]
pysvp64dis: deprecate pr tests

13 months agopysvp64asm: deprecate pr tests
Dmitry Selyutin [Wed, 26 Apr 2023 11:37:25 +0000 (14:37 +0300)]
pysvp64asm: deprecate pr tests

13 months agopower_enums: sync forms
Dmitry Selyutin [Wed, 26 Apr 2023 16:29:56 +0000 (19:29 +0300)]
power_enums: sync forms

13 months agoadd CW and CW2 Form
Luke Kenneth Casson Leighton [Tue, 25 Apr 2023 17:36:31 +0000 (18:36 +0100)]
add CW and CW2 Form
needed for both #1035 and #1067

13 months agocheck RC1, add data-dependent fail-first LD/ST test
Luke Kenneth Casson Leighton [Sat, 15 Apr 2023 16:32:29 +0000 (17:32 +0100)]
check RC1, add data-dependent fail-first LD/ST test

13 months agoreplace min/max[su][.] with minmax[.]
Jacob Lifshay [Tue, 25 Apr 2023 06:49:19 +0000 (23:49 -0700)]
replace min/max[su][.] with minmax[.]

13 months agoadd unofficial and comment2 columns to minor_19.csv
Jacob Lifshay [Tue, 25 Apr 2023 06:47:20 +0000 (23:47 -0700)]
add unofficial and comment2 columns to minor_19.csv

13 months agoadd MM-form
Jacob Lifshay [Tue, 25 Apr 2023 06:45:18 +0000 (23:45 -0700)]
add MM-form

13 months agofix bug where pseudo-code assignments modify more than just the variable being assign...
Jacob Lifshay [Tue, 25 Apr 2023 06:15:11 +0000 (23:15 -0700)]
fix bug where pseudo-code assignments modify more than just the variable being assigned to

13 months agorename/convert/merge XLCASTU/XLCASTS to EXTZXL/EXTSXL change-xlenification-bug-1064
Jacob Lifshay [Fri, 21 Apr 2023 03:23:48 +0000 (20:23 -0700)]
rename/convert/merge XLCASTU/XLCASTS to EXTZXL/EXTSXL

13 months agorewrite all uses of XLCASTU/XLCASTS
Jacob Lifshay [Fri, 21 Apr 2023 03:15:48 +0000 (20:15 -0700)]
rewrite all uses of XLCASTU/XLCASTS

13 months agoadd EXTZ since it's in PowerISA v3.1B (see lbz for an example)
Jacob Lifshay [Fri, 21 Apr 2023 03:13:57 +0000 (20:13 -0700)]
add EXTZ since it's in PowerISA v3.1B (see lbz for an example)

13 months agofix EXTSXL/XLCASTU/XLCASTS when inputs are python ints
Jacob Lifshay [Thu, 20 Apr 2023 04:00:51 +0000 (21:00 -0700)]
fix EXTSXL/XLCASTU/XLCASTS when inputs are python ints

13 months agouse proper cast function
Jacob Lifshay [Thu, 20 Apr 2023 03:36:09 +0000 (20:36 -0700)]
use proper cast function

13 months agochange XLEN-ification
Jacob Lifshay [Thu, 20 Apr 2023 01:12:32 +0000 (18:12 -0700)]
change XLEN-ification

See bug #1064

13 months agochange extsb/h/w to scale based on XLEN rather than extending from a fixed width
Jacob Lifshay [Thu, 20 Apr 2023 00:58:19 +0000 (17:58 -0700)]
change extsb/h/w to scale based on XLEN rather than extending from a fixed width

See https://bugs.libre-soc.org/show_bug.cgi?id=1061

13 months agoadd shaddw
Jacob Lifshay [Tue, 18 Apr 2023 04:26:00 +0000 (21:26 -0700)]
add shaddw

13 months agospelling fix
Jacob Lifshay [Tue, 18 Apr 2023 04:25:40 +0000 (21:25 -0700)]
spelling fix

13 months agomedia: migrate to binutils
Dmitry Selyutin [Wed, 12 Apr 2023 18:16:18 +0000 (21:16 +0300)]
media: migrate to binutils

13 months agosv_binutils: fix broken script
Dmitry Selyutin [Mon, 10 Apr 2023 16:11:23 +0000 (19:11 +0300)]
sv_binutils: fix broken script

13 months agoadd power_decode_svp64_rm.py capability for new LD/ST format
Luke Kenneth Casson Leighton [Thu, 6 Apr 2023 12:26:20 +0000 (13:26 +0100)]
add power_decode_svp64_rm.py capability for new LD/ST format
https://bugs.libre-soc.org/show_bug.cgi?id=1047

13 months agoadd quick test_pysvp64dis.py of LD/ST data-dependent fail-first
Luke Kenneth Casson Leighton [Tue, 4 Apr 2023 15:10:02 +0000 (16:10 +0100)]
add quick test_pysvp64dis.py of LD/ST data-dependent fail-first

13 months agohttps://bugs.libre-soc.org/show_bug.cgi?id=1047
Luke Kenneth Casson Leighton [Tue, 4 Apr 2023 14:26:49 +0000 (15:26 +0100)]
https://bugs.libre-soc.org/show_bug.cgi?id=1047
start sorting out power_insn.py to conform to new LD/ST spec.
Data-Dependent Fail-First gets top priority, pred-result is dropped,
saturation removed from LDST-IDX leaving space for "els" to be added
with its own bit

13 months agowhitespace cleanup (80 char per line hard limit)
Luke Kenneth Casson Leighton [Tue, 4 Apr 2023 13:18:02 +0000 (14:18 +0100)]
whitespace cleanup (80 char per line hard limit)

13 months agocomment about massive unnecessary code-duplication that should not
Luke Kenneth Casson Leighton [Tue, 4 Apr 2023 13:02:13 +0000 (14:02 +0100)]
comment about massive unnecessary code-duplication that should not
have been done in the way it was, but it is a good step along the right
lines because it a gets the job done by b producing the right answers
that c get us to the simplified path in an incremental fashion.
am adding this note in the source code to make sure that readers are aware

13 months agofix setvl unit test which happened to use deprecated
Luke Kenneth Casson Leighton [Tue, 4 Apr 2023 12:48:30 +0000 (13:48 +0100)]
fix setvl unit test which happened to use deprecated
DCT schedule

14 months agofix add-like CA/OV outputs
Jacob Lifshay [Thu, 30 Mar 2023 07:55:20 +0000 (00:55 -0700)]
fix add-like CA/OV outputs

this is a massive kludge, but that's what lkcl requested due to time constraints

14 months agofix broken test case
Jacob Lifshay [Thu, 30 Mar 2023 07:54:22 +0000 (00:54 -0700)]
fix broken test case

forgot to set the expected value to the input value for inputs that aren't outputs

14 months agoadd addex to simulator
Jacob Lifshay [Thu, 30 Mar 2023 07:02:56 +0000 (00:02 -0700)]
add addex to simulator

works, except it has incorrect CA/OV outputs, which I'll fix as part of fixing all add-like ops

14 months agofix typo when getting pseudo-code output variables
Jacob Lifshay [Thu, 30 Mar 2023 05:00:43 +0000 (22:00 -0700)]
fix typo when getting pseudo-code output variables

14 months agoswitch to testing Rc=1 variants
Jacob Lifshay [Thu, 30 Mar 2023 04:38:02 +0000 (21:38 -0700)]
switch to testing Rc=1 variants

14 months agofix `neg[o].` causing the simulator to raise TypeError
Jacob Lifshay [Thu, 30 Mar 2023 04:30:53 +0000 (21:30 -0700)]
fix `neg[o].` causing the simulator to raise TypeError

14 months agoadd case_nego_
Jacob Lifshay [Thu, 30 Mar 2023 03:03:43 +0000 (20:03 -0700)]
add case_nego_

14 months agorename le -> lt since CR bits are lt, gt, eq, and so, not le
Jacob Lifshay [Thu, 30 Mar 2023 02:02:19 +0000 (19:02 -0700)]
rename le -> lt since CR bits are lt, gt, eq, and so, not le

14 months agoremove DCT/iDCT redundant modes which require less-efficient cos tables
Luke Kenneth Casson Leighton [Wed, 29 Mar 2023 09:08:56 +0000 (10:08 +0100)]
remove DCT/iDCT redundant modes which require less-efficient cos tables
turns out that values are often repeated so why waste space especially
when the svshape instruction is under pressure
this goes into https://libre-soc.org/openpower/sv/rfc/ls009/

14 months agoadd test cases for ca/ov outputs of a bunch of add-like ops covered by pia
Jacob Lifshay [Wed, 29 Mar 2023 03:36:22 +0000 (20:36 -0700)]
add test cases for ca/ov outputs of a bunch of add-like ops covered by pia

14 months agoadd check against PIA's output downloaded from ftp.libre-soc.org
Jacob Lifshay [Tue, 28 Mar 2023 07:30:56 +0000 (00:30 -0700)]
add check against PIA's output downloaded from ftp.libre-soc.org

14 months agoall whitespace. reduce to under 80 chars
Luke Kenneth Casson Leighton [Sat, 25 Mar 2023 17:14:51 +0000 (17:14 +0000)]
all whitespace. reduce to under 80 chars

14 months agoupdate comments on svstep returning pack/unpack state
Luke Kenneth Casson Leighton [Sat, 25 Mar 2023 14:14:30 +0000 (14:14 +0000)]
update comments on svstep returning pack/unpack state

14 months agofix docs to align with recent change in setvl syntax/operation
Konstantinos Margaritis [Sat, 25 Mar 2023 16:17:53 +0000 (16:17 +0000)]
fix docs to align with recent change in setvl syntax/operation

14 months agowhitespace - 80 char limit
Luke Kenneth Casson Leighton [Sat, 25 Mar 2023 10:21:30 +0000 (10:21 +0000)]
whitespace - 80 char limit

14 months agoin xchacha20 svp64 assembler remove r22 from setvl and
Luke Kenneth Casson Leighton [Sat, 25 Mar 2023 10:03:11 +0000 (10:03 +0000)]
in xchacha20 svp64 assembler remove r22 from setvl and
use (new, modified) setvl options.  see simplev.mdwn

14 months agoupdated simplev setvl specification pseudocode: MAJOR spec change.
Luke Kenneth Casson Leighton [Sat, 25 Mar 2023 09:55:12 +0000 (09:55 +0000)]
updated simplev setvl specification pseudocode: MAJOR spec change.
VF is set and persistence cleared when *MAXVL* is set
test affected: chacha20

14 months agowhitespace
Luke Kenneth Casson Leighton [Sat, 25 Mar 2023 08:37:27 +0000 (08:37 +0000)]
whitespace

14 months agowhoops added "CRB-Form" format not "CRB"
Luke Kenneth Casson Leighton [Fri, 24 Mar 2023 10:43:27 +0000 (10:43 +0000)]
whoops added "CRB-Form" format not "CRB"

14 months agoadd .bin files to target
Konstantinos Margaritis [Mon, 20 Mar 2023 09:50:44 +0000 (09:50 +0000)]
add .bin files to target

14 months agofix typo
Konstantinos Margaritis [Mon, 20 Mar 2023 09:47:39 +0000 (09:47 +0000)]
fix typo

14 months agoand *.elf files
Konstantinos Margaritis [Mon, 20 Mar 2023 09:46:03 +0000 (09:46 +0000)]
and *.elf files

14 months agoalso clean *.bin files
Konstantinos Margaritis [Mon, 20 Mar 2023 09:45:07 +0000 (09:45 +0000)]
also clean *.bin files

14 months agoEnable compilation and execution on x86 as well
Konstantinos Margaritis [Mon, 20 Mar 2023 09:42:08 +0000 (09:42 +0000)]
Enable compilation and execution on x86 as well

14 months agoPass object code filename instead of actual data
Konstantinos Margaritis [Mon, 20 Mar 2023 09:40:46 +0000 (09:40 +0000)]
Pass object code filename instead of actual data

This enables compilation on non-Power architectures.

14 months agobrief explanation of Vertical-First
Luke Kenneth Casson Leighton [Sat, 18 Mar 2023 22:50:01 +0000 (22:50 +0000)]
brief explanation of Vertical-First

14 months agospelling
Luke Kenneth Casson Leighton [Sat, 18 Mar 2023 22:48:06 +0000 (22:48 +0000)]
spelling

14 months agowhitespace cleanup
Luke Kenneth Casson Leighton [Sat, 18 Mar 2023 22:47:54 +0000 (22:47 +0000)]
whitespace cleanup

14 months agoDocumentation about SVP64 implementation of XChacha20
Konstantinos Margaritis [Sat, 18 Mar 2023 19:56:31 +0000 (19:56 +0000)]
Documentation about SVP64 implementation of XChacha20

14 months agofix tabs
Konstantinos Margaritis [Sat, 18 Mar 2023 00:29:56 +0000 (00:29 +0000)]
fix tabs

14 months agofinal working version
Konstantinos Margaritis [Sat, 18 Mar 2023 00:10:56 +0000 (00:10 +0000)]
final working version

14 months agoadd for syntax highlighting
Konstantinos Margaritis [Sat, 18 Mar 2023 00:08:52 +0000 (00:08 +0000)]
add for syntax highlighting

14 months agocomment some prints, use correct boundaries when copying ciphertext buffer
Konstantinos Margaritis [Sat, 18 Mar 2023 00:08:21 +0000 (00:08 +0000)]
comment some prints, use correct boundaries when copying ciphertext buffer

14 months agouse svp64 version
Konstantinos Margaritis [Sat, 18 Mar 2023 00:07:50 +0000 (00:07 +0000)]
use svp64 version

14 months agoprint correct/svp64 cipher text
Konstantinos Margaritis [Sat, 18 Mar 2023 00:07:13 +0000 (00:07 +0000)]
print correct/svp64 cipher text

14 months agoAdd xchacha_encrypt_bytes_svp64
Konstantinos Margaritis [Fri, 17 Mar 2023 09:39:18 +0000 (09:39 +0000)]
Add xchacha_encrypt_bytes_svp64

14 months agocall xchacha_encrypt_bytes_svp64
Konstantinos Margaritis [Fri, 17 Mar 2023 09:38:25 +0000 (09:38 +0000)]
call xchacha_encrypt_bytes_svp64

14 months agorewrite loop
Konstantinos Margaritis [Fri, 17 Mar 2023 09:37:57 +0000 (09:37 +0000)]
rewrite loop

14 months agoRefactor code, add quarterround macros
Konstantinos Margaritis [Fri, 17 Mar 2023 09:36:53 +0000 (09:36 +0000)]
Refactor code, add quarterround macros

14 months agoAdd xchacha_encrypt_bytes_svp64 wrapper function
Konstantinos Margaritis [Fri, 17 Mar 2023 09:35:16 +0000 (09:35 +0000)]
Add xchacha_encrypt_bytes_svp64 wrapper function

14 months agoadd CRB-Form fields for crternlogi and crbinlog, they are both now
Luke Kenneth Casson Leighton [Wed, 15 Mar 2023 15:09:35 +0000 (15:09 +0000)]
add CRB-Form fields for crternlogi and crbinlog, they are both now
reduced to 3-in 1-out, both needing to become overwrites due to the
mask field (msk) making BF a Read-Modify-Write
https://bugs.libre-soc.org/show_bug.cgi?id=1023#c4

14 months agoFirst working version of SVP64 arm xchacha_hchacha20() function
Konstantinos Margaritis [Sun, 12 Mar 2023 22:42:23 +0000 (22:42 +0000)]
First working version of SVP64 arm xchacha_hchacha20() function

14 months agoset MAXVL=VL=32 first, then set vertical-first separately
Luke Kenneth Casson Leighton [Sun, 12 Mar 2023 22:27:01 +0000 (22:27 +0000)]
set MAXVL=VL=32 first, then set vertical-first separately
(chacha20)

14 months agoused same input data as the actual C test
Konstantinos Margaritis [Sun, 12 Mar 2023 19:26:30 +0000 (19:26 +0000)]
used same input data as the actual C test

14 months agoWIP: fixed some registers, wrong VL
Konstantinos Margaritis [Sun, 12 Mar 2023 19:26:02 +0000 (19:26 +0000)]
WIP: fixed some registers, wrong VL

14 months agouncomment loop
Konstantinos Margaritis [Sun, 12 Mar 2023 19:24:42 +0000 (19:24 +0000)]
uncomment loop

14 months agochange target registers in test_caller_svp64_chacha20.py to match
Luke Kenneth Casson Leighton [Sun, 12 Mar 2023 15:03:04 +0000 (15:03 +0000)]
change target registers in test_caller_svp64_chacha20.py to match
those in xchacha20_svp64.s

14 months agowhoops use same temp reg for ctr
Luke Kenneth Casson Leighton [Sun, 12 Mar 2023 14:57:15 +0000 (14:57 +0000)]
whoops use same temp reg for ctr

14 months agoparameterise svstep RT (set to 16 in chacha20 test)
Luke Kenneth Casson Leighton [Sun, 12 Mar 2023 14:52:26 +0000 (14:52 +0000)]
parameterise svstep RT (set to 16 in chacha20 test)

14 months agoparameterising VL and SHAPE0-2 in chacha20 test
Luke Kenneth Casson Leighton [Sun, 12 Mar 2023 14:46:07 +0000 (14:46 +0000)]
parameterising VL and SHAPE0-2 in chacha20 test