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

21 months 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?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

21 months 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.

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

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

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

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

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

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

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

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

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

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

21 months 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!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

21 months agorename remap_debug to remap_set_steps
Luke Kenneth Casson Leighton [Mon, 5 Sep 2022 11:40:04 +0000 (12:40 +0100)]
rename remap_debug to remap_set_steps

21 months agoplease do not use format-specifiers
Luke Kenneth Casson Leighton [Mon, 5 Sep 2022 11:25:26 +0000 (12:25 +0100)]
please do not use format-specifiers

21 months agoremove yet more f"" specifiers
Luke Kenneth Casson Leighton [Mon, 5 Sep 2022 11:20:26 +0000 (12:20 +0100)]
remove yet more f"" specifiers

21 months agoremoving use of format. please do not use format
Luke Kenneth Casson Leighton [Mon, 5 Sep 2022 11:14:28 +0000 (12:14 +0100)]
removing use of format. please do not use format

21 months agorename "PARALLEL" enums to "PTREDUCE" - parallel tree reduce
Luke Kenneth Casson Leighton [Mon, 5 Sep 2022 09:21:20 +0000 (10:21 +0100)]
rename "PARALLEL" enums to "PTREDUCE" - parallel tree reduce

21 months agoadd detection of Parallel-Reduction Mode into SVP64RMModeDecode
Luke Kenneth Casson Leighton [Sun, 4 Sep 2022 19:47:40 +0000 (20:47 +0100)]
add detection of Parallel-Reduction Mode into SVP64RMModeDecode

21 months agoadd parallel-reduction (subvl=0) in sv/trans/svp64.py
Luke Kenneth Casson Leighton [Sun, 4 Sep 2022 19:35:53 +0000 (20:35 +0100)]
add parallel-reduction (subvl=0) in sv/trans/svp64.py

21 months agopower_insn: support mode description
Dmitry Selyutin [Sun, 4 Sep 2022 18:21:49 +0000 (21:21 +0300)]
power_insn: support mode description

21 months agopower_insn: decouple mode function
Dmitry Selyutin [Sun, 4 Sep 2022 17:36:16 +0000 (20:36 +0300)]
power_insn: decouple mode function

21 months agopower_insn: pass database instance everywhere
Dmitry Selyutin [Sun, 4 Sep 2022 17:27:41 +0000 (20:27 +0300)]
power_insn: pass database instance everywhere

21 months agopower_insn: refactor operation order
Dmitry Selyutin [Sun, 4 Sep 2022 16:17:48 +0000 (19:17 +0300)]
power_insn: refactor operation order

21 months agowhoops forgot to write maxvl in PowerDecoder2
Luke Kenneth Casson Leighton [Sun, 4 Sep 2022 15:06:50 +0000 (16:06 +0100)]
whoops forgot to write maxvl in PowerDecoder2