openpower-isa.git
17 months agoredo commit adbe1ffb671b29c6854f951fa65d939895600fe6
Luke Kenneth Casson Leighton [Sun, 11 Jun 2023 12:33:48 +0000 (13:33 +0100)]
redo commit adbe1ffb671b29c6854f951fa65d939895600fe6
Author: Luke Kenneth Casson Leighton <lkcl@lkcl.net>
Date:   Sat Jun 10 23:42:32 2023 +0100

    lambda is a singleton (hashable) therefore can be safely set as the
    default option to a function parameter
    https://bugs.libre-soc.org/show_bug.cgi?id=1094#c89

17 months agotemporary hack-revert, the original is now in branch "paths"
Luke Kenneth Casson Leighton [Sun, 11 Jun 2023 12:27:23 +0000 (13:27 +0100)]
temporary hack-revert, the original is now in branch "paths"

Revert "insndb/core: switch Fields to Dict class"

This reverts commit 963fa4fcadf76740083d9fce3ffe986a81f247fe.

17 months agotemporary hack-revert, the original is now in branch "paths"
Luke Kenneth Casson Leighton [Sun, 11 Jun 2023 12:26:55 +0000 (13:26 +0100)]
temporary hack-revert, the original is now in branch "paths"

Revert "lambda is a singleton (hashable) therefore can be safely set as the"

This reverts commit adbe1ffb671b29c6854f951fa65d939895600fe6.

17 months agotemporary hack-revert, the original is now in branch "paths"
Luke Kenneth Casson Leighton [Sun, 11 Jun 2023 12:26:20 +0000 (13:26 +0100)]
temporary hack-revert, the original is now in branch "paths"

Revert "reduce down one more line in walkmethod.__get__"

This reverts commit f6efd96b89fe55292dd5470ec35dd5263e4d3803.

17 months agotemporary hack-revert, the original is now in branch "paths"
Luke Kenneth Casson Leighton [Sun, 11 Jun 2023 12:22:57 +0000 (13:22 +0100)]
temporary hack-revert, the original is now in branch "paths"

Revert "insndb/core: fix operands iteration"

This reverts commit 84019f9487c696d066087cf7de7d049f883c2bd3.

17 months agoinsndb/core: fix operands iteration
Dmitry Selyutin [Sun, 11 Jun 2023 08:13:11 +0000 (11:13 +0300)]
insndb/core: fix operands iteration

17 months agoreduce down one more line in walkmethod.__get__
Luke Kenneth Casson Leighton [Sat, 10 Jun 2023 23:08:19 +0000 (00:08 +0100)]
reduce down one more line in walkmethod.__get__

17 months agoreduce number of lines slightly by using yield from filter(match, ...)
Luke Kenneth Casson Leighton [Sat, 10 Jun 2023 22:50:03 +0000 (23:50 +0100)]
reduce number of lines slightly by using yield from filter(match, ...)

17 months agolambda is a singleton (hashable) therefore can be safely set as the
Luke Kenneth Casson Leighton [Sat, 10 Jun 2023 22:42:32 +0000 (23:42 +0100)]
lambda is a singleton (hashable) therefore can be safely set as the
default option to a function parameter
https://bugs.libre-soc.org/show_bug.cgi?id=1094#c89

17 months agoinsndb/core: switch Fields to Dict class
Dmitry Selyutin [Sat, 10 Jun 2023 20:08:15 +0000 (23:08 +0300)]
insndb/core: switch Fields to Dict class

17 months agoinsndb/core: make Dict almost immutable
Dmitry Selyutin [Sat, 10 Jun 2023 19:50:54 +0000 (22:50 +0300)]
insndb/core: make Dict almost immutable

17 months agoinsndb/core: switch Fields to Dict class
Dmitry Selyutin [Sat, 10 Jun 2023 19:37:30 +0000 (22:37 +0300)]
insndb/core: switch Fields to Dict class

17 months agoinsndb/core: introduce Dict class
Dmitry Selyutin [Sat, 10 Jun 2023 19:32:52 +0000 (22:32 +0300)]
insndb/core: introduce Dict class

17 months agoinsndb/db: beautify tree
Dmitry Selyutin [Sat, 10 Jun 2023 19:24:56 +0000 (22:24 +0300)]
insndb/db: beautify tree

17 months agoinsndb: make walk yield paths
Dmitry Selyutin [Sat, 10 Jun 2023 19:00:56 +0000 (22:00 +0300)]
insndb: make walk yield paths

17 months agoinsndb/db: support tree command sketch
Dmitry Selyutin [Sat, 10 Jun 2023 18:35:50 +0000 (21:35 +0300)]
insndb/db: support tree command sketch

17 months agoinsndb/core: fix Record ppc field
Dmitry Selyutin [Sat, 10 Jun 2023 18:25:29 +0000 (21:25 +0300)]
insndb/core: fix Record ppc field

17 months agoinsndb/core: switch PCode to Tuple
Dmitry Selyutin [Sat, 10 Jun 2023 18:20:33 +0000 (21:20 +0300)]
insndb/core: switch PCode to Tuple

17 months agoinsndb/core: switch PPCRecord.Flags to Tuple
Dmitry Selyutin [Sat, 10 Jun 2023 18:18:53 +0000 (21:18 +0300)]
insndb/core: switch PPCRecord.Flags to Tuple

17 months agoinsndb/core: switch PPCMultiRecord to Tuple
Dmitry Selyutin [Sat, 10 Jun 2023 18:16:42 +0000 (21:16 +0300)]
insndb/core: switch PPCMultiRecord to Tuple

17 months agoinsndb/core: introduce Tuple type
Dmitry Selyutin [Sat, 10 Jun 2023 18:08:49 +0000 (21:08 +0300)]
insndb/core: introduce Tuple type

17 months agoinsndb/core: replace walkability check
Dmitry Selyutin [Sat, 10 Jun 2023 17:01:52 +0000 (20:01 +0300)]
insndb/core: replace walkability check

17 months agoinsndb/core: rename Section.path to Section.csv
Dmitry Selyutin [Sat, 10 Jun 2023 17:00:09 +0000 (20:00 +0300)]
insndb/core: rename Section.path to Section.csv

17 months agoinsndb/core: deprecate custom classes
Dmitry Selyutin [Sat, 10 Jun 2023 16:51:56 +0000 (19:51 +0300)]
insndb/core: deprecate custom classes

17 months agoinsndb/core: deprecate Extra class
Dmitry Selyutin [Sat, 10 Jun 2023 16:48:06 +0000 (19:48 +0300)]
insndb/core: deprecate Extra class

17 months agoinsndb/db: simplify command checks
Dmitry Selyutin [Sat, 10 Jun 2023 16:40:39 +0000 (19:40 +0300)]
insndb/db: simplify command checks

17 months agoinsndb/db: switch to holy-cow visitors
Dmitry Selyutin [Sat, 10 Jun 2023 16:00:32 +0000 (19:00 +0300)]
insndb/db: switch to holy-cow visitors

17 months agoinsndb: holy-cow visitors
Dmitry Selyutin [Sat, 10 Jun 2023 15:40:47 +0000 (18:40 +0300)]
insndb: holy-cow visitors

17 months agoinsndb/core: support class walking
Dmitry Selyutin [Fri, 9 Jun 2023 19:20:38 +0000 (22:20 +0300)]
insndb/core: support class walking

17 months agoinsndb: rename subnodes into walk
Dmitry Selyutin [Fri, 9 Jun 2023 18:28:53 +0000 (21:28 +0300)]
insndb: rename subnodes into walk

17 months agoinsndb/core: introduce Records type
Dmitry Selyutin [Fri, 9 Jun 2023 18:27:57 +0000 (21:27 +0300)]
insndb/core: introduce Records type

17 months agoinsndb/core: switch dataclasses to Dataclass type
Dmitry Selyutin [Fri, 9 Jun 2023 15:50:23 +0000 (18:50 +0300)]
insndb/core: switch dataclasses to Dataclass type

17 months agoinsndb/core: introduce Path type
Dmitry Selyutin [Fri, 9 Jun 2023 15:17:33 +0000 (18:17 +0300)]
insndb/core: introduce Path type

17 months agoinsndb/core: inroduce String type
Dmitry Selyutin [Thu, 8 Jun 2023 14:27:40 +0000 (17:27 +0300)]
insndb/core: inroduce String type

17 months agoinsndb: decouple visitors and walking
Dmitry Selyutin [Thu, 8 Jun 2023 13:29:18 +0000 (16:29 +0300)]
insndb: decouple visitors and walking

17 months agoinsndb: decouple visitors and walking
Dmitry Selyutin [Wed, 7 Jun 2023 19:57:16 +0000 (22:57 +0300)]
insndb: decouple visitors and walking

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

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

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

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

17 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

17 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

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

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

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

17 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

17 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

17 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

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

17 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

17 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

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

17 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

17 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

17 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

17 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

17 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

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

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

17 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

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

17 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

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

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

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

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

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

17 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

17 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

17 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

17 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

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

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

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

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

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

17 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

17 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

17 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

17 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

17 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

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

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

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

17 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

17 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

17 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

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

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

17 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

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

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

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

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

17 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

17 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

17 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

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

17 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

17 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