openpower-isa.git
17 months agogaah a mess (but working)
Luke Kenneth Casson Leighton [Sun, 1 Jan 2023 23:32:29 +0000 (23:32 +0000)]
gaah a mess (but working)
as there is no elf-loading in pypowersim, .data .rodata .eh_frame and other
information is missing and/or in the wrong place.

had to get things working exactly as in media/mp3_0.sh, which is to call
just the one function with the input data pre-loaded into specific memory
locations

17 months agouse qemu user-mode to run cross-compiled xchacha20
Luke Kenneth Casson Leighton [Sun, 1 Jan 2023 15:51:52 +0000 (15:51 +0000)]
use qemu user-mode to run cross-compiled xchacha20

17 months agoascii dump on xchacha20 to compare against x86 version
Luke Kenneth Casson Leighton [Sun, 1 Jan 2023 15:37:33 +0000 (15:37 +0000)]
ascii dump on xchacha20 to compare against x86 version

17 months agoadd -mno-altivec option to xchacha20 test
Luke Kenneth Casson Leighton [Sun, 1 Jan 2023 15:12:19 +0000 (15:12 +0000)]
add -mno-altivec option to xchacha20 test

17 months agoenable misaligned Mem in ISACaller by default
Luke Kenneth Casson Leighton [Sun, 1 Jan 2023 15:09:21 +0000 (15:09 +0000)]
enable misaligned Mem in ISACaller by default

17 months agoHandle newer nMigen adding a "bench" top-level root in VCD files
Cesar Strauss [Sun, 1 Jan 2023 12:32:54 +0000 (09:32 -0300)]
Handle newer nMigen adding a "bench" top-level root in VCD files

17 months agocorrections to boundary-wrapped store, and add misaligned store that is
Luke Kenneth Casson Leighton [Fri, 30 Dec 2022 13:59:47 +0000 (13:59 +0000)]
corrections to boundary-wrapped store, and add misaligned store that is
storing to a single line (not wrapping)

17 months agoadd rollover mem test, store "rolls over" a 64-bit boundary
Luke Kenneth Casson Leighton [Fri, 30 Dec 2022 13:41:49 +0000 (13:41 +0000)]
add rollover mem test, store "rolls over" a 64-bit boundary

17 months agoadd misaligned mem test
Luke Kenneth Casson Leighton [Fri, 30 Dec 2022 13:26:45 +0000 (13:26 +0000)]
add misaligned mem test

17 months agoadd misaligned mem test
Luke Kenneth Casson Leighton [Fri, 30 Dec 2022 13:20:56 +0000 (13:20 +0000)]
add misaligned mem test

17 months agorelocate main() to a single section
Luke Kenneth Casson Leighton [Fri, 30 Dec 2022 13:18:41 +0000 (13:18 +0000)]
relocate main() to a single section
so that it can be put at a fixed address

17 months agoadd unit test for Mem class, need to add misaligned ld/st
Luke Kenneth Casson Leighton [Fri, 30 Dec 2022 13:18:21 +0000 (13:18 +0000)]
add unit test for Mem class, need to add misaligned ld/st

17 months agoprint out memory exception details, on unaligned
Luke Kenneth Casson Leighton [Thu, 29 Dec 2022 21:28:06 +0000 (21:28 +0000)]
print out memory exception details, on unaligned

17 months agoadd .gitignore
Luke Kenneth Casson Leighton [Thu, 29 Dec 2022 16:56:23 +0000 (16:56 +0000)]
add .gitignore

17 months agoadd cross-compiled test of xchacha20 suitable for running under pypowersim
Luke Kenneth Casson Leighton [Thu, 29 Dec 2022 16:48:01 +0000 (16:48 +0000)]
add cross-compiled test of xchacha20 suitable for running under pypowersim

17 months agosimplify by running smallest test
Luke Kenneth Casson Leighton [Thu, 29 Dec 2022 13:10:09 +0000 (13:10 +0000)]
simplify by running smallest test

17 months agoget video pypowersim_wrapper running
Luke Kenneth Casson Leighton [Thu, 29 Dec 2022 13:04:09 +0000 (13:04 +0000)]
get video pypowersim_wrapper running

17 months agoadd bryan hawkins chacha20 source from
Luke Kenneth Casson Leighton [Thu, 29 Dec 2022 12:53:45 +0000 (12:53 +0000)]
add bryan hawkins chacha20 source from
https://github.com/spcnvdr/xchacha20

19 months agoadd maddedus
Jacob Lifshay [Fri, 11 Nov 2022 08:52:36 +0000 (00:52 -0800)]
add maddedus

19 months agofix case_sv_bigint_shift_left_then_back
Jacob Lifshay [Fri, 11 Nov 2022 08:51:07 +0000 (00:51 -0800)]
fix case_sv_bigint_shift_left_then_back

19 months agoXLEN-ify maddedu
Jacob Lifshay [Fri, 11 Nov 2022 08:49:52 +0000 (00:49 -0800)]
XLEN-ify maddedu

19 months agofix maddedu title line
Jacob Lifshay [Fri, 11 Nov 2022 08:48:52 +0000 (00:48 -0800)]
fix maddedu title line

19 months agofix bug in parser when concatenating stuff that isn't variables
Jacob Lifshay [Fri, 11 Nov 2022 08:41:18 +0000 (00:41 -0800)]
fix bug in parser when concatenating stuff that isn't variables

19 months agotests/bigint: provide shadd/shadduw tests
Dmitry Selyutin [Tue, 1 Nov 2022 17:37:06 +0000 (20:37 +0300)]
tests/bigint: provide shadd/shadduw tests

19 months agoselectable_int: support variable concatenation
Dmitry Selyutin [Tue, 1 Nov 2022 17:35:11 +0000 (20:35 +0300)]
selectable_int: support variable concatenation

19 months agobitmanip.mdwn: avoid overflow for m variable
Dmitry Selyutin [Tue, 1 Nov 2022 19:16:52 +0000 (22:16 +0300)]
bitmanip.mdwn: avoid overflow for m variable

19 months agoRevert "Revert "https://bugs.libre-soc.org/show_bug.cgi?id=966#c4""
Dmitry Selyutin [Tue, 1 Nov 2022 17:37:42 +0000 (20:37 +0300)]
Revert "Revert "https://bugs.libre-soc.org/show_bug.cgi?id=966#c4""

This reverts commit 975f1b62b0430ca93377ee1a18d8d9138d5b5254.

19 months agoRevert "corrections to shadd/uw after reverting to switch"
Dmitry Selyutin [Tue, 1 Nov 2022 17:37:32 +0000 (20:37 +0300)]
Revert "corrections to shadd/uw after reverting to switch"

This reverts commit 6484c99953ceeff206a5888c148b9412be1b5656.

19 months agocorrections to shadd/uw after reverting to switch
Luke Kenneth Casson Leighton [Tue, 1 Nov 2022 13:53:27 +0000 (13:53 +0000)]
corrections to shadd/uw after reverting to switch

19 months agoRevert "https://bugs.libre-soc.org/show_bug.cgi?id=966#c4"
Luke Kenneth Casson Leighton [Tue, 1 Nov 2022 13:49:16 +0000 (13:49 +0000)]
Revert "https://bugs.libre-soc.org/show_bug.cgi?id=966#c4"

This reverts commit 263a8fca0f7413e62cf74a0e559e8965b0951e6c.

19 months agoadd dsld. (Rc=1) test, make overflow acceptable to handle_comparison()
Luke Kenneth Casson Leighton [Sat, 29 Oct 2022 15:12:06 +0000 (16:12 +0100)]
add dsld. (Rc=1) test, make overflow acceptable to handle_comparison()
in ISACaller

19 months agoadd tests for carry/overflow calculation of addmeo/subfmeo
Jacob Lifshay [Fri, 28 Oct 2022 22:06:25 +0000 (15:06 -0700)]
add tests for carry/overflow calculation of addmeo/subfmeo

the logic for computing carry/overflow in the simulator is likely broken...

the pseudocode may also need to be changed to add [1] * XLEN like in the
description of addme/subfme

19 months agoformat code
Jacob Lifshay [Fri, 28 Oct 2022 20:38:29 +0000 (13:38 -0700)]
format code

19 months agodsld: MASK(0, 63-n) works just as well as MASK(64, 63-n).
Luke Kenneth Casson Leighton [Fri, 28 Oct 2022 22:09:22 +0000 (23:09 +0100)]
dsld: MASK(0, 63-n) works just as well as MASK(64, 63-n).
also fix "overflow" pseudocode

20 months agooverflow condition in dsld and dsrd if RS is non-zero
Luke Kenneth Casson Leighton [Fri, 28 Oct 2022 12:23:42 +0000 (13:23 +0100)]
overflow condition in dsld and dsrd if RS is non-zero

20 months agofix dsrd pseudocode to use ROTL64 not ROTL128
Luke Kenneth Casson Leighton [Fri, 28 Oct 2022 12:23:08 +0000 (13:23 +0100)]
fix dsrd pseudocode to use ROTL64 not ROTL128

20 months agofix dsld pseudocode to use ROTL64 instead of ROTL128
Luke Kenneth Casson Leighton [Fri, 28 Oct 2022 12:20:10 +0000 (13:20 +0100)]
fix dsld pseudocode to use ROTL64 instead of ROTL128

20 months agoadd test showing that dsld and dsrd are not quite inverses
Luke Kenneth Casson Leighton [Fri, 28 Oct 2022 12:14:11 +0000 (13:14 +0100)]
add test showing that dsld and dsrd are not quite inverses

20 months agoupdate csvs to match make output
Jacob Lifshay [Fri, 28 Oct 2022 09:30:36 +0000 (02:30 -0700)]
update csvs to match make output

20 months agofix bigint shift tests
Jacob Lifshay [Fri, 28 Oct 2022 00:01:45 +0000 (17:01 -0700)]
fix bigint shift tests

20 months agofix dsrd, ROTL128 use 128-n not 64-n,
Luke Kenneth Casson Leighton [Thu, 27 Oct 2022 22:40:02 +0000 (23:40 +0100)]
fix dsrd, ROTL128 use 128-n not 64-n,
fix svp64 dsrd/dsld unit tests

20 months agoredo sv_analysis for dsld/dsrd
Luke Kenneth Casson Leighton [Thu, 27 Oct 2022 22:08:53 +0000 (23:08 +0100)]
redo sv_analysis for dsld/dsrd

20 months agofix dsrd pseudocode for new 3-in 2-out
Luke Kenneth Casson Leighton [Thu, 27 Oct 2022 14:47:53 +0000 (15:47 +0100)]
fix dsrd pseudocode for new 3-in 2-out
https://bugs.libre-soc.org/show_bug.cgi?id=937#c16

20 months agosort out dsld pseudocode, creating mask is tricky
Luke Kenneth Casson Leighton [Thu, 27 Oct 2022 13:20:04 +0000 (14:20 +0100)]
sort out dsld pseudocode, creating mask is tricky

20 months agoendeavouring to implement shift-carry-dsld
Luke Kenneth Casson Leighton [Thu, 27 Oct 2022 00:55:23 +0000 (01:55 +0100)]
endeavouring to implement shift-carry-dsld

20 months agorestore Z23 shadd/shadduw
Luke Kenneth Casson Leighton [Wed, 26 Oct 2022 13:15:06 +0000 (14:15 +0100)]
restore Z23 shadd/shadduw

20 months agoredo the 3-in 1-out move of dsld/dsrd to EXT04 VA2-Form
Luke Kenneth Casson Leighton [Tue, 25 Oct 2022 12:17:18 +0000 (13:17 +0100)]
redo the 3-in 1-out move of dsld/dsrd to EXT04 VA2-Form

20 months agofirst cut pseudocode for dsld/dsrd to be 3-in 1-out,
Luke Kenneth Casson Leighton [Tue, 25 Oct 2022 12:14:41 +0000 (13:14 +0100)]
first cut pseudocode for dsld/dsrd to be 3-in 1-out,
next is to make it 3-in 2-out

20 months agoadd test for identifying [expr] * name in parser
Luke Kenneth Casson Leighton [Thu, 27 Oct 2022 21:28:37 +0000 (22:28 +0100)]
add test for identifying [expr] * name in parser

20 months agopower_enums: support shadd/shadduw instructions
Dmitry Selyutin [Thu, 27 Oct 2022 18:57:40 +0000 (21:57 +0300)]
power_enums: support shadd/shadduw instructions

20 months agoisa/caller.py: support shadd/shadduw instructions
Dmitry Selyutin [Thu, 27 Oct 2022 18:57:28 +0000 (21:57 +0300)]
isa/caller.py: support shadd/shadduw instructions

20 months agohttps://bugs.libre-soc.org/show_bug.cgi?id=966#c4
Luke Kenneth Casson Leighton [Thu, 27 Oct 2022 11:15:44 +0000 (12:15 +0100)]
https://bugs.libre-soc.org/show_bug.cgi?id=966#c4
corrections to shadd

20 months agocode-comments on divmod2du and maddedu are wrong
Luke Kenneth Casson Leighton [Tue, 25 Oct 2022 19:13:12 +0000 (20:13 +0100)]
code-comments on divmod2du and maddedu are wrong
RS now defaults to RC in *both* scalar (non-SVP64) and SVP64

20 months agocomments
Luke Kenneth Casson Leighton [Tue, 25 Oct 2022 19:00:16 +0000 (20:00 +0100)]
comments

20 months agoshadd pseudocode cleanup
Luke Kenneth Casson Leighton [Tue, 25 Oct 2022 18:58:24 +0000 (19:58 +0100)]
shadd pseudocode cleanup

20 months agopysvp64asm: support shadd/shadduw instructions
Dmitry Selyutin [Tue, 25 Oct 2022 18:34:51 +0000 (21:34 +0300)]
pysvp64asm: support shadd/shadduw instructions

20 months agopysvp64asm: introduce more flexible Z23 wrapper
Dmitry Selyutin [Tue, 25 Oct 2022 18:34:30 +0000 (21:34 +0300)]
pysvp64asm: introduce more flexible Z23 wrapper

20 months agotest_pysvp64dis: test shadd/shadduw instructions
Dmitry Selyutin [Tue, 25 Oct 2022 18:16:25 +0000 (21:16 +0300)]
test_pysvp64dis: test shadd/shadduw instructions

20 months agobitmanip.mdwn: support shadd/shadduw instructions
Dmitry Selyutin [Mon, 24 Oct 2022 18:20:39 +0000 (21:20 +0300)]
bitmanip.mdwn: support shadd/shadduw instructions

20 months agominor_4.csv: support shadd/shadduw instructions
Dmitry Selyutin [Mon, 24 Oct 2022 18:12:04 +0000 (21:12 +0300)]
minor_4.csv: support shadd/shadduw instructions

20 months agoadd maxs. combined with cmp capability
Luke Kenneth Casson Leighton [Mon, 24 Oct 2022 09:54:53 +0000 (10:54 +0100)]
add maxs. combined with cmp capability
https://bugs.libre-soc.org/show_bug.cgi?id=915

20 months agouse svshape2 instead of svindex for the 4th shape
Luke Kenneth Casson Leighton [Sun, 23 Oct 2022 09:52:15 +0000 (10:52 +0100)]
use svshape2 instead of svindex for the 4th shape
(cycling through modulo4 shifts) as there is no
change of order, svindex wastes a regfile lookup
chacha20

20 months agoadd extra pysvp64dis tests for divmod2du and maddedu
Luke Kenneth Casson Leighton [Sat, 22 Oct 2022 16:37:04 +0000 (17:37 +0100)]
add extra pysvp64dis tests for divmod2du and maddedu

20 months agoargh, extremely annoying: 4-operand dsld/dsrd is not possible to
Luke Kenneth Casson Leighton [Sat, 22 Oct 2022 16:32:41 +0000 (17:32 +0100)]
argh, extremely annoying: 4-operand dsld/dsrd is not possible to
have EXTRA3, therefore it fails as a bigint operation. reverting

20 months agoremove redundant case_dsrd3
Luke Kenneth Casson Leighton [Sat, 22 Oct 2022 16:16:26 +0000 (17:16 +0100)]
remove redundant case_dsrd3

20 months agobigint shuffle
Luke Kenneth Casson Leighton [Sat, 22 Oct 2022 16:15:17 +0000 (17:15 +0100)]
bigint shuffle
* divmod2du moves to XO=58 (from XO=52)
* dsld/dsrd become Rc=1 and move to XO=52-55 in VA2-Form
* dsld/dsrd pseudocode no longer is overwrite with "sm" mode
* Z23 "sm" removed from fields.txt

20 months agofix get_masked_reg and add test
Jacob Lifshay [Sat, 22 Oct 2022 00:46:58 +0000 (17:46 -0700)]
fix get_masked_reg and add test

20 months agoformat code removing unused imports
Jacob Lifshay [Fri, 21 Oct 2022 23:37:14 +0000 (16:37 -0700)]
format code removing unused imports

20 months agocode-comments
Luke Kenneth Casson Leighton [Fri, 21 Oct 2022 12:29:07 +0000 (13:29 +0100)]
code-comments

20 months agoadd 2nd outer loop, CTR 2 rounds, in chacha20 test
Luke Kenneth Casson Leighton [Fri, 21 Oct 2022 12:00:41 +0000 (13:00 +0100)]
add 2nd outer loop, CTR 2 rounds, in chacha20 test

20 months agomove chacha20 to separate test, set/get masked regs to ISACaller
Luke Kenneth Casson Leighton [Fri, 21 Oct 2022 11:47:41 +0000 (12:47 +0100)]
move chacha20 to separate test, set/get masked regs to ISACaller

20 months agomove HASK, ROTL32, ROTL64, MASK32, into helper class
Luke Kenneth Casson Leighton [Fri, 21 Oct 2022 11:29:33 +0000 (12:29 +0100)]
move HASK, ROTL32, ROTL64, MASK32, into helper class

20 months agouse XLEN/2 for ROTL32 in fixedshift.mdwn
Luke Kenneth Casson Leighton [Fri, 21 Oct 2022 11:28:43 +0000 (12:28 +0100)]
use XLEN/2 for ROTL32 in fixedshift.mdwn

20 months agocomments
Luke Kenneth Casson Leighton [Thu, 20 Oct 2022 17:49:32 +0000 (18:49 +0100)]
comments

20 months agoadd first chacha20 round test
Luke Kenneth Casson Leighton [Thu, 20 Oct 2022 16:27:59 +0000 (17:27 +0100)]
add first chacha20 round test

20 months agosv_binutils_fptrans: fix registers generation
Dmitry Selyutin [Wed, 19 Oct 2022 20:23:29 +0000 (23:23 +0300)]
sv_binutils_fptrans: fix registers generation

20 months agoav.mdwn: fix missing bmask operand
Dmitry Selyutin [Wed, 19 Oct 2022 18:23:15 +0000 (21:23 +0300)]
av.mdwn: fix missing bmask operand

20 months agoTODO, sort out remap indices order
Luke Kenneth Casson Leighton [Wed, 19 Oct 2022 10:49:51 +0000 (11:49 +0100)]
TODO, sort out remap indices order

20 months agoadd test for scalar sv.maddedu
Jacob Lifshay [Tue, 18 Oct 2022 05:49:42 +0000 (22:49 -0700)]
add test for scalar sv.maddedu

20 months agoadd missing files to .gitignore
Jacob Lifshay [Tue, 18 Oct 2022 05:49:28 +0000 (22:49 -0700)]
add missing files to .gitignore

20 months agoav.mdwn: fix Rc-augmented cprop instruction
Dmitry Selyutin [Mon, 17 Oct 2022 18:52:59 +0000 (21:52 +0300)]
av.mdwn: fix Rc-augmented cprop instruction

20 months agodebug print correction
Luke Kenneth Casson Leighton [Sun, 16 Oct 2022 11:24:50 +0000 (12:24 +0100)]
debug print correction

20 months agosigh, have to use yield from on get_out_map()
Luke Kenneth Casson Leighton [Sun, 16 Oct 2022 11:22:34 +0000 (12:22 +0100)]
sigh, have to use yield from on get_out_map()

20 months agorewrite get_idx_out2 in ISACaller to split out
Luke Kenneth Casson Leighton [Sun, 16 Oct 2022 11:08:56 +0000 (12:08 +0100)]
rewrite get_idx_out2 in ISACaller to split out
RS/out2 relationship

20 months agorewrite get_idx_out in ISACaller to split out
Luke Kenneth Casson Leighton [Sun, 16 Oct 2022 11:01:10 +0000 (12:01 +0100)]
rewrite get_idx_out in ISACaller to split out
RT/out relationship

20 months agoadd unit test showing two svindex calls, found bugs,
Luke Kenneth Casson Leighton [Sun, 16 Oct 2022 10:30:06 +0000 (11:30 +0100)]
add unit test showing two svindex calls, found bugs,
needs resolving in ISACaller.  REMAP application to RA/B/C/T/S is
not properly routing

20 months agocode-shuffle, rework get_idx_in() to separate out the in1/2/3 map
Luke Kenneth Casson Leighton [Sun, 16 Oct 2022 10:27:24 +0000 (11:27 +0100)]
code-shuffle, rework get_idx_in() to separate out the in1/2/3 map

20 months agowhoops missed an update MEM(EA...) in pifixedstore
Luke Kenneth Casson Leighton [Fri, 14 Oct 2022 20:37:08 +0000 (21:37 +0100)]
whoops missed an update MEM(EA...) in pifixedstore

20 months agosv_binutils_fptrans: fix opcodes mode
Dmitry Selyutin [Fri, 14 Oct 2022 19:17:35 +0000 (22:17 +0300)]
sv_binutils_fptrans: fix opcodes mode

20 months agopower_insn: really skip sv. entries for PPC database
Dmitry Selyutin [Fri, 14 Oct 2022 19:14:32 +0000 (22:14 +0300)]
power_insn: really skip sv. entries for PPC database

20 months agosv_binutils_fptrans: generate all permutations
Dmitry Selyutin [Fri, 14 Oct 2022 19:07:07 +0000 (22:07 +0300)]
sv_binutils_fptrans: generate all permutations

20 months agopysvp64asm: fix coding style
Dmitry Selyutin [Thu, 13 Oct 2022 13:59:27 +0000 (16:59 +0300)]
pysvp64asm: fix coding style

20 months agopower_insn: skip sv. instructions in PPC database
Dmitry Selyutin [Fri, 7 Oct 2022 12:16:05 +0000 (15:16 +0300)]
power_insn: skip sv. instructions in PPC database

20 months agopower_insn: fix AA match
Dmitry Selyutin [Fri, 7 Oct 2022 12:15:09 +0000 (15:15 +0300)]
power_insn: fix AA match

20 months agopower_insn: do not allow default records
Dmitry Selyutin [Fri, 7 Oct 2022 12:14:19 +0000 (15:14 +0300)]
power_insn: do not allow default records

20 months agoadd max-with-getting-index-of vertical-first loop example
Luke Kenneth Casson Leighton [Fri, 14 Oct 2022 13:14:53 +0000 (14:14 +0100)]
add max-with-getting-index-of vertical-first loop example

20 months agosmall update in the max detection code
Konstantinos Margaritis [Fri, 14 Oct 2022 10:34:05 +0000 (10:34 +0000)]
small update in the max detection code

20 months agoSVP64RMModeDecode detects Post-Inc LDST-imm mode
Luke Kenneth Casson Leighton [Fri, 14 Oct 2022 09:16:33 +0000 (10:16 +0100)]
SVP64RMModeDecode detects Post-Inc LDST-imm mode

20 months agocorrect comments
Luke Kenneth Casson Leighton [Thu, 13 Oct 2022 06:45:46 +0000 (07:45 +0100)]
correct comments

20 months agoadd in zeroing on test strncpy
Luke Kenneth Casson Leighton [Wed, 12 Oct 2022 21:47:48 +0000 (22:47 +0100)]
add in zeroing on test strncpy