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

22 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

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

22 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

22 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

22 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

22 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

22 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

22 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

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

22 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

22 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

22 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

22 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

22 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

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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

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

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

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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

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

22 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

22 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

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

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

22 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

22 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

22 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

22 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

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

22 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

22 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

22 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

22 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

22 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

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

22 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

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

22 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()

22 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

22 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

22 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

22 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

22 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

22 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

22 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

22 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

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

22 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

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

22 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

22 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

22 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

22 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

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

22 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

22 months agoremove unneeded svstate from test
Luke Kenneth Casson Leighton [Tue, 11 Oct 2022 20:14:34 +0000 (21:14 +0100)]
remove unneeded svstate from test

22 months agoadd strncpy example - 6 instructions
Luke Kenneth Casson Leighton [Tue, 11 Oct 2022 16:09:54 +0000 (17:09 +0100)]
add strncpy example - 6 instructions

22 months agoadd sv.stwu/pi example in test_sv_load_store_postinc
Luke Kenneth Casson Leighton [Tue, 11 Oct 2022 14:17:45 +0000 (15:17 +0100)]
add sv.stwu/pi example in test_sv_load_store_postinc

22 months agoadd ld/st-immediate "post-inc" mode support. unit test for LD
Luke Kenneth Casson Leighton [Tue, 11 Oct 2022 13:11:04 +0000 (14:11 +0100)]
add ld/st-immediate "post-inc" mode support. unit test for LD

22 months agoadd /pi to sv/trans/svp64.py and power_insns.py
Luke Kenneth Casson Leighton [Tue, 11 Oct 2022 12:31:58 +0000 (13:31 +0100)]
add /pi to sv/trans/svp64.py and power_insns.py

22 months agoadd new LD-Immediate Post constants
Luke Kenneth Casson Leighton [Tue, 11 Oct 2022 12:30:56 +0000 (13:30 +0100)]
add new LD-Immediate Post constants

22 months agofirst working version
Konstantinos Margaritis [Fri, 14 Oct 2022 00:16:59 +0000 (00:16 +0000)]
first working version

22 months agoincrease buffer size, fix svp64 address for r5
Konstantinos Margaritis [Fri, 14 Oct 2022 00:16:37 +0000 (00:16 +0000)]
increase buffer size, fix svp64 address for r5

23 months agoadd sv.divmod2du test, inverse of the sv.madded
Luke Kenneth Casson Leighton [Wed, 12 Oct 2022 20:55:50 +0000 (21:55 +0100)]
add sv.divmod2du test, inverse of the sv.madded
using the same values

23 months agocomments clean-up on bigint big-mul case
Luke Kenneth Casson Leighton [Wed, 12 Oct 2022 15:04:21 +0000 (16:04 +0100)]
comments clean-up on bigint big-mul case

23 months agowhoops ea not ra in pifixedstore.mdwn
Luke Kenneth Casson Leighton [Tue, 11 Oct 2022 16:09:28 +0000 (17:09 +0100)]
whoops ea not ra in pifixedstore.mdwn

23 months agoadd Post-increment version of fixedstore.mdwn
Luke Kenneth Casson Leighton [Tue, 11 Oct 2022 14:05:58 +0000 (15:05 +0100)]
add Post-increment version of fixedstore.mdwn

23 months agoadd asciidump option to Mem class
Luke Kenneth Casson Leighton [Tue, 11 Oct 2022 16:09:08 +0000 (17:09 +0100)]
add asciidump option to Mem class

23 months agowhoops zero-error on masked-out
Luke Kenneth Casson Leighton [Tue, 11 Oct 2022 16:08:52 +0000 (17:08 +0100)]
whoops zero-error on masked-out

23 months agoWIP: add initial AV1 SVP64 porting
Konstantinos Margaritis [Tue, 11 Oct 2022 09:51:34 +0000 (09:51 +0000)]
WIP: add initial AV1 SVP64 porting

23 months agomove pypowersim_wrapper on its own
Konstantinos Margaritis [Tue, 11 Oct 2022 09:49:24 +0000 (09:49 +0000)]
move pypowersim_wrapper on its own

23 months agoadd experimental post-increment fixedload pseudocode
Luke Kenneth Casson Leighton [Tue, 11 Oct 2022 09:48:29 +0000 (10:48 +0100)]
add experimental post-increment fixedload pseudocode

23 months agoadd elwidth overrides on Indexed REMAP, 8-bit example. reduces reg usage
Luke Kenneth Casson Leighton [Mon, 10 Oct 2022 19:29:43 +0000 (20:29 +0100)]
add elwidth overrides on Indexed REMAP, 8-bit example. reduces reg usage

23 months agoadd elwidth overrides to get_idx_out2
Luke Kenneth Casson Leighton [Mon, 10 Oct 2022 19:02:59 +0000 (20:02 +0100)]
add elwidth overrides to get_idx_out2

23 months agofix format in debug log
Luke Kenneth Casson Leighton [Sat, 8 Oct 2022 23:35:34 +0000 (00:35 +0100)]
fix format in debug log

23 months agoforgot to add offset on GPR() get
Luke Kenneth Casson Leighton [Sat, 8 Oct 2022 23:32:05 +0000 (00:32 +0100)]
forgot to add offset on GPR() get

23 months agoadd elwidth overrides on destination (write) in ISACaller.
Luke Kenneth Casson Leighton [Sat, 8 Oct 2022 23:11:15 +0000 (00:11 +0100)]
add elwidth overrides on destination (write) in ISACaller.
first two unit tests pass (sv.add/ew=8, sv.add/ew=32)

23 months agosplit out base,offset in register decoding for elwidth overrides to work
Luke Kenneth Casson Leighton [Sat, 8 Oct 2022 20:14:24 +0000 (21:14 +0100)]
split out base,offset in register decoding for elwidth overrides to work
previously, calculating the register number was fine, it was straight
64-bit reg indexed.  however elwidths are *part-way* through registers
(packed) so need to compute the reg differently

23 months agoadd 8-bit elwidth alu svp64 case
Luke Kenneth Casson Leighton [Sat, 8 Oct 2022 19:42:17 +0000 (20:42 +0100)]
add 8-bit elwidth alu svp64 case

23 months agoadd rfscv to major_19.csv, add test_pysvp64dis.py unit test
Luke Kenneth Casson Leighton [Sat, 8 Oct 2022 13:37:33 +0000 (14:37 +0100)]
add rfscv to major_19.csv, add test_pysvp64dis.py unit test

23 months agodrat
Luke Kenneth Casson Leighton [Sat, 8 Oct 2022 13:29:20 +0000 (14:29 +0100)]
drat

23 months agoadd sc and scv support after moving from major.csv to extra.csv
Luke Kenneth Casson Leighton [Sat, 8 Oct 2022 13:28:00 +0000 (14:28 +0100)]
add sc and scv support after moving from major.csv to extra.csv
this now involves a laborious brute-force search looking for anything
with an extra.csv path, in order to prioritise the (full) 32-bit
pattern-match over e.g. MAJOR XO=17.
attn should also work (but currently does not, no idea why, possibly
because it should actually be in major.csv?

23 months agovector name "RSp" not recognised in sv.stq, added as example
Luke Kenneth Casson Leighton [Sat, 8 Oct 2022 12:26:09 +0000 (13:26 +0100)]
vector name "RSp" not recognised in sv.stq, added as example

23 months agoadd stq to CSV files and unit test to test_pysvp64dis.py
Luke Kenneth Casson Leighton [Sat, 8 Oct 2022 12:23:03 +0000 (13:23 +0100)]
add stq to CSV files and unit test to test_pysvp64dis.py

23 months agoseparate out DQ and DS to separate custom_immediates
Luke Kenneth Casson Leighton [Sat, 8 Oct 2022 12:14:13 +0000 (13:14 +0100)]
separate out DQ and DS to separate custom_immediates
D was unhappy about being a custom_field as an immediate.
better: create SignedImmediate class deriving from ImmediateOperand