openpower-isa.git
22 months agouse bitpattern in minor_30.csv to give a single match for
Luke Kenneth Casson Leighton [Thu, 18 Aug 2022 00:00:12 +0000 (01:00 +0100)]
use bitpattern in minor_30.csv to give a single match for
rldic and others.  two lines were being used 0000 and 0001,
replaced with 000-

22 months agosv_binutils: support functions
Dmitry Selyutin [Wed, 17 Aug 2022 19:15:24 +0000 (22:15 +0300)]
sv_binutils: support functions

22 months agopower_insn: support function property
Dmitry Selyutin [Wed, 17 Aug 2022 19:13:11 +0000 (22:13 +0300)]
power_insn: support function property

22 months agopower_insn: fix sv_extra algorithm
Dmitry Selyutin [Wed, 17 Aug 2022 18:43:58 +0000 (21:43 +0300)]
power_insn: fix sv_extra algorithm

22 months agopower_enums: fix conversion from selector to reg
Dmitry Selyutin [Wed, 17 Aug 2022 18:43:37 +0000 (21:43 +0300)]
power_enums: fix conversion from selector to reg

22 months agoagain part of the removal of LD/ST-with-shift, take out
Luke Kenneth Casson Leighton [Wed, 17 Aug 2022 16:18:09 +0000 (17:18 +0100)]
again part of the removal of LD/ST-with-shift, take out
the early detection of a LD/ST operation that was formerly needed
for the SVP64.RM decoding to use a completely different 32-bit encoding.
we established with the whole LD/ST-with-shift experiment that this
was a really, really bad idea

22 months agopysvp64dis: rename the script due to name conflicts
Dmitry Selyutin [Tue, 16 Aug 2022 14:00:22 +0000 (17:00 +0300)]
pysvp64dis: rename the script due to name conflicts

22 months agopysvp64dis: switch to SelectableInt class
Dmitry Selyutin [Mon, 15 Aug 2022 20:02:56 +0000 (23:02 +0300)]
pysvp64dis: switch to SelectableInt class

22 months agopysvp64dis: introduce disassembler script
Dmitry Selyutin [Mon, 15 Aug 2022 19:30:32 +0000 (22:30 +0300)]
pysvp64dis: introduce disassembler script

22 months agocodeshuffle
Luke Kenneth Casson Leighton [Mon, 15 Aug 2022 18:30:18 +0000 (19:30 +0100)]
codeshuffle

22 months agoswap complicated bits, simplify ISACaller, reduce indent level
Luke Kenneth Casson Leighton [Mon, 15 Aug 2022 18:27:00 +0000 (19:27 +0100)]
swap complicated bits, simplify ISACaller, reduce indent level

22 months agodebug print for ISACaller pack/unpack
Luke Kenneth Casson Leighton [Mon, 15 Aug 2022 18:21:57 +0000 (19:21 +0100)]
debug print for ISACaller pack/unpack

22 months agoextract pack/unpack as separate bits, and also do elwidth extraction
Luke Kenneth Casson Leighton [Mon, 15 Aug 2022 16:38:13 +0000 (17:38 +0100)]
extract pack/unpack as separate bits, and also do elwidth extraction
at the same time.  reason: pack/unpack is shared with elwidth_src

22 months agoadd rest of missing stuff for cached-property git dependency
Jacob Lifshay [Sun, 14 Aug 2022 22:31:45 +0000 (15:31 -0700)]
add rest of missing stuff for cached-property git dependency

22 months agodang missed *another* argument in ISACaller on the function-morphing
Luke Kenneth Casson Leighton [Sun, 14 Aug 2022 21:36:50 +0000 (22:36 +0100)]
dang missed *another* argument in ISACaller on the function-morphing

22 months agosv_binutils: consider only SVP64 instructions
Dmitry Selyutin [Sat, 13 Aug 2022 19:06:26 +0000 (22:06 +0300)]
sv_binutils: consider only SVP64 instructions

22 months agosv_binutils: do not generate svp64_opindex_rm_field
Dmitry Selyutin [Sat, 13 Aug 2022 18:11:13 +0000 (21:11 +0300)]
sv_binutils: do not generate svp64_opindex_rm_field

22 months agosv_binutils: support opcodes
Dmitry Selyutin [Fri, 12 Aug 2022 13:32:32 +0000 (16:32 +0300)]
sv_binutils: support opcodes

22 months agosv_binutils: migrate to instructions db
Dmitry Selyutin [Fri, 12 Aug 2022 12:17:10 +0000 (15:17 +0300)]
sv_binutils: migrate to instructions db

22 months agopower_insn.py: introduce instruction database
Dmitry Selyutin [Thu, 4 Aug 2022 21:02:11 +0000 (00:02 +0300)]
power_insn.py: introduce instruction database

22 months agoisatables: introduce instruction database CSV
Dmitry Selyutin [Thu, 4 Aug 2022 20:52:30 +0000 (23:52 +0300)]
isatables: introduce instruction database CSV

22 months agopower_enums: map in/out to extra
Dmitry Selyutin [Thu, 4 Aug 2022 20:06:45 +0000 (23:06 +0300)]
power_enums: map in/out to extra

22 months agopower_enums: introduce SVMode enum
Dmitry Selyutin [Tue, 2 Aug 2022 19:27:39 +0000 (22:27 +0300)]
power_enums: introduce SVMode enum

22 months agopower_enums: introduce SVExtraReg enum
Dmitry Selyutin [Tue, 2 Aug 2022 18:27:42 +0000 (21:27 +0300)]
power_enums: introduce SVExtraReg enum

22 months agopower_enums: introduce SVExtraRegType enum
Dmitry Selyutin [Tue, 2 Aug 2022 18:22:27 +0000 (21:22 +0300)]
power_enums: introduce SVExtraRegType enum

22 months agopower_enums: introduce SVExtra alias
Dmitry Selyutin [Tue, 2 Aug 2022 18:23:07 +0000 (21:23 +0300)]
power_enums: introduce SVExtra alias

22 months agopower_enums: introduce RegType enum
Dmitry Selyutin [Tue, 2 Aug 2022 17:27:34 +0000 (20:27 +0300)]
power_enums: introduce RegType enum

22 months agopower_enums: allow SVPtype aliases
Dmitry Selyutin [Tue, 2 Aug 2022 12:50:07 +0000 (15:50 +0300)]
power_enums: allow SVPtype aliases

22 months agopower_enums: better repr for Function enum
Dmitry Selyutin [Tue, 2 Aug 2022 11:16:26 +0000 (14:16 +0300)]
power_enums: better repr for Function enum

22 months agopower_enums: introduce LDSTLen alias class
Dmitry Selyutin [Tue, 2 Aug 2022 11:07:20 +0000 (14:07 +0300)]
power_enums: introduce LDSTLen alias class

22 months agopower_enums: introduce base enum class
Dmitry Selyutin [Tue, 2 Aug 2022 11:06:39 +0000 (14:06 +0300)]
power_enums: introduce base enum class

22 months agosetup.py: add cached-property dependency
Dmitry Selyutin [Sat, 6 Aug 2022 09:33:41 +0000 (12:33 +0300)]
setup.py: add cached-property dependency

22 months agosv_analysis: decouple CSVs glob code
Dmitry Selyutin [Fri, 12 Aug 2022 13:16:05 +0000 (16:16 +0300)]
sv_analysis: decouple CSVs glob code

22 months agogo with separate bit for Pack/Unpack mode in SVP64RMModeDecode
Luke Kenneth Casson Leighton [Sun, 14 Aug 2022 16:46:04 +0000 (17:46 +0100)]
go with separate bit for Pack/Unpack mode in SVP64RMModeDecode

22 months agoremove LD/ST-shift mode from ISACaller
Luke Kenneth Casson Leighton [Sun, 14 Aug 2022 16:32:58 +0000 (17:32 +0100)]
remove LD/ST-shift mode from ISACaller

22 months agoadd PACK/UNPACK Mode descriptions to power_svp64_rm.py
Luke Kenneth Casson Leighton [Sun, 14 Aug 2022 16:12:26 +0000 (17:12 +0100)]
add PACK/UNPACK Mode descriptions to power_svp64_rm.py
(update comments, first) and add new PACK mode to SVP64RMMode
in poewr_enums.py

22 months agowhoops re-added accidentally-deleted CSV file
Luke Kenneth Casson Leighton [Sat, 13 Aug 2022 21:40:20 +0000 (22:40 +0100)]
whoops re-added accidentally-deleted CSV file

22 months agoremove Pack-Unpack csv files
Luke Kenneth Casson Leighton [Sat, 13 Aug 2022 21:37:20 +0000 (22:37 +0100)]
remove Pack-Unpack csv files

22 months agoremove Pack/Unpack flag entirely from sv_analysis
Luke Kenneth Casson Leighton [Sat, 13 Aug 2022 21:26:24 +0000 (22:26 +0100)]
remove Pack/Unpack flag entirely from sv_analysis

22 months agodisable pack/unpack in sv_analysis.py - going to use bits in
Luke Kenneth Casson Leighton [Sat, 13 Aug 2022 21:21:35 +0000 (22:21 +0100)]
disable pack/unpack in sv_analysis.py - going to use bits in
each mode, now.

22 months agoinvalidate grev cases, replaced by grevlut
Luke Kenneth Casson Leighton [Sat, 13 Aug 2022 17:21:04 +0000 (18:21 +0100)]
invalidate grev cases, replaced by grevlut

22 months agoremove LDSTBREV condition, used for ld-st-with-shift
Luke Kenneth Casson Leighton [Fri, 12 Aug 2022 13:14:44 +0000 (14:14 +0100)]
remove LDSTBREV condition, used for ld-st-with-shift

22 months agoremive svfixedload.mdwn. requires scalar fixed load to be
Luke Kenneth Casson Leighton [Fri, 12 Aug 2022 11:26:54 +0000 (12:26 +0100)]
remive svfixedload.mdwn. requires scalar fixed load to be
added to Power ISA 3 *scalar* instructions

22 months agoremove use of sv ld shifted, replace with els, deprecate the unit test
Luke Kenneth Casson Leighton [Fri, 12 Aug 2022 11:24:02 +0000 (12:24 +0100)]
remove use of sv ld shifted, replace with els, deprecate the unit test

22 months agoremove use of sv.lfssh, deprecate the unit test
Luke Kenneth Casson Leighton [Fri, 12 Aug 2022 11:15:44 +0000 (12:15 +0100)]
remove use of sv.lfssh, deprecate the unit test

22 months agoremove use of sv.lfssh, replace with sv.lfs/els element strided
Luke Kenneth Casson Leighton [Fri, 12 Aug 2022 11:12:16 +0000 (12:12 +0100)]
remove use of sv.lfssh, replace with sv.lfs/els element strided

22 months agoremove use of sv.lfssh, replace with sv.lfs/els element strided
Luke Kenneth Casson Leighton [Fri, 12 Aug 2022 11:08:57 +0000 (12:08 +0100)]
remove use of sv.lfssh, replace with sv.lfs/els element strided

22 months agopower_enums: add missing forms
Dmitry Selyutin [Tue, 9 Aug 2022 08:49:07 +0000 (11:49 +0300)]
power_enums: add missing forms

22 months agorestore scalar version of mp31_imdct36_float.s to keep as a reference
Luke Kenneth Casson Leighton [Mon, 8 Aug 2022 20:57:32 +0000 (21:57 +0100)]
restore scalar version of mp31_imdct36_float.s to keep as a reference

22 months agoWIP: SVP64 version
Konstantinos Margaritis [Mon, 8 Aug 2022 20:52:49 +0000 (20:52 +0000)]
WIP: SVP64 version

22 months agomove reg ptogiling out to separate function in sv_analysis
Luke Kenneth Casson Leighton [Sun, 7 Aug 2022 13:30:29 +0000 (14:30 +0100)]
move reg ptogiling out to separate function in sv_analysis

22 months agomove extra classification to separate function in sv_analysis
Luke Kenneth Casson Leighton [Sun, 7 Aug 2022 13:18:51 +0000 (14:18 +0100)]
move extra classification to separate function in sv_analysis

22 months agosplit cav reading into separate function
Luke Kenneth Casson Leighton [Sat, 6 Aug 2022 12:58:11 +0000 (13:58 +0100)]
split cav reading into separate function

22 months agoadd svanalysis docstrings
Luke Kenneth Casson Leighton [Sat, 6 Aug 2022 12:49:38 +0000 (13:49 +0100)]
add svanalysis docstrings

22 months agore-run svanalysis fix fishmv no TODO
Luke Kenneth Casson Leighton [Fri, 5 Aug 2022 23:58:15 +0000 (00:58 +0100)]
re-run svanalysis fix fishmv no TODO

22 months agoRevert "comment out mfcr in sv_analysis.py for now"
Luke Kenneth Casson Leighton [Fri, 5 Aug 2022 23:56:47 +0000 (00:56 +0100)]
Revert "comment out mfcr in sv_analysis.py for now"

This reverts commit 241092bc55fbab8e1eb15fd6954fc6a7c4699ccf.

22 months agoadd fishmv unusual overwrite to svanalysis
Luke Kenneth Casson Leighton [Fri, 5 Aug 2022 23:56:26 +0000 (00:56 +0100)]
add fishmv unusual overwrite to svanalysis

22 months agocomment out mfcr in sv_analysis.py for now
Luke Kenneth Casson Leighton [Fri, 5 Aug 2022 23:48:10 +0000 (00:48 +0100)]
comment out mfcr in sv_analysis.py for now

22 months agosv_binutils: drop dead code
Dmitry Selyutin [Sun, 31 Jul 2022 15:52:04 +0000 (18:52 +0300)]
sv_binutils: drop dead code

22 months agocompletely bungled multi-EXTRA specs
Luke Kenneth Casson Leighton [Wed, 3 Aug 2022 00:42:10 +0000 (01:42 +0100)]
completely bungled multi-EXTRA specs
https://bugs.libre-soc.org/show_bug.cgi?id=838#c9
should be d:RS;d:CR0, missing a semicolon. sigh

22 months agoWHOOPS. set the pack column in CSV files unconditionally to 1
Luke Kenneth Casson Leighton [Wed, 3 Aug 2022 00:38:07 +0000 (01:38 +0100)]
WHOOPS. set the pack column in CSV files unconditionally to 1
fortunately it is not used yet

22 months agowhoops should be True
Luke Kenneth Casson Leighton [Sun, 31 Jul 2022 21:19:21 +0000 (22:19 +0100)]
whoops should be True

22 months agowhoops initialise nia_update to False
Luke Kenneth Casson Leighton [Sun, 31 Jul 2022 16:02:45 +0000 (17:02 +0100)]
whoops initialise nia_update to False

23 months agosv_binutils: refactor naming conventions
Dmitry Selyutin [Sat, 30 Jul 2022 18:18:01 +0000 (21:18 +0300)]
sv_binutils: refactor naming conventions

23 months agosv_binutils: introduce svp64_opindex_rm_field routine
Dmitry Selyutin [Sat, 30 Jul 2022 12:42:10 +0000 (15:42 +0300)]
sv_binutils: introduce svp64_opindex_rm_field routine

23 months agoadd README in ISA sim directory
Luke Kenneth Casson Leighton [Sat, 30 Jul 2022 19:35:58 +0000 (20:35 +0100)]
add README in ISA sim directory

23 months agofix LDST immed using EXTRA2 not EXTRA3 in tests to make
Luke Kenneth Casson Leighton [Sat, 30 Jul 2022 17:48:53 +0000 (18:48 +0100)]
fix LDST immed using EXTRA2 not EXTRA3 in tests to make
room for Pack/Unpack

23 months agosigh begin process of fixing unit tests which are no longer EXTRA3
Luke Kenneth Casson Leighton [Sat, 30 Jul 2022 17:33:37 +0000 (18:33 +0100)]
sigh begin process of fixing unit tests which are no longer EXTRA3
on lwz.stz (immediate) makinng room for Pack/Unpack
https://bugs.libre-soc.org/show_bug.cgi?id=871

23 months agoadd LDST-2P-*PU.csv, tracked down weirdness, it was the
Luke Kenneth Casson Leighton [Sat, 30 Jul 2022 17:10:12 +0000 (18:10 +0100)]
add LDST-2P-*PU.csv, tracked down weirdness, it was the
BREV versions of LDST which need removing (not now)

23 months agoaddPack/Unpack to sv_analysis, extra CSV column.
Luke Kenneth Casson Leighton [Sat, 30 Jul 2022 16:49:09 +0000 (17:49 +0100)]
addPack/Unpack to sv_analysis, extra CSV column.
much weirdness, still investigating, lwz is still showing up in
LDST-2P-1S1D-imm which should not be happening

23 months agoadd PACK/UNPACK constants for RM-2P-1S1D-PU
Luke Kenneth Casson Leighton [Sat, 30 Jul 2022 14:29:08 +0000 (15:29 +0100)]
add PACK/UNPACK constants for RM-2P-1S1D-PU

23 months agomuch dumbness. fmvis is RM-1P-1D
Luke Kenneth Casson Leighton [Thu, 28 Jul 2022 20:40:08 +0000 (21:40 +0100)]
much dumbness.  fmvis is RM-1P-1D

23 months agoRevert "add fmvis as a new RM-1P-1S SVP64 RM type"
Luke Kenneth Casson Leighton [Thu, 28 Jul 2022 20:36:47 +0000 (21:36 +0100)]
Revert "add fmvis as a new RM-1P-1S SVP64 RM type"

This reverts commit 9fc4f5fd4ec2e3a3e52acacaf699f18d324b9f2d.

23 months agoadd fmvis as a new RM-1P-1S SVP64 RM type
Luke Kenneth Casson Leighton [Thu, 28 Jul 2022 20:32:42 +0000 (21:32 +0100)]
add fmvis as a new RM-1P-1S SVP64 RM type

23 months agosv_binutils: include SVP64 context header
Dmitry Selyutin [Thu, 28 Jul 2022 13:47:40 +0000 (16:47 +0300)]
sv_binutils: include SVP64 context header

23 months agosv_binutils: remove separate CRs table
Dmitry Selyutin [Thu, 28 Jul 2022 13:34:11 +0000 (16:34 +0300)]
sv_binutils: remove separate CRs table

23 months agoDOUBLE2SINGLE: convert doc comments to docstring
Jacob Lifshay [Thu, 28 Jul 2022 10:10:47 +0000 (03:10 -0700)]
DOUBLE2SINGLE: convert doc comments to docstring

23 months agore-convert frsp pseudocode
Jacob Lifshay [Thu, 28 Jul 2022 09:50:30 +0000 (02:50 -0700)]
re-convert frsp pseudocode

Fixes: https://bugs.libre-soc.org/show_bug.cgi?id=896
23 months agotry to add some line numbers to ast -- helps with debugging
Jacob Lifshay [Thu, 28 Jul 2022 08:59:44 +0000 (01:59 -0700)]
try to add some line numbers to ast -- helps with debugging

23 months agoswitch ast for assignment to tuple to use the python 3 classes
Jacob Lifshay [Thu, 28 Jul 2022 08:58:34 +0000 (01:58 -0700)]
switch ast for assignment to tuple to use the python 3 classes

23 months agofix line number tracking
Jacob Lifshay [Thu, 28 Jul 2022 08:57:27 +0000 (01:57 -0700)]
fix line number tracking

23 months agoadd handy re-indenting script
Jacob Lifshay [Thu, 28 Jul 2022 08:47:29 +0000 (01:47 -0700)]
add handy re-indenting script

23 months agogitlab-ci.yml: stop testing after 5 failures
Jacob Lifshay [Wed, 27 Jul 2022 18:30:49 +0000 (11:30 -0700)]
gitlab-ci.yml: stop testing after 5 failures

23 months agoshrink build log
Jacob Lifshay [Wed, 27 Jul 2022 18:17:07 +0000 (11:17 -0700)]
shrink build log

23 months agoadd another test and fix broken fishmv pseudocode
Jacob Lifshay [Wed, 27 Jul 2022 17:54:23 +0000 (10:54 -0700)]
add another test and fix broken fishmv pseudocode

23 months agoadd extra fmvis to see what is going on
Luke Kenneth Casson Leighton [Wed, 27 Jul 2022 13:57:12 +0000 (14:57 +0100)]
add extra fmvis to see what is going on

23 months agoFix fmvis & fishmv bit handling for d0, add tests for negative fp numbers
Konstantinos Margaritis [Wed, 27 Jul 2022 13:18:13 +0000 (13:18 +0000)]
Fix fmvis & fishmv bit handling for d0, add tests for negative fp numbers

23 months agoAdd fishmv instruction (bug #887)
Konstantinos Margaritis [Wed, 27 Jul 2022 11:01:37 +0000 (11:01 +0000)]
Add fishmv instruction (bug #887)

23 months agofix wrong shift in fmvis, use correct immediates in test
Konstantinos Margaritis [Wed, 27 Jul 2022 08:43:42 +0000 (08:43 +0000)]
fix wrong shift in fmvis, use correct immediates in test

23 months agoupdate comments in fmvis case
Luke Kenneth Casson Leighton [Tue, 26 Jul 2022 15:38:53 +0000 (16:38 +0100)]
update comments in fmvis case

23 months agoadd first FP "expected state" use it in fmvis
Luke Kenneth Casson Leighton [Tue, 26 Jul 2022 15:37:40 +0000 (16:37 +0100)]
add first FP "expected state" use it in fmvis

23 months agobit more docs on fmvis
Luke Kenneth Casson Leighton [Tue, 26 Jul 2022 15:28:13 +0000 (16:28 +0100)]
bit more docs on fmvis

23 months agooff-by-one in declaration of pattern-match XO for fmvis
Luke Kenneth Casson Leighton [Tue, 26 Jul 2022 15:15:50 +0000 (16:15 +0100)]
off-by-one in declaration of pattern-match XO for fmvis

23 months agoadd some more example fmvis to work out which is LSB and which MSB
Luke Kenneth Casson Leighton [Tue, 26 Jul 2022 15:15:17 +0000 (16:15 +0100)]
add some more example fmvis to work out which is LSB and which MSB

23 months agoadd example fmvis instruction to trans/svp64.py
Luke Kenneth Casson Leighton [Tue, 26 Jul 2022 15:11:53 +0000 (16:11 +0100)]
add example fmvis instruction to trans/svp64.py

23 months agodang.
Luke Kenneth Casson Leighton [Tue, 26 Jul 2022 15:08:21 +0000 (16:08 +0100)]
dang.

Revert "Revert "set IN1 to NONE for fmvis", in1 is FRS."

This reverts commit ecfe1775e98cf367733a66fc368a8c6e92d92504.

23 months agoRevert "set IN1 to NONE for fmvis", in1 is FRS.
Luke Kenneth Casson Leighton [Tue, 26 Jul 2022 15:06:35 +0000 (16:06 +0100)]
Revert "set IN1 to NONE for fmvis", in1 is FRS.
https://libre-soc.org/openpower/sv/int_fp_mv/
0-5 6-10 11-15 16-25 26-30 31 Form
Major FRS d1 d0 XO d2 DX-Form

This reverts commit ff67f3220d279512fe2656136dfc3287842a91e3.

23 months agouse DOUBLE helper function in fmvis
Luke Kenneth Casson Leighton [Tue, 26 Jul 2022 15:05:01 +0000 (16:05 +0100)]
use DOUBLE helper function in fmvis

23 months agoannoying. DX-Form is one exception to the rule of having the
Luke Kenneth Casson Leighton [Tue, 26 Jul 2022 15:04:29 +0000 (16:04 +0100)]
annoying. DX-Form is one exception to the rule of having the
immediate be directly actual fields.  the immediate has to be
"de-constructed" before fitting into its places, d0 d1 and d2

23 months agoset IN1 to NONE for fmvis
Konstantinos Margaritis [Tue, 26 Jul 2022 14:48:21 +0000 (14:48 +0000)]
set IN1 to NONE for fmvis