openpower-isa.git
2 years agoadd new CRIn2Sel for later, for getting rid of CRInSel.BA_BB
Luke Kenneth Casson Leighton [Sun, 11 Sep 2022 20:53:00 +0000 (21:53 +0100)]
add new CRIn2Sel for later, for getting rid of CRInSel.BA_BB

2 years agoBFT does not exist
Luke Kenneth Casson Leighton [Sun, 11 Sep 2022 16:55:41 +0000 (17:55 +0100)]
BFT does not exist

2 years agoadd sv.isel 12,2,3,*99 test to test_pysvp64dis.py
Luke Kenneth Casson Leighton [Sun, 11 Sep 2022 14:03:53 +0000 (15:03 +0100)]
add sv.isel 12,2,3,*99 test to test_pysvp64dis.py

2 years agoadd some CR3 pysvp64dis.py tests, sv.crand
Luke Kenneth Casson Leighton [Sun, 11 Sep 2022 13:37:35 +0000 (14:37 +0100)]
add some CR3 pysvp64dis.py tests, sv.crand

2 years agopower_insn: check exact matches directly in set
Dmitry Selyutin [Sat, 10 Sep 2022 19:38:30 +0000 (22:38 +0300)]
power_insn: check exact matches directly in set

2 years agopower_insn: group opcodes and names
Dmitry Selyutin [Sat, 10 Sep 2022 19:37:51 +0000 (22:37 +0300)]
power_insn: group opcodes and names

2 years agoadd sv.isel asm-disasm tests to test_pysvp64dis.py
Luke Kenneth Casson Leighton [Sun, 11 Sep 2022 11:03:14 +0000 (12:03 +0100)]
add sv.isel asm-disasm tests to test_pysvp64dis.py

2 years agoadd missing addpcis to power_enums.py and minor_19.csv
Luke Kenneth Casson Leighton [Sun, 11 Sep 2022 11:00:56 +0000 (12:00 +0100)]
add missing addpcis to power_enums.py and minor_19.csv

2 years agoconvert minor_19 to bitpattern (for adding addpcis)
Luke Kenneth Casson Leighton [Sun, 11 Sep 2022 10:57:20 +0000 (11:57 +0100)]
convert minor_19 to bitpattern (for adding addpcis)

2 years agowhoops lsbshf=2 for CR5
Luke Kenneth Casson Leighton [Sun, 11 Sep 2022 10:39:10 +0000 (11:39 +0100)]
whoops lsbshf=2 for CR5

2 years agowhoops missed lsb-shift parameter
Luke Kenneth Casson Leighton [Sun, 11 Sep 2022 09:58:29 +0000 (10:58 +0100)]
whoops missed lsb-shift parameter

2 years agoadd comments into CR5Operand class
Luke Kenneth Casson Leighton [Sun, 11 Sep 2022 09:54:24 +0000 (10:54 +0100)]
add comments into CR5Operand class

2 years agoadd CR5Operand and CR3Operand to power_insns.py
Luke Kenneth Casson Leighton [Sun, 11 Sep 2022 00:40:56 +0000 (01:40 +0100)]
add CR5Operand and CR3Operand to power_insns.py

2 years agohuhn? addpcis converts to .long? huhn?
Luke Kenneth Casson Leighton [Sat, 10 Sep 2022 23:54:49 +0000 (00:54 +0100)]
huhn? addpcis converts to .long? huhn?

2 years agofix issue with pysvp64dis.py load() reading from stdin
Luke Kenneth Casson Leighton [Sat, 10 Sep 2022 23:54:29 +0000 (00:54 +0100)]
fix issue with pysvp64dis.py load() reading from stdin
take a copy of the input and allow "seek()" on the copy (BytesIO)

2 years agopower_insn: perform minor opcodes cleanup
Dmitry Selyutin [Sat, 10 Sep 2022 19:18:08 +0000 (22:18 +0300)]
power_insn: perform minor opcodes cleanup

2 years agopower_insn: hopefully final take on the opcodes
Dmitry Selyutin [Sat, 10 Sep 2022 18:18:14 +0000 (21:18 +0300)]
power_insn: hopefully final take on the opcodes

2 years agopower_insn: yet another take on the opcodes
Dmitry Selyutin [Sat, 10 Sep 2022 15:07:02 +0000 (18:07 +0300)]
power_insn: yet another take on the opcodes

2 years agowhitespace cleanup
Luke Kenneth Casson Leighton [Sat, 10 Sep 2022 14:07:37 +0000 (15:07 +0100)]
whitespace cleanup

2 years agoadd quine-mckluskey algorithm
Luke Kenneth Casson Leighton [Sat, 10 Sep 2022 13:59:28 +0000 (14:59 +0100)]
add quine-mckluskey algorithm

2 years agopower_insn: refactor register verbose assembly
Dmitry Selyutin [Sat, 10 Sep 2022 06:07:27 +0000 (09:07 +0300)]
power_insn: refactor register verbose assembly

2 years agopower_insn: support pcode
Dmitry Selyutin [Sat, 10 Sep 2022 06:02:42 +0000 (09:02 +0300)]
power_insn: support pcode

2 years agopower_insn: tune TargetAddrOperand disassembly
Dmitry Selyutin [Sat, 10 Sep 2022 05:43:06 +0000 (08:43 +0300)]
power_insn: tune TargetAddrOperand disassembly

2 years agopower_insn: support CR remap
Dmitry Selyutin [Thu, 8 Sep 2022 22:36:44 +0000 (01:36 +0300)]
power_insn: support CR remap

2 years agopower_insn: support non-zero operands
Dmitry Selyutin [Fri, 9 Sep 2022 22:12:53 +0000 (01:12 +0300)]
power_insn: support non-zero operands

2 years agopower_insn: simplify operand naming conventions
Dmitry Selyutin [Fri, 9 Sep 2022 22:08:35 +0000 (01:08 +0300)]
power_insn: simplify operand naming conventions

2 years agopower_insn: drop redundant dataclass incantations
Dmitry Selyutin [Fri, 9 Sep 2022 22:05:40 +0000 (01:05 +0300)]
power_insn: drop redundant dataclass incantations

2 years agopower_insn: do not print blob suffix unless needed
Dmitry Selyutin [Fri, 9 Sep 2022 22:04:35 +0000 (01:04 +0300)]
power_insn: do not print blob suffix unless needed

2 years agopower_insn: do not panic upon database query
Dmitry Selyutin [Fri, 9 Sep 2022 21:52:47 +0000 (00:52 +0300)]
power_insn: do not panic upon database query

2 years agopower_insn: refactor opcode matching
Dmitry Selyutin [Fri, 9 Sep 2022 21:34:58 +0000 (00:34 +0300)]
power_insn: refactor opcode matching

2 years agopower_insn: support D operand in DX form
Dmitry Selyutin [Fri, 9 Sep 2022 17:07:15 +0000 (20:07 +0300)]
power_insn: support D operand in DX form

2 years agopower_insn: refactor span detection
Dmitry Selyutin [Fri, 9 Sep 2022 12:28:00 +0000 (15:28 +0300)]
power_insn: refactor span detection

2 years agopower_insn: simplify code
Dmitry Selyutin [Fri, 9 Sep 2022 12:16:45 +0000 (15:16 +0300)]
power_insn: simplify code

2 years agopower_insn: remove redundant code
Dmitry Selyutin [Thu, 8 Sep 2022 22:25:35 +0000 (01:25 +0300)]
power_insn: remove redundant code

2 years agopower_insn: decouple extra merge routine
Dmitry Selyutin [Thu, 8 Sep 2022 21:31:36 +0000 (00:31 +0300)]
power_insn: decouple extra merge routine

2 years agopower_insn: rename extra to spec
Dmitry Selyutin [Thu, 8 Sep 2022 21:13:38 +0000 (00:13 +0300)]
power_insn: rename extra to spec

2 years agopower_insn: deprecate redundant else section
Dmitry Selyutin [Thu, 8 Sep 2022 21:04:37 +0000 (00:04 +0300)]
power_insn: deprecate redundant else section

2 years agopower_insn: rename Extra classes
Dmitry Selyutin [Thu, 8 Sep 2022 20:54:54 +0000 (23:54 +0300)]
power_insn: rename Extra classes

2 years agofields.text: this fish ain't moving
Dmitry Selyutin [Fri, 9 Sep 2022 14:28:30 +0000 (17:28 +0300)]
fields.text: this fish ain't moving

2 years agoreallocate fcbrt(s) to match new fptrans allocations
Jacob Lifshay [Sat, 10 Sep 2022 02:19:55 +0000 (19:19 -0700)]
reallocate fcbrt(s) to match new fptrans allocations

2 years agomove ffadds to not conflict with fptrans -- makes space for min/max/fmod/remainder ops
Jacob Lifshay [Sat, 10 Sep 2022 02:08:56 +0000 (19:08 -0700)]
move ffadds to not conflict with fptrans -- makes space for min/max/fmod/remainder ops

2 years agoadd fishmv fmvis addpcis instructions to test_pysvp64dis.py
Luke Kenneth Casson Leighton [Fri, 9 Sep 2022 19:14:37 +0000 (20:14 +0100)]
add fishmv fmvis addpcis instructions to test_pysvp64dis.py
these are not hugely verbose

2 years agoadd subtests
Luke Kenneth Casson Leighton [Fri, 9 Sep 2022 18:26:54 +0000 (19:26 +0100)]
add subtests

2 years agohooray got test_pysvp64dis.py working with new Verbosity level
Luke Kenneth Casson Leighton [Fri, 9 Sep 2022 18:23:52 +0000 (19:23 +0100)]
hooray got test_pysvp64dis.py working with new Verbosity level

2 years agopower_insn: support verbosity levels
Dmitry Selyutin [Fri, 9 Sep 2022 16:27:59 +0000 (19:27 +0300)]
power_insn: support verbosity levels

2 years agopower_insn: indent refactoring
Dmitry Selyutin [Fri, 9 Sep 2022 15:51:33 +0000 (18:51 +0300)]
power_insn: indent refactoring

2 years agoadd seek/tell on load in pysvp64dis so that generator can be reused
Luke Kenneth Casson Leighton [Fri, 9 Sep 2022 15:25:31 +0000 (16:25 +0100)]
add seek/tell on load in pysvp64dis so that generator can be reused

2 years agoadd "short" argument (TODO pick better name) to pysvp64dis
Luke Kenneth Casson Leighton [Fri, 9 Sep 2022 15:25:03 +0000 (16:25 +0100)]
add "short" argument (TODO pick better name) to pysvp64dis

2 years agoadd pysvp64dis tester
Luke Kenneth Casson Leighton [Fri, 9 Sep 2022 15:22:40 +0000 (16:22 +0100)]
add pysvp64dis tester

2 years agoextend short down into rest of disassembly
Luke Kenneth Casson Leighton [Fri, 9 Sep 2022 15:19:36 +0000 (16:19 +0100)]
extend short down into rest of disassembly

2 years agoadd "short" form of instruction - not output hex-encoding
Luke Kenneth Casson Leighton [Fri, 9 Sep 2022 15:11:48 +0000 (16:11 +0100)]
add "short" form of instruction - not output hex-encoding

2 years ago"D" of fishmv RT,D has to be done as a custom field
Luke Kenneth Casson Leighton [Fri, 9 Sep 2022 14:45:22 +0000 (15:45 +0100)]
"D" of fishmv RT,D has to be done as a custom field

Revert "fields.text: this fish ain't moving"

This reverts commit c86e1ad76c423dd4cf6a8b79a2c2720a1ef963a5.

2 years agofields.text: this fish ain't moving
Dmitry Selyutin [Fri, 9 Sep 2022 14:28:30 +0000 (17:28 +0300)]
fields.text: this fish ain't moving

2 years agominor_22: make svshape2 really shaped
Dmitry Selyutin [Fri, 9 Sep 2022 14:35:37 +0000 (17:35 +0300)]
minor_22: make svshape2 really shaped

2 years agominor_31: fix setb form
Dmitry Selyutin [Fri, 9 Sep 2022 14:40:23 +0000 (17:40 +0300)]
minor_31: fix setb form

2 years agominor_30: fix rldicl form
Dmitry Selyutin [Fri, 9 Sep 2022 14:30:28 +0000 (17:30 +0300)]
minor_30: fix rldicl form

2 years agoadd default arg byteorder=LITTLE to pysvp64dis
Luke Kenneth Casson Leighton [Fri, 9 Sep 2022 14:20:22 +0000 (15:20 +0100)]
add default arg byteorder=LITTLE to pysvp64dis

2 years agoadded missing RA RB RT to TLI-Form fields.txt
Luke Kenneth Casson Leighton [Fri, 9 Sep 2022 14:18:46 +0000 (15:18 +0100)]
added missing RA RB RT to TLI-Form fields.txt

2 years agomajor: fix andi./andis. form
Dmitry Selyutin [Fri, 9 Sep 2022 14:10:26 +0000 (17:10 +0300)]
major: fix andi./andis. form

2 years agominor_30: fix rldcl/rldcr forms
Dmitry Selyutin [Fri, 9 Sep 2022 13:55:56 +0000 (16:55 +0300)]
minor_30: fix rldcl/rldcr forms

2 years agowhitespace
Luke Kenneth Casson Leighton [Thu, 8 Sep 2022 22:46:04 +0000 (23:46 +0100)]
whitespace

2 years agopysvp64asm: fix missing arguments
Dmitry Selyutin [Thu, 8 Sep 2022 22:37:17 +0000 (01:37 +0300)]
pysvp64asm: fix missing arguments

2 years agorename svshape and svoffset fields
Luke Kenneth Casson Leighton [Thu, 8 Sep 2022 21:25:41 +0000 (22:25 +0100)]
rename svshape and svoffset fields
* yx to SVyx
* offs to SVo
also correct the pseudocode!

2 years agosvshape2: rename fields
Dmitry Selyutin [Thu, 8 Sep 2022 18:01:46 +0000 (21:01 +0300)]
svshape2: rename fields

2 years agopower_insn: dump operand type (scalar/vector)
Dmitry Selyutin [Wed, 7 Sep 2022 20:22:46 +0000 (23:22 +0300)]
power_insn: dump operand type (scalar/vector)

2 years agoadd fcpsgn parallel reduction test
Luke Kenneth Casson Leighton [Wed, 7 Sep 2022 19:27:09 +0000 (20:27 +0100)]
add fcpsgn parallel reduction test
https://bugs.libre-soc.org/show_bug.cgi?id=864

2 years agowhoops forgot to strip "NN/NN=insn" in power_svp64.py
Luke Kenneth Casson Leighton [Wed, 7 Sep 2022 19:26:24 +0000 (20:26 +0100)]
whoops forgot to strip "NN/NN=insn" in power_svp64.py

2 years agoadd 2nd parallel prefix test, this time subtract (non-commutative)
Luke Kenneth Casson Leighton [Wed, 7 Sep 2022 18:40:01 +0000 (19:40 +0100)]
add 2nd parallel prefix test, this time subtract (non-commutative)

2 years agopower_insn: fix immediate operands
Dmitry Selyutin [Wed, 7 Sep 2022 16:15:54 +0000 (19:15 +0300)]
power_insn: fix immediate operands

2 years agopower_insn: refactor operands disassembly
Dmitry Selyutin [Wed, 7 Sep 2022 12:30:32 +0000 (15:30 +0300)]
power_insn: refactor operands disassembly

2 years agopower_fields: deprecate arrays
Dmitry Selyutin [Wed, 7 Sep 2022 09:47:38 +0000 (12:47 +0300)]
power_fields: deprecate arrays

2 years agopower_insn: support EXTRA2/EXTRA3 GPR/FPR
Dmitry Selyutin [Tue, 6 Sep 2022 19:09:59 +0000 (22:09 +0300)]
power_insn: support EXTRA2/EXTRA3 GPR/FPR

2 years agopower_fields: allow getting individual field bits
Dmitry Selyutin [Tue, 6 Sep 2022 18:26:53 +0000 (21:26 +0300)]
power_fields: allow getting individual field bits

2 years agopower_insn: use tuple for bit ranges in fields
Dmitry Selyutin [Tue, 6 Sep 2022 18:26:03 +0000 (21:26 +0300)]
power_insn: use tuple for bit ranges in fields

2 years agopysvp64asm: create database once
Dmitry Selyutin [Tue, 6 Sep 2022 13:25:23 +0000 (16:25 +0300)]
pysvp64asm: create database once

2 years agopower_insn: fix naming conventions
Dmitry Selyutin [Tue, 6 Sep 2022 12:26:42 +0000 (15:26 +0300)]
power_insn: fix naming conventions

2 years agopower_insn: stricter reg type check
Dmitry Selyutin [Tue, 6 Sep 2022 11:51:18 +0000 (14:51 +0300)]
power_insn: stricter reg type check

2 years agoadd first functional confirmed unit test for parallel reduce REMAP
Luke Kenneth Casson Leighton [Tue, 6 Sep 2022 14:50:35 +0000 (15:50 +0100)]
add first functional confirmed unit test for parallel reduce REMAP
https://bugs.libre-soc.org/show_bug.cgi?id=864
using remap_preduce_yield directly, confirmed operational through ISACaller
added through decoder/isa/svshape.py which is responsible
in SVSHAPE.getiterator() for returning the appropriate yield-iterator

2 years agoREMAP parallel-reduce:
Luke Kenneth Casson Leighton [Tue, 6 Sep 2022 14:28:05 +0000 (15:28 +0100)]
REMAP parallel-reduce:
https://bugs.libre-soc.org/show_bug.cgi?id=864
* add 0b0111 csv entry for svshape
* stop sv/trans/svp64.py raising exception for SVrm=0b0111
* add beginnings of svshape SVrm=0b0111 to simplev.mdwn
* add first unit test

2 years agoadd fixedsync.py to .gitignore
Jacob Lifshay [Tue, 6 Sep 2022 12:20:19 +0000 (05:20 -0700)]
add fixedsync.py to .gitignore

2 years agofix incorrect comment
Jacob Lifshay [Tue, 6 Sep 2022 12:19:15 +0000 (05:19 -0700)]
fix incorrect comment

2 years agoadd all fptrans ops to CSVs
Jacob Lifshay [Tue, 6 Sep 2022 12:07:32 +0000 (05:07 -0700)]
add all fptrans ops to CSVs

2 years agoadd unofficial and comment2 fields to minor_63.csv
Jacob Lifshay [Tue, 6 Sep 2022 11:50:57 +0000 (04:50 -0700)]
add unofficial and comment2 fields to minor_63.csv

2 years agopower_insn: rename value argument to insn in operands
Dmitry Selyutin [Tue, 6 Sep 2022 09:01:35 +0000 (12:01 +0300)]
power_insn: rename value argument to insn in operands

2 years agopower_insn: support branch stub
Dmitry Selyutin [Tue, 6 Sep 2022 09:01:10 +0000 (12:01 +0300)]
power_insn: support branch stub

2 years agopower_insn: clean extra disassembly
Dmitry Selyutin [Mon, 5 Sep 2022 19:29:09 +0000 (22:29 +0300)]
power_insn: clean extra disassembly

2 years agopower_enum: tune SVPtype representation
Dmitry Selyutin [Mon, 5 Sep 2022 18:36:24 +0000 (21:36 +0300)]
power_enum: tune SVPtype representation

2 years agopower_enum: tune SVEtype representation
Dmitry Selyutin [Mon, 5 Sep 2022 18:35:33 +0000 (21:35 +0300)]
power_enum: tune SVEtype representation

2 years agopower_insn: disassemble extra index
Dmitry Selyutin [Mon, 5 Sep 2022 18:00:15 +0000 (21:00 +0300)]
power_insn: disassemble extra index

2 years agopower_enum: tune SVExtra representation
Dmitry Selyutin [Mon, 5 Sep 2022 17:58:13 +0000 (20:58 +0300)]
power_enum: tune SVExtra representation

2 years agopower_insn: support extra_reg routine
Dmitry Selyutin [Mon, 5 Sep 2022 17:39:17 +0000 (20:39 +0300)]
power_insn: support extra_reg routine

2 years agopower_insn: move extras to SVP64Record
Dmitry Selyutin [Mon, 5 Sep 2022 11:19:52 +0000 (14:19 +0300)]
power_insn: move extras to SVP64Record

2 years agoremoving two unused fields (E) which somehow
Luke Kenneth Casson Leighton [Tue, 6 Sep 2022 11:42:30 +0000 (12:42 +0100)]
removing two unused fields (E) which somehow
made it into the 1.6.2 section

2 years agoadd dummy fixedsync.mdwn pseudocode for lwarx/stbcx. LR/SC operations
Luke Kenneth Casson Leighton [Tue, 6 Sep 2022 11:01:29 +0000 (12:01 +0100)]
add dummy fixedsync.mdwn pseudocode for lwarx/stbcx. LR/SC operations

2 years agosort out demo of remap_preduce_yield.py
Luke Kenneth Casson Leighton [Tue, 6 Sep 2022 01:22:02 +0000 (02:22 +0100)]
sort out demo of remap_preduce_yield.py
originally based on wiki preduce.py, split into two separate SVSHAPEs
one for left operand the other for right

2 years agoadd first version of parallel reduction yield
Luke Kenneth Casson Leighton [Tue, 6 Sep 2022 00:39:00 +0000 (01:39 +0100)]
add first version of parallel reduction yield

2 years agoadd a new log option to pysvp64dis and make it a command-line
Luke Kenneth Casson Leighton [Mon, 5 Sep 2022 23:12:10 +0000 (00:12 +0100)]
add a new log option to pysvp64dis and make it a command-line
console script using setup.py entry_points

2 years agouse log function for warnings about .mdwn files in pagereader.py
Luke Kenneth Casson Leighton [Mon, 5 Sep 2022 23:09:06 +0000 (00:09 +0100)]
use log function for warnings about .mdwn files in pagereader.py

2 years agomove reading of os.environ out of a global which prohibits
Luke Kenneth Casson Leighton [Mon, 5 Sep 2022 23:07:46 +0000 (00:07 +0100)]
move reading of os.environ out of a global which prohibits
setting of os.environ at runtime

2 years agoremove parallel-reduction mode from decoder and sv/trans/svp64.py
Luke Kenneth Casson Leighton [Mon, 5 Sep 2022 16:23:12 +0000 (17:23 +0100)]
remove parallel-reduction mode from decoder and sv/trans/svp64.py
parallel reduction has to be done through REMAP due to two critical factors:
1) the amount of gates in joining REMAP with PREDUCE as a "Mode"
2) the differing Vector Length (similar to Matrix) from the number of
   operations needed to be performed
the complexity arising is too great which means it has to be done as REMAP