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

2 years 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

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

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

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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

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

2 years 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

2 years 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

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

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

2 years 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

2 years 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

2 years 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

2 years 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

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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

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

2 years 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

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

2 years 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()

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

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

2 years 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

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

2 years 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

2 years 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

2 years 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

2 years 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

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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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)

2 years 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

2 years 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

2 years 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

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

2 years 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?

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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)

2 years 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

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

2 years 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!)

2 years 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

2 years 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

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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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]

2 years 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

2 years agosearch for BF in registers to over-ride Vector lookup into CR Register
Luke Kenneth Casson Leighton [Thu, 6 Oct 2022 14:58:11 +0000 (15:58 +0100)]
search for BF in registers to over-ride Vector lookup into CR Register
CR[32+BF...] is used, so it is more complex

2 years agostarting to add sv.cmp support and failfirst, had to add
Luke Kenneth Casson Leighton [Thu, 6 Oct 2022 13:36:23 +0000 (14:36 +0100)]
starting to add sv.cmp support and failfirst, had to add
SVMode to SVP64RMModeDecode to identify the different RM modes first

2 years agoadd PredicateBaseRM decode to CR Ops Simple mode as well as ff=3-bit
Luke Kenneth Casson Leighton [Thu, 6 Oct 2022 12:16:28 +0000 (13:16 +0100)]
add PredicateBaseRM decode to CR Ops Simple mode as well as ff=3-bit

2 years agoadd vli mode to ff=5 CR ops
Luke Kenneth Casson Leighton [Thu, 6 Oct 2022 11:57:57 +0000 (12:57 +0100)]
add vli mode to ff=5 CR ops

2 years agowhoops must only be PredicateBaseRM in CROpFF5RM
Luke Kenneth Casson Leighton [Thu, 6 Oct 2022 11:51:42 +0000 (12:51 +0100)]
whoops must only be PredicateBaseRM in CROpFF5RM

2 years agoadd sv.cmp (ffirst-5) decode/encode asm support
Luke Kenneth Casson Leighton [Thu, 6 Oct 2022 11:43:00 +0000 (12:43 +0100)]
add sv.cmp (ffirst-5) decode/encode asm support
* sv/trans/svp64.py needed a totally different ffirst handling
* CROpFF5RM needs to derive from FFPRRc0BaseRM and PredicateWidthBaseRM

2 years agoslightly different crops failfirst mode bits
Luke Kenneth Casson Leighton [Thu, 6 Oct 2022 11:18:30 +0000 (12:18 +0100)]
slightly different crops failfirst mode bits