Jacob Lifshay [Sat, 22 Jul 2023 00:31:04 +0000 (17:31 -0700)]
add cntlzdm/cnttzdm
Jacob Lifshay [Fri, 21 Jul 2023 23:55:41 +0000 (16:55 -0700)]
format code
Konstantinos Margaritis [Fri, 21 Jul 2023 14:05:54 +0000 (14:05 +0000)]
Moved maddsubrs/maddrs/msubrs instructions to separate files
As per Jacob's suggestion, simplified maddsubrs by removing masks
and fixing overflow problems.
Jacob Lifshay [Thu, 20 Jul 2023 22:42:25 +0000 (15:42 -0700)]
add much more exhaustive maddrs unit tests
Jacob Lifshay [Thu, 20 Jul 2023 22:19:19 +0000 (15:19 -0700)]
add much more exhaustive maddsubrs unit tests
Jacob Lifshay [Thu, 20 Jul 2023 22:18:18 +0000 (15:18 -0700)]
format code
Konstantinos Margaritis [Thu, 20 Jul 2023 15:51:39 +0000 (15:51 +0000)]
Fix failing cases, all tests pass now
Jacob Lifshay [Thu, 20 Jul 2023 01:00:58 +0000 (18:00 -0700)]
add byte reverse instructions from PowerISA v3.1B
Jacob Lifshay [Thu, 20 Jul 2023 00:59:32 +0000 (17:59 -0700)]
support official instructions that need .long format
Konstantinos Margaritis [Wed, 19 Jul 2023 17:07:43 +0000 (17:07 +0000)]
revert to correct value
Konstantinos Margaritis [Wed, 19 Jul 2023 16:49:51 +0000 (16:49 +0000)]
Unify XLEN =64 special case in the new code
Konstantinos Margaritis [Wed, 19 Jul 2023 13:41:31 +0000 (13:41 +0000)]
Fix XLEN != 64 cases where maddsubrs fails
Jacob Lifshay [Wed, 19 Jul 2023 03:01:30 +0000 (20:01 -0700)]
add fminmax tests with corresponding pseudocode fixes
Jacob Lifshay [Mon, 17 Jul 2023 22:49:17 +0000 (15:49 -0700)]
update to use new fminmax instruction
Luke Kenneth Casson Leighton [Sat, 24 Jun 2023 10:03:19 +0000 (11:03 +0100)]
leeetle bit excessive on the log of SPRs...
Dmitry Selyutin [Fri, 23 Jun 2023 08:36:19 +0000 (11:36 +0300)]
insndb/db: update traversal algorithm
Dmitry Selyutin [Thu, 22 Jun 2023 20:22:38 +0000 (23:22 +0300)]
insndb/db: introduce section command
Dmitry Selyutin [Thu, 22 Jun 2023 19:24:40 +0000 (22:24 +0300)]
insndb/core: hide section priority type
Dmitry Selyutin [Thu, 22 Jun 2023 19:24:07 +0000 (22:24 +0300)]
insndb/core: hide section opcode type
Dmitry Selyutin [Thu, 22 Jun 2023 19:23:00 +0000 (22:23 +0300)]
insndb/core: hide section bitsel type
Dmitry Selyutin [Thu, 22 Jun 2023 19:16:51 +0000 (22:16 +0300)]
insndb/core: introduce section path type
Dmitry Selyutin [Thu, 22 Jun 2023 19:10:56 +0000 (22:10 +0300)]
insndb/db: fix SVP64 instruction check
Dmitry Selyutin [Thu, 22 Jun 2023 19:09:07 +0000 (22:09 +0300)]
insndb/db: introduce etype command
Dmitry Selyutin [Thu, 22 Jun 2023 19:07:59 +0000 (22:07 +0300)]
power_enum: modify SVPtype stringification
Dmitry Selyutin [Thu, 22 Jun 2023 18:57:48 +0000 (21:57 +0300)]
insndb/db: introduce ptype command
Jacob Lifshay [Fri, 23 Jun 2023 03:10:45 +0000 (20:10 -0700)]
rename fmv[ft]g*/fcvt[ft]g* to m[tf]fpr*/c[tf]fpr*
Jacob Lifshay [Fri, 23 Jun 2023 02:58:04 +0000 (19:58 -0700)]
use the CSV "CR out" column to compute which mode to use for Rc=1
this works much better than trying to bodge it by checking if the
instruction name meets some pattern
Dmitry Selyutin [Thu, 22 Jun 2023 21:26:30 +0000 (00:26 +0300)]
.gitlab-ci.yml: introduce mdis dependency
Dmitry Selyutin [Thu, 22 Jun 2023 18:43:03 +0000 (21:43 +0300)]
insndb/db: introduce selectors command
Dmitry Selyutin [Thu, 22 Jun 2023 18:31:59 +0000 (21:31 +0300)]
insndb/db: refactor extras command
Dmitry Selyutin [Thu, 22 Jun 2023 15:32:18 +0000 (18:32 +0300)]
insndb/core: introduce basic walker
Dmitry Selyutin [Thu, 22 Jun 2023 15:23:28 +0000 (18:23 +0300)]
insndb/core: switch to mdis
Jacob Lifshay [Sat, 17 Jun 2023 00:52:07 +0000 (17:52 -0700)]
remove Rc=1 from fmvfg[s]
Jacob Lifshay [Sat, 17 Jun 2023 00:40:01 +0000 (17:40 -0700)]
sv_analysis: raise error instead of outputting TODO
Jacob Lifshay [Fri, 16 Jun 2023 03:29:29 +0000 (20:29 -0700)]
add sv.fmv/sv.fcvt tests
Jacob Lifshay [Fri, 16 Jun 2023 01:41:18 +0000 (18:41 -0700)]
add fmvfg[s] and fmvtg[s][.] tests
Jacob Lifshay [Wed, 14 Jun 2023 05:56:10 +0000 (22:56 -0700)]
deepcopy is really slow and unnecessary here
Jacob Lifshay [Wed, 14 Jun 2023 05:55:49 +0000 (22:55 -0700)]
speed up StateSPRs.__init__
Jacob Lifshay [Wed, 14 Jun 2023 05:55:20 +0000 (22:55 -0700)]
cache FPSCR computation since it's slow
Jacob Lifshay [Wed, 14 Jun 2023 05:54:28 +0000 (22:54 -0700)]
deepcopy is really slow and actually unnecessary here
Jacob Lifshay [Wed, 14 Jun 2023 05:53:52 +0000 (22:53 -0700)]
cache get_csv
Jacob Lifshay [Wed, 14 Jun 2023 05:53:09 +0000 (22:53 -0700)]
comment out GC collection since it's really slow and shouldn't be needed
Jacob Lifshay [Wed, 14 Jun 2023 05:51:14 +0000 (22:51 -0700)]
cache SVP64Instruction.Prefix instance since it's slow to construct
Jacob Lifshay [Tue, 13 Jun 2023 02:26:15 +0000 (19:26 -0700)]
remove fcvttgs since it's redundant
Jacob Lifshay [Sat, 10 Jun 2023 03:14:44 +0000 (20:14 -0700)]
silence log by default just in fmv/fcvt and utf-8 tests
this is overridable by setting SILENCELOG to any value, which is then used
Jacob Lifshay [Sat, 10 Jun 2023 02:02:50 +0000 (19:02 -0700)]
Revert "disable fmv / fcvt unit tests as there are such a vast number"
new pytest-output-to-files plugin mitigates memory use
This reverts commit
329985466b05b821c1f02277224f445051c77bb6.
Jacob Lifshay [Sat, 10 Jun 2023 02:02:26 +0000 (19:02 -0700)]
Revert "disable fmv-fcvt tests entirely"
new pytest-output-to-files plugin mitigates memory use
This reverts commit
beadcce36dc23ffc8d599b1ac4601da9500476a4.
Jacob Lifshay [Sat, 10 Jun 2023 02:00:37 +0000 (19:00 -0700)]
Revert "far too much memory (58 GB) being used by these unit tests,"
new pytest-output-to-files plugin mitigates memory use
This reverts commit
e31e5486822023bf99701e410d7b5e55df355048.
Jacob Lifshay [Sat, 10 Jun 2023 01:29:48 +0000 (18:29 -0700)]
use pytest-output-to-files plugin with pytest==7.3.1 and pytest-xdist==3.3.1
Luke Kenneth Casson Leighton [Sun, 11 Jun 2023 12:34:40 +0000 (13:34 +0100)]
commit
f6efd96b89fe55292dd5470ec35dd5263e4d3803
Author: Luke Kenneth Casson Leighton <lkcl@lkcl.net>
Date: Sun Jun 11 00:08:19 2023 +0100
reduce down one more line in walkmethod.__get__
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
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.
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.
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.
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.
Dmitry Selyutin [Sun, 11 Jun 2023 08:13:11 +0000 (11:13 +0300)]
insndb/core: fix operands iteration
Luke Kenneth Casson Leighton [Sat, 10 Jun 2023 23:08:19 +0000 (00:08 +0100)]
reduce down one more line in walkmethod.__get__
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, ...)
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
Dmitry Selyutin [Sat, 10 Jun 2023 20:08:15 +0000 (23:08 +0300)]
insndb/core: switch Fields to Dict class
Dmitry Selyutin [Sat, 10 Jun 2023 19:50:54 +0000 (22:50 +0300)]
insndb/core: make Dict almost immutable
Dmitry Selyutin [Sat, 10 Jun 2023 19:37:30 +0000 (22:37 +0300)]
insndb/core: switch Fields to Dict class
Dmitry Selyutin [Sat, 10 Jun 2023 19:32:52 +0000 (22:32 +0300)]
insndb/core: introduce Dict class
Dmitry Selyutin [Sat, 10 Jun 2023 19:24:56 +0000 (22:24 +0300)]
insndb/db: beautify tree
Dmitry Selyutin [Sat, 10 Jun 2023 19:00:56 +0000 (22:00 +0300)]
insndb: make walk yield paths
Dmitry Selyutin [Sat, 10 Jun 2023 18:35:50 +0000 (21:35 +0300)]
insndb/db: support tree command sketch
Dmitry Selyutin [Sat, 10 Jun 2023 18:25:29 +0000 (21:25 +0300)]
insndb/core: fix Record ppc field
Dmitry Selyutin [Sat, 10 Jun 2023 18:20:33 +0000 (21:20 +0300)]
insndb/core: switch PCode to Tuple
Dmitry Selyutin [Sat, 10 Jun 2023 18:18:53 +0000 (21:18 +0300)]
insndb/core: switch PPCRecord.Flags to Tuple
Dmitry Selyutin [Sat, 10 Jun 2023 18:16:42 +0000 (21:16 +0300)]
insndb/core: switch PPCMultiRecord to Tuple
Dmitry Selyutin [Sat, 10 Jun 2023 18:08:49 +0000 (21:08 +0300)]
insndb/core: introduce Tuple type
Dmitry Selyutin [Sat, 10 Jun 2023 17:01:52 +0000 (20:01 +0300)]
insndb/core: replace walkability check
Dmitry Selyutin [Sat, 10 Jun 2023 17:00:09 +0000 (20:00 +0300)]
insndb/core: rename Section.path to Section.csv
Dmitry Selyutin [Sat, 10 Jun 2023 16:51:56 +0000 (19:51 +0300)]
insndb/core: deprecate custom classes
Dmitry Selyutin [Sat, 10 Jun 2023 16:48:06 +0000 (19:48 +0300)]
insndb/core: deprecate Extra class
Dmitry Selyutin [Sat, 10 Jun 2023 16:40:39 +0000 (19:40 +0300)]
insndb/db: simplify command checks
Dmitry Selyutin [Sat, 10 Jun 2023 16:00:32 +0000 (19:00 +0300)]
insndb/db: switch to holy-cow visitors
Dmitry Selyutin [Sat, 10 Jun 2023 15:40:47 +0000 (18:40 +0300)]
insndb: holy-cow visitors
Dmitry Selyutin [Fri, 9 Jun 2023 19:20:38 +0000 (22:20 +0300)]
insndb/core: support class walking
Dmitry Selyutin [Fri, 9 Jun 2023 18:28:53 +0000 (21:28 +0300)]
insndb: rename subnodes into walk
Dmitry Selyutin [Fri, 9 Jun 2023 18:27:57 +0000 (21:27 +0300)]
insndb/core: introduce Records type
Dmitry Selyutin [Fri, 9 Jun 2023 15:50:23 +0000 (18:50 +0300)]
insndb/core: switch dataclasses to Dataclass type
Dmitry Selyutin [Fri, 9 Jun 2023 15:17:33 +0000 (18:17 +0300)]
insndb/core: introduce Path type
Dmitry Selyutin [Thu, 8 Jun 2023 14:27:40 +0000 (17:27 +0300)]
insndb/core: inroduce String type
Dmitry Selyutin [Thu, 8 Jun 2023 13:29:18 +0000 (16:29 +0300)]
insndb: decouple visitors and walking
Dmitry Selyutin [Wed, 7 Jun 2023 19:57:16 +0000 (22:57 +0300)]
insndb: decouple visitors and walking
Dmitry Selyutin [Wed, 7 Jun 2023 13:16:57 +0000 (16:16 +0300)]
insndb: refactor visitors (again)
Luke Kenneth Casson Leighton [Sat, 3 Jun 2023 23:35:53 +0000 (00:35 +0100)]
comment out debug log
Luke Kenneth Casson Leighton [Sat, 3 Jun 2023 23:34:00 +0000 (00:34 +0100)]
remove print log
Dmitry Selyutin [Wed, 7 Jun 2023 08:58:36 +0000 (11:58 +0300)]
insndb: refactor visitors
Dmitry Selyutin [Wed, 7 Jun 2023 08:52:04 +0000 (11:52 +0300)]
insn/core: rename extra-related classes
Dmitry Selyutin [Mon, 5 Jun 2023 09:11:39 +0000 (12:11 +0300)]
power_enums: distinguish all reg types
Dmitry Selyutin [Sun, 4 Jun 2023 11:59:06 +0000 (14:59 +0300)]
insndb/db: refactor visitors
Dmitry Selyutin [Sun, 4 Jun 2023 10:27:31 +0000 (13:27 +0300)]
insn/core: introduce visitable extra
Dmitry Selyutin [Sun, 4 Jun 2023 10:00:25 +0000 (13:00 +0300)]
insndb/db: support operand spans
Dmitry Selyutin [Sun, 4 Jun 2023 09:29:46 +0000 (12:29 +0300)]
insn/db: restrict extras command with SVP64 instructions
Dmitry Selyutin [Sun, 4 Jun 2023 09:21:57 +0000 (12:21 +0300)]
power_enums: simplify sel type string conversion
Dmitry Selyutin [Sun, 4 Jun 2023 09:20:26 +0000 (12:20 +0300)]
power_enums: simplify extra idx string conversion
Dmitry Selyutin [Sun, 4 Jun 2023 09:19:36 +0000 (12:19 +0300)]
power_enums: align reg pairs
Dmitry Selyutin [Sun, 4 Jun 2023 09:18:59 +0000 (12:18 +0300)]
power_enums: simplify reg string conversion