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

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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

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

19 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

19 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/

19 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

19 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

20 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

20 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

20 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

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

20 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

20 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

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

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

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

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

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

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

20 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

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

20 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

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

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

20 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

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

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

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

20 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

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

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

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

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

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

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

20 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

20 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

20 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

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

20 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

20 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

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

20 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

20 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

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

20 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

20 months agoparameterise the target block in chacha20 test,
Luke Kenneth Casson Leighton [Sun, 12 Mar 2023 14:38:42 +0000 (14:38 +0000)]
parameterise the target block in chacha20 test,
set the parameter (block) to GPR 64

20 months agoadd print-out for chacha20 schedule
Luke Kenneth Casson Leighton [Sun, 12 Mar 2023 10:52:01 +0000 (10:52 +0000)]
add print-out for chacha20 schedule

20 months agofix tabs
Konstantinos Margaritis [Sun, 12 Mar 2023 10:50:52 +0000 (10:50 +0000)]
fix tabs

20 months ago[WIP] xchacha20 SVP64 implementation using pypowersim wrapper
Konstantinos Margaritis [Sun, 12 Mar 2023 10:44:43 +0000 (10:44 +0000)]
[WIP] xchacha20 SVP64 implementation using pypowersim wrapper

20 months agouse absolute path
Konstantinos Margaritis [Sun, 12 Mar 2023 10:43:46 +0000 (10:43 +0000)]
use absolute path

20 months agoupdate pseudocode for dsld/dsrd to note that only when Rc=1 is setting
Luke Kenneth Casson Leighton [Wed, 8 Mar 2023 17:19:41 +0000 (17:19 +0000)]
update pseudocode for dsld/dsrd to note that only when Rc=1 is setting
overflow=1 relevant. for ls003

21 months agoafter move data to new directory, update runner-script to match
Luke Kenneth Casson Leighton [Mon, 20 Feb 2023 12:44:03 +0000 (12:44 +0000)]
after move data to new directory, update runner-script to match

21 months agopower_enums: enable Rc-aware dsld/dsrd
Dmitry Selyutin [Tue, 24 Jan 2023 18:47:09 +0000 (21:47 +0300)]
power_enums: enable Rc-aware dsld/dsrd

21 months agofields.text: fix TLI XO format
Dmitry Selyutin [Tue, 24 Jan 2023 13:22:44 +0000 (16:22 +0300)]
fields.text: fix TLI XO format

21 months agobitmanip.mdwn: add missing Rc static operand
Dmitry Selyutin [Tue, 24 Jan 2023 13:22:13 +0000 (16:22 +0300)]
bitmanip.mdwn: add missing Rc static operand

22 months agosvp64_utf_8_validation.py: convert labels to addresses
Dmitry Selyutin [Sun, 22 Jan 2023 17:46:58 +0000 (20:46 +0300)]
svp64_utf_8_validation.py: convert labels to addresses

22 months agopower_insn: fix dst/src duplication detection
Dmitry Selyutin [Sun, 22 Jan 2023 00:32:47 +0000 (03:32 +0300)]
power_insn: fix dst/src duplication detection

22 months agopower_insn: canonicalize SVP64 insn name
Dmitry Selyutin [Sat, 21 Jan 2023 22:06:23 +0000 (01:06 +0300)]
power_insn: canonicalize SVP64 insn name

22 months agopower_insn: hack CR assembly
Dmitry Selyutin [Sat, 21 Jan 2023 18:58:22 +0000 (21:58 +0300)]
power_insn: hack CR assembly

22 months agopower_insn: override bogus FMA instructions
Dmitry Selyutin [Fri, 20 Jan 2023 16:07:27 +0000 (19:07 +0300)]
power_insn: override bogus FMA instructions

22 months agopower_insn: refactor operands; simplify lookups
Dmitry Selyutin [Thu, 19 Jan 2023 21:33:31 +0000 (00:33 +0300)]
power_insn: refactor operands; simplify lookups

22 months agopysvp64asm: drop obsolete code
Dmitry Selyutin [Thu, 19 Jan 2023 04:25:01 +0000 (07:25 +0300)]
pysvp64asm: drop obsolete code

22 months agopower_insn: fix paired registers disassembly
Dmitry Selyutin [Wed, 18 Jan 2023 19:58:00 +0000 (22:58 +0300)]
power_insn: fix paired registers disassembly

22 months agopower_insn: support legacy style
Dmitry Selyutin [Mon, 16 Jan 2023 19:10:44 +0000 (22:10 +0300)]
power_insn: support legacy style

22 months agopower_insn: major refactoring and cleanup
Dmitry Selyutin [Mon, 19 Dec 2022 22:34:00 +0000 (01:34 +0300)]
power_insn: major refactoring and cleanup

22 months agopysvp64dis: do not create temporary bytes upon load
Dmitry Selyutin [Sun, 15 Jan 2023 08:35:18 +0000 (11:35 +0300)]
pysvp64dis: do not create temporary bytes upon load

22 months agopower_enums: support paired registers
Dmitry Selyutin [Sun, 15 Jan 2023 08:32:38 +0000 (11:32 +0300)]
power_enums: support paired registers

22 months agopower_fields: support assignment to same class instance
Dmitry Selyutin [Fri, 6 Jan 2023 17:22:53 +0000 (20:22 +0300)]
power_fields: support assignment to same class instance

22 months agopower_enums: fix CR register types
Dmitry Selyutin [Sun, 18 Dec 2022 20:16:28 +0000 (23:16 +0300)]
power_enums: fix CR register types

22 months agopower_enums: fix RC1 predicates conversion
Dmitry Selyutin [Sun, 18 Dec 2022 19:13:20 +0000 (22:13 +0300)]
power_enums: fix RC1 predicates conversion

22 months agopysvp64asm: avoid empty fields
Dmitry Selyutin [Sun, 18 Dec 2022 18:36:09 +0000 (21:36 +0300)]
pysvp64asm: avoid empty fields

22 months agoisatables: split dsld/dsrd Rc versions
Dmitry Selyutin [Sun, 18 Dec 2022 18:35:26 +0000 (21:35 +0300)]
isatables: split dsld/dsrd Rc versions

22 months agopower_insn: fix signed operands assembly
Dmitry Selyutin [Tue, 13 Dec 2022 23:32:43 +0000 (02:32 +0300)]
power_insn: fix signed operands assembly

22 months agopower_insn: fix arguments conversion
Dmitry Selyutin [Tue, 13 Dec 2022 19:47:23 +0000 (22:47 +0300)]
power_insn: fix arguments conversion

22 months agopower_insn: fix specifiers errors
Dmitry Selyutin [Tue, 13 Dec 2022 19:46:14 +0000 (22:46 +0300)]
power_insn: fix specifiers errors

22 months agopower_insn: common records lookup
Dmitry Selyutin [Tue, 13 Dec 2022 09:03:52 +0000 (12:03 +0300)]
power_insn: common records lookup

22 months agopower_insn: consider EXTS operand as signed
Dmitry Selyutin [Mon, 12 Dec 2022 21:55:32 +0000 (00:55 +0300)]
power_insn: consider EXTS operand as signed

22 months agopower_insn: discard SVP64 record for word instructions
Dmitry Selyutin [Mon, 12 Dec 2022 19:42:49 +0000 (22:42 +0300)]
power_insn: discard SVP64 record for word instructions

22 months agopower_insn: support pi/lf specifiers
Dmitry Selyutin [Sun, 11 Dec 2022 16:53:25 +0000 (19:53 +0300)]
power_insn: support pi/lf specifiers

22 months agopower_insn: support ctr/cti specifiers
Dmitry Selyutin [Mon, 21 Nov 2022 17:58:15 +0000 (20:58 +0300)]
power_insn: support ctr/cti specifiers

22 months agopower_insn: support vs/vsi/vsb/vsbi specifiers
Dmitry Selyutin [Mon, 21 Nov 2022 17:54:52 +0000 (20:54 +0300)]
power_insn: support vs/vsi/vsb/vsbi specifiers

22 months agopower_insn: support lru specifier
Dmitry Selyutin [Mon, 21 Nov 2022 17:36:57 +0000 (20:36 +0300)]
power_insn: support lru specifier

22 months agopower_insn: support slu specifier
Dmitry Selyutin [Mon, 21 Nov 2022 17:36:29 +0000 (20:36 +0300)]
power_insn: support slu specifier

22 months agopower_insn: support sl specifier
Dmitry Selyutin [Mon, 21 Nov 2022 17:35:24 +0000 (20:35 +0300)]
power_insn: support sl specifier

22 months agopower_insn: support snz specifier
Dmitry Selyutin [Mon, 21 Nov 2022 17:34:11 +0000 (20:34 +0300)]
power_insn: support snz specifier

22 months agopower_insn: support all specifier
Dmitry Selyutin [Mon, 21 Nov 2022 17:33:22 +0000 (20:33 +0300)]
power_insn: support all specifier

22 months agopower_insn: support crm specifier
Dmitry Selyutin [Mon, 21 Nov 2022 17:32:54 +0000 (20:32 +0300)]
power_insn: support crm specifier

22 months agopower_insn: support mr/mrr specifiers
Dmitry Selyutin [Mon, 21 Nov 2022 16:48:26 +0000 (19:48 +0300)]
power_insn: support mr/mrr specifiers

22 months agopower_insn: support sats/satu specifiers
Dmitry Selyutin [Mon, 21 Nov 2022 16:34:06 +0000 (19:34 +0300)]
power_insn: support sats/satu specifiers

22 months agopower_insn: simplify assembly validation
Dmitry Selyutin [Mon, 21 Nov 2022 16:12:13 +0000 (19:12 +0300)]
power_insn: simplify assembly validation

22 months agopower_insn: support sea specifier assembly
Dmitry Selyutin [Sun, 20 Nov 2022 14:49:44 +0000 (17:49 +0300)]
power_insn: support sea specifier assembly