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

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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

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

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

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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

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

14 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

14 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

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

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

14 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

14 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

14 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

14 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

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

14 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

14 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

14 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

14 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

14 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

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

14 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

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

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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

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

14 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

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

14 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

14 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

14 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

14 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

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

14 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

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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

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

21 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

21 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

22 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

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

22 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?

22 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

22 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

22 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

22 months agouse new base-class EXTSOperand, derive from ImmediateOperand
Luke Kenneth Casson Leighton [Sat, 8 Oct 2022 12:11:33 +0000 (13:11 +0100)]
use new base-class EXTSOperand, derive from ImmediateOperand

22 months agoconvert TargetAddrOperand to base class EXTSOperand
Luke Kenneth Casson Leighton [Sat, 8 Oct 2022 11:45:30 +0000 (12:45 +0100)]
convert TargetAddrOperand to base class EXTSOperand
(about to do DQ/DS operand)

22 months agoadd lq and CONST_DQ
Luke Kenneth Casson Leighton [Sat, 8 Oct 2022 11:22:56 +0000 (12:22 +0100)]
add lq and CONST_DQ

22 months agorestore tests, accidentally disabled
Luke Kenneth Casson Leighton [Sat, 8 Oct 2022 10:11:28 +0000 (11:11 +0100)]
restore tests, accidentally disabled

22 months agoadd CY operand to fields.txt, in Z23-Form
Luke Kenneth Casson Leighton [Sat, 8 Oct 2022 10:09:39 +0000 (11:09 +0100)]
add CY operand to fields.txt, in Z23-Form
(missing from Power ISA v3.0B and v3.1 spec!)

22 months agoadd XER bits to register enums
Luke Kenneth Casson Leighton [Sat, 8 Oct 2022 10:04:05 +0000 (11:04 +0100)]
add XER bits to register enums

22 months agoadd addex to csv and sv_analysis db. also needs CryIn.OV enum
Luke Kenneth Casson Leighton [Sat, 8 Oct 2022 09:29:38 +0000 (10:29 +0100)]
add addex to csv and sv_analysis db. also needs CryIn.OV enum
added quick test_pysvp64dis.py test too

22 months agomisnamed instruction, lfiwzx
Luke Kenneth Casson Leighton [Sat, 8 Oct 2022 09:10:15 +0000 (10:10 +0100)]
misnamed instruction, lfiwzx

22 months agomore work on inssort. add useful reg-dump in ISACaller
Luke Kenneth Casson Leighton [Fri, 7 Oct 2022 12:47:03 +0000 (13:47 +0100)]
more work on inssort. add useful reg-dump in ISACaller

22 months agonope. failfirst needs to always save the result, but truncate VL *after*.
Luke Kenneth Casson Leighton [Thu, 6 Oct 2022 21:41:04 +0000 (22:41 +0100)]
nope.  failfirst needs to always save the result, but truncate VL *after*.
https://bugs.libre-soc.org/show_bug.cgi?id=936

22 months agofix fail-first to exclude failed element in VLi=0 mode
Luke Kenneth Casson Leighton [Thu, 6 Oct 2022 19:19:42 +0000 (20:19 +0100)]
fix fail-first to exclude failed element in VLi=0 mode

22 months agosort out CROPs fail-first in ISACaller. needed to take a copy of CR
Luke Kenneth Casson Leighton [Thu, 6 Oct 2022 17:34:38 +0000 (18:34 +0100)]
sort out CROPs fail-first in ISACaller.  needed to take a copy of CR
for when sv.cmp (and other pseudocode) *overwrites* CR and it needs
restoring (when VLI=0).  also needed to identify 3-bit and 5-bit
ffirst mode, and extract bottom 2 bits of BF

22 months agomake fail-first cope with sv.cmp which uses CR[BF]
Luke Kenneth Casson Leighton [Thu, 6 Oct 2022 16:26:24 +0000 (17:26 +0100)]
make fail-first cope with sv.cmp which uses CR[BF]

22 months agoadd insert sort svp64 test
Luke Kenneth Casson Leighton [Thu, 6 Oct 2022 14:59:54 +0000 (15:59 +0100)]
add insert sort svp64 test