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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2 years agofix form and pseudo-code for fmvis, tests in 64-bit mode
Konstantinos Margaritis [Tue, 26 Jul 2022 13:57:46 +0000 (13:57 +0000)]
fix form and pseudo-code for fmvis, tests in 64-bit mode

2 years agowhitespace cleanup
Luke Kenneth Casson Leighton [Tue, 26 Jul 2022 13:25:24 +0000 (14:25 +0100)]
whitespace cleanup

2 years agofix fmvis decoder, it's now a 2-operand instruction
Konstantinos Margaritis [Tue, 26 Jul 2022 13:22:30 +0000 (13:22 +0000)]
fix fmvis decoder, it's now a 2-operand instruction