openpower-isa.git
11 months agoinsndb: decouple visitors and walking
Dmitry Selyutin [Wed, 7 Jun 2023 19:57:16 +0000 (22:57 +0300)]
insndb: decouple visitors and walking

11 months agoinsndb: refactor visitors (again)
Dmitry Selyutin [Wed, 7 Jun 2023 13:16:57 +0000 (16:16 +0300)]
insndb: refactor visitors (again)

11 months agocomment out debug log
Luke Kenneth Casson Leighton [Sat, 3 Jun 2023 23:35:53 +0000 (00:35 +0100)]
comment out debug log

11 months agoremove print log
Luke Kenneth Casson Leighton [Sat, 3 Jun 2023 23:34:00 +0000 (00:34 +0100)]
remove print log

11 months agoinsndb: refactor visitors
Dmitry Selyutin [Wed, 7 Jun 2023 08:58:36 +0000 (11:58 +0300)]
insndb: refactor visitors

11 months agoinsn/core: rename extra-related classes
Dmitry Selyutin [Wed, 7 Jun 2023 08:52:04 +0000 (11:52 +0300)]
insn/core: rename extra-related classes

12 months agopower_enums: distinguish all reg types
Dmitry Selyutin [Mon, 5 Jun 2023 09:11:39 +0000 (12:11 +0300)]
power_enums: distinguish all reg types

12 months agoinsndb/db: refactor visitors
Dmitry Selyutin [Sun, 4 Jun 2023 11:59:06 +0000 (14:59 +0300)]
insndb/db: refactor visitors

12 months agoinsn/core: introduce visitable extra
Dmitry Selyutin [Sun, 4 Jun 2023 10:27:31 +0000 (13:27 +0300)]
insn/core: introduce visitable extra

12 months agoinsndb/db: support operand spans
Dmitry Selyutin [Sun, 4 Jun 2023 10:00:25 +0000 (13:00 +0300)]
insndb/db: support operand spans

12 months agoinsn/db: restrict extras command with SVP64 instructions
Dmitry Selyutin [Sun, 4 Jun 2023 09:29:46 +0000 (12:29 +0300)]
insn/db: restrict extras command with SVP64 instructions

12 months agopower_enums: simplify sel type string conversion
Dmitry Selyutin [Sun, 4 Jun 2023 09:21:57 +0000 (12:21 +0300)]
power_enums: simplify sel type string conversion

12 months agopower_enums: simplify extra idx string conversion
Dmitry Selyutin [Sun, 4 Jun 2023 09:20:26 +0000 (12:20 +0300)]
power_enums: simplify extra idx string conversion

12 months agopower_enums: align reg pairs
Dmitry Selyutin [Sun, 4 Jun 2023 09:19:36 +0000 (12:19 +0300)]
power_enums: align reg pairs

12 months agopower_enums: simplify reg string conversion
Dmitry Selyutin [Sun, 4 Jun 2023 09:18:59 +0000 (12:18 +0300)]
power_enums: simplify reg string conversion

12 months agopower_enums: simplify selectors string conversion
Dmitry Selyutin [Sun, 4 Jun 2023 09:17:33 +0000 (12:17 +0300)]
power_enums: simplify selectors string conversion

12 months agoinsndb/db: support extras command
Dmitry Selyutin [Sun, 4 Jun 2023 09:12:40 +0000 (12:12 +0300)]
insndb/db: support extras command

12 months agoinsndb/db: change naming a bit
Dmitry Selyutin [Sun, 4 Jun 2023 08:53:10 +0000 (11:53 +0300)]
insndb/db: change naming a bit

12 months agoinsndb/db: introduce instruction argument type
Dmitry Selyutin [Sun, 4 Jun 2023 08:49:54 +0000 (11:49 +0300)]
insndb/db: introduce instruction argument type

12 months agofix (most) unit tests in test_pysvp64dis.py
Luke Kenneth Casson Leighton [Sat, 3 Jun 2023 18:31:33 +0000 (19:31 +0100)]
fix (most) unit tests in test_pysvp64dis.py

the fields in/out are sorted
(https://bugs.libre-soc.org/show_bug.cgi?id=1098)
but it looks like rldimi is the wrong bit-pattern

12 months agomust check *implicit* SelType which comes from the keys "in1/in2/in3/CR in"
Luke Kenneth Casson Leighton [Sat, 3 Jun 2023 18:16:19 +0000 (19:16 +0100)]
must check *implicit* SelType which comes from the keys "in1/in2/in3/CR in"
being SelType.SRC and keys "out/out2/CR out" being SelType.DST
https://bugs.libre-soc.org/show_bug.cgi?id=1098

12 months agorename "none" __repr__ to "NONE" in SVExtra and SelType
Luke Kenneth Casson Leighton [Sat, 3 Jun 2023 18:13:00 +0000 (19:13 +0100)]
rename "none" __repr__ to "NONE" in SVExtra and SelType

12 months agoinsndb/db: simplify commands structure
Dmitry Selyutin [Sat, 3 Jun 2023 17:02:24 +0000 (20:02 +0300)]
insndb/db: simplify commands structure

12 months agoinsndb/db: support pcode command
Dmitry Selyutin [Sat, 3 Jun 2023 16:58:02 +0000 (19:58 +0300)]
insndb/db: support pcode command

12 months agoinsndb/dis: rename into disasm for no good reason
Dmitry Selyutin [Sat, 3 Jun 2023 15:43:29 +0000 (18:43 +0300)]
insndb/dis: rename into disasm for no good reason

12 months agoinsndb/db: support log option
Dmitry Selyutin [Sat, 3 Jun 2023 15:15:42 +0000 (18:15 +0300)]
insndb/db: support log option

12 months agocorrect RS/RA/CR0 for rlwinm which is 2P-1S1D
Luke Kenneth Casson Leighton [Sat, 3 Jun 2023 15:14:15 +0000 (16:14 +0100)]
correct RS/RA/CR0 for rlwinm which is 2P-1S1D

12 months agoinsndb/db: support operands command
Dmitry Selyutin [Sat, 3 Jun 2023 15:02:07 +0000 (18:02 +0300)]
insndb/db: support operands command

12 months agoinsndb/db: refactor classes hierarchy
Dmitry Selyutin [Sat, 3 Jun 2023 10:41:42 +0000 (13:41 +0300)]
insndb/db: refactor classes hierarchy

12 months agoinsndb/db: deindent classes
Dmitry Selyutin [Sat, 3 Jun 2023 10:25:56 +0000 (13:25 +0300)]
insndb/db: deindent classes

12 months agoinsndb: rename types into core
Dmitry Selyutin [Sat, 3 Jun 2023 14:58:41 +0000 (17:58 +0300)]
insndb: rename types into core

12 months agoinsndb: revert recent renaming
Dmitry Selyutin [Sat, 3 Jun 2023 14:56:54 +0000 (17:56 +0300)]
insndb: revert recent renaming

12 months agoopenpower.insndb.dis renamed to disasm in setup.py
Luke Kenneth Casson Leighton [Sat, 3 Jun 2023 14:10:35 +0000 (15:10 +0100)]
openpower.insndb.dis renamed to disasm in setup.py

12 months agousing names of modules that are identical to commonly-used python modules
Luke Kenneth Casson Leighton [Sat, 3 Jun 2023 11:47:30 +0000 (12:47 +0100)]
using names of modules that are identical to commonly-used python modules
(even at the leaf-node) is causing import problems

12 months agoimport dis overloads naming of modules already in python3,
Luke Kenneth Casson Leighton [Sat, 3 Jun 2023 11:45:35 +0000 (12:45 +0100)]
import dis overloads naming of modules already in python3,
and stops functions from importing

12 months agocontinuing the conversion of LDST_IDX to EXTRA332 type
Luke Kenneth Casson Leighton [Sat, 3 Jun 2023 11:32:30 +0000 (12:32 +0100)]
continuing the conversion of LDST_IDX to EXTRA332 type
https://bugs.libre-soc.org/show_bug.cgi?id=1083

12 months agoinsndb/db: support opcodes command
Dmitry Selyutin [Sat, 3 Jun 2023 09:59:09 +0000 (12:59 +0300)]
insndb/db: support opcodes command

12 months agoinsndb/db: drop redundant method
Dmitry Selyutin [Sat, 3 Jun 2023 09:48:39 +0000 (12:48 +0300)]
insndb/db: drop redundant method

12 months agoinsndb: provide pysvp64db script
Dmitry Selyutin [Sat, 3 Jun 2023 09:23:20 +0000 (12:23 +0300)]
insndb: provide pysvp64db script

12 months agopysvp64dis: integrate into insndb insndb
Dmitry Selyutin [Fri, 2 Jun 2023 16:25:18 +0000 (19:25 +0300)]
pysvp64dis: integrate into insndb

12 months agopysvp64asm: integrate into insndb
Dmitry Selyutin [Fri, 2 Jun 2023 16:23:02 +0000 (19:23 +0300)]
pysvp64asm: integrate into insndb

12 months agopower_insn: decouple into separate module
Dmitry Selyutin [Fri, 2 Jun 2023 16:20:09 +0000 (19:20 +0300)]
power_insn: decouple into separate module

12 months agopower_insn: disassemble RA0 and RT0 correctly
Dmitry Selyutin [Wed, 31 May 2023 21:05:08 +0000 (00:05 +0300)]
power_insn: disassemble RA0 and RT0 correctly

12 months agopower_insn: forbid r0 for RA0 and RT0
Dmitry Selyutin [Wed, 31 May 2023 21:04:13 +0000 (00:04 +0300)]
power_insn: forbid r0 for RA0 and RT0

12 months agopower_enums: introduce Reg pair property
Dmitry Selyutin [Wed, 31 May 2023 21:00:51 +0000 (00:00 +0300)]
power_enums: introduce Reg pair property

12 months agopower_enums: introduce Reg or_zero property
Dmitry Selyutin [Wed, 31 May 2023 21:00:37 +0000 (00:00 +0300)]
power_enums: introduce Reg or_zero property

12 months agopower_insn: drop unused import
Dmitry Selyutin [Wed, 31 May 2023 19:47:40 +0000 (22:47 +0300)]
power_insn: drop unused import

12 months agopower_enums: deprecate SVExtraReg
Dmitry Selyutin [Wed, 31 May 2023 19:47:05 +0000 (22:47 +0300)]
power_enums: deprecate SVExtraReg

12 months agopower_insn: switch to Reg
Dmitry Selyutin [Wed, 31 May 2023 19:46:47 +0000 (22:46 +0300)]
power_insn: switch to Reg

12 months agopower_enums: introduce Reg as alias of SVExtraReg
Dmitry Selyutin [Wed, 31 May 2023 19:46:21 +0000 (22:46 +0300)]
power_enums: introduce Reg as alias of SVExtraReg

12 months agopower_insn: guess extra from reg instead of sel
Dmitry Selyutin [Wed, 31 May 2023 19:41:27 +0000 (22:41 +0300)]
power_insn: guess extra from reg instead of sel

12 months agopower_enums: provide selector type property
Dmitry Selyutin [Wed, 31 May 2023 19:25:32 +0000 (22:25 +0300)]
power_enums: provide selector type property

12 months agopower_enums: deprecate SVExtraRegType
Dmitry Selyutin [Wed, 31 May 2023 19:06:54 +0000 (22:06 +0300)]
power_enums: deprecate SVExtraRegType

12 months agopower_insn: switch to SelType
Dmitry Selyutin [Wed, 31 May 2023 19:06:14 +0000 (22:06 +0300)]
power_insn: switch to SelType

12 months agopower_enums: introduce SelType as alias of SVExtraRegType
Dmitry Selyutin [Wed, 31 May 2023 18:48:42 +0000 (21:48 +0300)]
power_enums: introduce SelType as alias of SVExtraRegType

12 months agopower_insn: completely refactor extras
Dmitry Selyutin [Wed, 31 May 2023 18:37:47 +0000 (21:37 +0300)]
power_insn: completely refactor extras

12 months agopower_enums: introduce register aliases
Dmitry Selyutin [Wed, 31 May 2023 20:40:39 +0000 (23:40 +0300)]
power_enums: introduce register aliases

12 months agopower_insn: introduce extras property
Dmitry Selyutin [Tue, 30 May 2023 19:45:48 +0000 (22:45 +0300)]
power_insn: introduce extras property

12 months agopower_enums: change SVExtra representation
Dmitry Selyutin [Tue, 30 May 2023 16:31:11 +0000 (19:31 +0300)]
power_enums: change SVExtra representation

12 months agofar too much memory (58 GB) being used by these unit tests,
Luke Kenneth Casson Leighton [Thu, 1 Jun 2023 16:02:56 +0000 (17:02 +0100)]
far too much memory (58 GB) being used by these unit tests,
they have to be done as far smaller batches

12 months agodisable fmv-fcvt tests entirely
Luke Kenneth Casson Leighton [Thu, 1 Jun 2023 15:54:02 +0000 (16:54 +0100)]
disable fmv-fcvt tests entirely

12 months agodisable fmv / fcvt unit tests as there are such a vast number
Luke Kenneth Casson Leighton [Thu, 1 Jun 2023 14:18:56 +0000 (15:18 +0100)]
disable fmv / fcvt unit tests as there are such a vast number
it causes machines with 64 GB of RAM to run out of memory
tests *have* to be kept short

12 months agoadd expected values to source
Jacob Lifshay [Thu, 1 Jun 2023 06:54:48 +0000 (23:54 -0700)]
add expected values to source

12 months agoadd worked-out svp64 16-bit maddsubrs test case
Jacob Lifshay [Thu, 1 Jun 2023 06:46:23 +0000 (23:46 -0700)]
add worked-out svp64 16-bit maddsubrs test case

12 months agomake maddsubrs show up in SVP64 generated CSVs
Jacob Lifshay [Thu, 1 Jun 2023 06:30:48 +0000 (23:30 -0700)]
make maddsubrs show up in SVP64 generated CSVs

12 months agoraise error on unhandled instruction kind
Jacob Lifshay [Thu, 1 Jun 2023 06:29:59 +0000 (23:29 -0700)]
raise error on unhandled instruction kind

12 months agolog no longer raises internal exceptions and has more caching, so is likely faster
Jacob Lifshay [Thu, 1 Jun 2023 04:39:58 +0000 (21:39 -0700)]
log no longer raises internal exceptions and has more caching, so is likely faster

12 months agoformat code
Jacob Lifshay [Thu, 1 Jun 2023 04:12:30 +0000 (21:12 -0700)]
format code

12 months agoincrease ci maxfail to 10
Jacob Lifshay [Thu, 1 Jun 2023 02:57:55 +0000 (19:57 -0700)]
increase ci maxfail to 10

12 months agotest_pysvp64dis.py: add tests for broken extras
Dmitry Selyutin [Wed, 31 May 2023 18:20:28 +0000 (21:20 +0300)]
test_pysvp64dis.py: add tests for broken extras

12 months agofcvtfg works!
Jacob Lifshay [Wed, 31 May 2023 06:08:05 +0000 (23:08 -0700)]
fcvtfg works!

12 months agoadd rest of bfp* functions needed for fcvtfg
Jacob Lifshay [Wed, 31 May 2023 06:07:08 +0000 (23:07 -0700)]
add rest of bfp* functions needed for fcvtfg

12 months agouse raise_syntax_error for `IndentationError`s as well
Jacob Lifshay [Wed, 31 May 2023 05:08:02 +0000 (22:08 -0700)]
use raise_syntax_error for `IndentationError`s as well

12 months agoadd support for checking sprs and msr in unit tests
Jacob Lifshay [Tue, 30 May 2023 08:00:01 +0000 (01:00 -0700)]
add support for checking sprs and msr in unit tests

12 months agouse a different default MSR value for unit tests since 0 isn't a very useful default
Jacob Lifshay [Tue, 30 May 2023 07:50:42 +0000 (00:50 -0700)]
use a different default MSR value for unit tests since 0 isn't a very useful default

12 months agoinorder.py: Typo fixes.
Andrey Miroshnikov [Mon, 29 May 2023 09:51:14 +0000 (09:51 +0000)]
inorder.py: Typo fixes.

12 months agoinorder.py: Added draft get_input/output_regs functions.
Andrey Miroshnikov [Sun, 28 May 2023 20:40:58 +0000 (20:40 +0000)]
inorder.py: Added draft get_input/output_regs functions.

Passing trace (insn and Hazards()) to the fetch phase.
Decoder not yet using Hazard info.

12 months agopower_insn: fix broken extra_idx
Dmitry Selyutin [Sun, 14 May 2023 12:25:37 +0000 (12:25 +0000)]
power_insn: fix broken extra_idx

12 months agopower_enums: fix incorrect naming
Dmitry Selyutin [Sun, 14 May 2023 12:09:22 +0000 (12:09 +0000)]
power_enums: fix incorrect naming

12 months agoadd P2M type - 1P 2P 2PM needed for new LD/ST-Indexed format
Luke Kenneth Casson Leighton [Sat, 27 May 2023 11:56:31 +0000 (12:56 +0100)]
add P2M type - 1P 2P 2PM needed for new LD/ST-Indexed format

12 months agohttps://bugs.libre-soc.org/show_bug.cgi?id=1091
Luke Kenneth Casson Leighton [Sat, 27 May 2023 11:35:37 +0000 (12:35 +0100)]
https://bugs.libre-soc.org/show_bug.cgi?id=1091
* rename shadd to sadd
* rename sm to SH
* update CSV files with instruction definition
* move shadd unit tests to separate class

12 months agoadd .py? gitignore
Luke Kenneth Casson Leighton [Sat, 27 May 2023 11:33:36 +0000 (12:33 +0100)]
add .py? gitignore

12 months agorename sm to SH for shift-and-add instructions
Luke Kenneth Casson Leighton [Sat, 27 May 2023 10:54:57 +0000 (11:54 +0100)]
rename sm to SH for shift-and-add instructions
https://bugs.libre-soc.org/show_bug.cgi?id=1091
in fields.text machine-readable spec

12 months agonote on FP Exception about DDFF VLi=0/1
Luke Kenneth Casson Leighton [Wed, 24 May 2023 12:01:51 +0000 (13:01 +0100)]
note on FP Exception about DDFF VLi=0/1

12 months agotest fcvttgo. with traps enabled
Jacob Lifshay [Wed, 24 May 2023 03:10:58 +0000 (20:10 -0700)]
test fcvttgo. with traps enabled

12 months agoISACaller: generate FP trap
Jacob Lifshay [Wed, 24 May 2023 03:10:18 +0000 (20:10 -0700)]
ISACaller: generate FP trap

12 months agotest fcvttgo. with VE=1 too
Jacob Lifshay [Wed, 24 May 2023 02:34:15 +0000 (19:34 -0700)]
test fcvttgo. with VE=1 too

12 months agofcvttg[s][o][.] needs EXTRA_UNINIT_REGS: RT
Jacob Lifshay [Wed, 24 May 2023 02:33:01 +0000 (19:33 -0700)]
fcvttg[s][o][.] needs EXTRA_UNINIT_REGS: RT

12 months agoadd support for adding extra uninit_regs from html comment
Jacob Lifshay [Wed, 24 May 2023 02:24:34 +0000 (19:24 -0700)]
add support for adding extra uninit_regs from html comment

I chose an html comment since it's not part of the proposed pseudocode

like so:
* blah RT,RA
Pseudo-code:

<!-- EXTRA_UNINIT_REGS: RT -->
    if rand() then
        RT <- 42 + (RA)

12 months agoadd getopt for test and help to inorder.py
Luke Kenneth Casson Leighton [Mon, 22 May 2023 11:39:08 +0000 (12:39 +0100)]
add getopt for test and help to inorder.py

12 months agocomment read_file explaining usage contract
Luke Kenneth Casson Leighton [Mon, 22 May 2023 11:27:47 +0000 (12:27 +0100)]
comment read_file explaining usage contract
convert read_file to yield
explain unit tests

12 months agoyet another namespace hack now that @inject is on
Luke Kenneth Casson Leighton [Mon, 22 May 2023 11:11:11 +0000 (12:11 +0100)]
yet another namespace hack now that @inject is on
ISACallerFnHelper_double2single

12 months agomake style of consts.py consistent with standard python
Luke Kenneth Casson Leighton [Mon, 22 May 2023 11:09:31 +0000 (12:09 +0100)]
make style of consts.py consistent with standard python
practices (and those of this project) - remove underscores in front of
imports. the classes named _Const* however are *NOT* so altered because

12 months agomake style of pysvp64dis.py consistent with standard python
Luke Kenneth Casson Leighton [Mon, 22 May 2023 11:07:46 +0000 (12:07 +0100)]
make style of pysvp64dis.py consistent with standard python
practices (and those of this project) - remove underscores in front of
imports

12 months agomake style of power_fields.py consistent with standard python
Luke Kenneth Casson Leighton [Mon, 22 May 2023 11:04:39 +0000 (12:04 +0100)]
make style of power_fields.py consistent with standard python
practices (and those of this project) - remove underscores in front of
imports

12 months agoeurrrgh, hack in a namespace dict now that @inject() is
Luke Kenneth Casson Leighton [Sun, 21 May 2023 20:35:20 +0000 (21:35 +0100)]
eurrrgh, hack in a namespace dict now that @inject() is
done on ISACallerFnHelper_{pyfnwriterpage}

12 months agoadd /pi to LD/ST, temporarily. lose dz/sz replace with zz to compensate
Luke Kenneth Casson Leighton [Sun, 21 May 2023 20:06:39 +0000 (21:06 +0100)]
add /pi to LD/ST, temporarily. lose dz/sz replace with zz to compensate
this is related to bug #1047 and #1083

12 months agobig set of updates to LD/ST in line with new spec changes
Luke Kenneth Casson Leighton [Sun, 21 May 2023 14:23:19 +0000 (15:23 +0100)]
big set of updates to LD/ST in line with new spec changes
https://bugs.libre-soc.org/show_bug.cgi?id=1083
LD/ST-imm and LD/ST-idx are now pretty similar

12 months agohack-add @inject() into pyfnwriter, also take the
Luke Kenneth Casson Leighton [Sun, 21 May 2023 14:02:44 +0000 (15:02 +0100)]
hack-add @inject() into pyfnwriter, also take the
opportunity to stop doing "import ISACallerFnHelper as something"
by doing a hack-substitute on the class name

12 months agoexplicitly update FPSCR from list of return results
Luke Kenneth Casson Leighton [Sun, 21 May 2023 11:17:39 +0000 (12:17 +0100)]
explicitly update FPSCR from list of return results