Jacob Lifshay [Fri, 2 Sep 2022 06:32:02 +0000 (23:32 -0700)]
format code
Jacob Lifshay [Fri, 2 Sep 2022 06:06:56 +0000 (23:06 -0700)]
rename proof_decoder*.py -> test_decoder*.py so it gets run by pytest
Luke Kenneth Casson Leighton [Thu, 1 Sep 2022 22:56:59 +0000 (23:56 +0100)]
ghostmansd found that extswsli is incorrectly declared
as extswsli RA,RS,SH as XS-Form, where a quick check shows that
there *is* no field "SH" in XS-Form. there *is* however a field "sh"
in XS-Form and the pseudocode *correctly* uses it.
that then led to a review of all the other uses of SH and sh,
which also led to spotting that ME and MB are *also* mis-used
(MD-Form and MDS-Form) and need lower-casing in the operand
declaration but are *also* correct in the pseudo-code
`
Luke Kenneth Casson Leighton [Thu, 1 Sep 2022 17:11:28 +0000 (18:11 +0100)]
remove hard-coded list of operations in DecodeOE which
had been bugging the hell out of me for some time
Luke Kenneth Casson Leighton [Thu, 1 Sep 2022 17:10:55 +0000 (18:10 +0100)]
missed rlwm* in conversion to RC_ONLY
Luke Kenneth Casson Leighton [Thu, 1 Sep 2022 16:16:20 +0000 (17:16 +0100)]
update CSV files marking those instructions that are RC-only as such
there were actually some bugs here, entries that had not been added to
DecodeOE such as (all!) fp operations (which have no OE=1 variant)
and the new AV abs/min/max instructions
Luke Kenneth Casson Leighton [Thu, 1 Sep 2022 15:54:39 +0000 (16:54 +0100)]
drat have to use RCOE.RC not RCOE.RC_OE for now otherwise
all CSV entries have to change
Luke Kenneth Casson Leighton [Thu, 1 Sep 2022 15:51:06 +0000 (16:51 +0100)]
add missing case name RC_OE RC_ONLY in power_insn.py
Luke Kenneth Casson Leighton [Thu, 1 Sep 2022 15:49:29 +0000 (16:49 +0100)]
rename RC to RCOE in power_insns.py
Luke Kenneth Casson Leighton [Thu, 1 Sep 2022 15:47:42 +0000 (16:47 +0100)]
rename FLAGS to RCOE
Luke Kenneth Casson Leighton [Thu, 1 Sep 2022 15:42:14 +0000 (16:42 +0100)]
begin rename of RC to FLAGS and add RC_OE/RC_ONLY
Luke Kenneth Casson Leighton [Thu, 1 Sep 2022 15:36:49 +0000 (16:36 +0100)]
rename RC to FLAGS
Luke Kenneth Casson Leighton [Thu, 1 Sep 2022 15:34:15 +0000 (16:34 +0100)]
begin doing RC_OE / RC_ONLY
Dmitry Selyutin [Thu, 1 Sep 2022 14:40:39 +0000 (17:40 +0300)]
svbranch.mdwn: replace target_addr with BD
Dmitry Selyutin [Thu, 1 Sep 2022 14:20:02 +0000 (17:20 +0300)]
pagereader: skip empty dynamic and static operands
Jacob Lifshay [Thu, 1 Sep 2022 08:17:09 +0000 (01:17 -0700)]
move fsins/fcoss to fptrans.mdwn -- they are transcendental not SV instructions
Jacob Lifshay [Thu, 1 Sep 2022 07:48:48 +0000 (00:48 -0700)]
don't install recommended packages in CI
this should save a bunch of time
Jacob Lifshay [Thu, 1 Sep 2022 07:38:38 +0000 (00:38 -0700)]
remove support for unnamed arguments for @_custom_insns functions
unnamed arguments support was broken anyway, it would call with
`fields` last rather than first, due to how partial() works.
Jacob Lifshay [Wed, 31 Aug 2022 04:24:09 +0000 (21:24 -0700)]
silence default LogKind for CI, to avoid pytest running out of memory due to storing stdout
(cherry picked from commit
bec04597888ebf0ca61b852b63cf1efa41ed5f79)
Jacob Lifshay [Tue, 30 Aug 2022 07:51:16 +0000 (00:51 -0700)]
remove dead code, sv.svstep and sv.fcoss are now handled by CUSTOM_INSNS
(cherry picked from commit
cfd0215fc6f716317eb22d04d965028eb794965b)
Jacob Lifshay [Tue, 30 Aug 2022 07:50:28 +0000 (00:50 -0700)]
switch ci tests to verbose
(cherry picked from commit
4053433d420915d9cb777f62fdc10d0b29178dda)
Jacob Lifshay [Tue, 30 Aug 2022 07:32:21 +0000 (00:32 -0700)]
make sv.instr use CUSTOM_INSNS by default for assembling instr
(cherry picked from commit
9be3b61b6a3037fdcf087f692e9145678e571a35)
Jacob Lifshay [Tue, 30 Aug 2022 06:14:31 +0000 (23:14 -0700)]
use a decorator for constructing CUSTOM_INSNS
(cherry picked from commit
63fd4ebc03ea0a7d51a1cf8d215affe45e0f0b33)
Jacob Lifshay [Tue, 30 Aug 2022 06:12:52 +0000 (23:12 -0700)]
fix comment location
(cherry picked from commit
2ba62128ffb197e41a9a7b518a915ebe839d8a71)
Jacob Lifshay [Tue, 30 Aug 2022 05:53:52 +0000 (22:53 -0700)]
format code
(cherry picked from commit
61faa7c3c443a260eaeb58b111ebd464a2031e06)
Jacob Lifshay [Thu, 1 Sep 2022 06:38:43 +0000 (23:38 -0700)]
Revert "silence default LogKind for CI, to avoid pytest running out of memory due to storing stdout"
lkcl rebased my commit, mushing multiple changes into one commit in the process
This reverts commit
aea0a4d637b04e54a9e942883e5e31dd338ca3f2.
Jacob Lifshay [Wed, 31 Aug 2022 04:54:39 +0000 (21:54 -0700)]
test less cases of utf-8 validation, to avoid taking forever
Jacob Lifshay [Wed, 31 Aug 2022 04:24:09 +0000 (21:24 -0700)]
silence default LogKind for CI, to avoid pytest running out of memory due to storing stdout
Luke Kenneth Casson Leighton [Wed, 31 Aug 2022 13:33:56 +0000 (14:33 +0100)]
target_addr in b and bc pseudo-code has no corresponding
field in Section 1.6. actually, target_addr=LI for b and target_addr=BI
for bc
therefore make the pseudo-code actually do exactly that
Dmitry Selyutin [Tue, 30 Aug 2022 18:41:05 +0000 (21:41 +0300)]
bcd.mdwn: fix cbcdtd operands
Dmitry Selyutin [Tue, 30 Aug 2022 18:36:36 +0000 (21:36 +0300)]
bcd.mdwn: fix cdtbcd operands
Dmitry Selyutin [Tue, 30 Aug 2022 18:29:51 +0000 (21:29 +0300)]
fixedlogical.mdwn: fix bpermd operands
Dmitry Selyutin [Tue, 30 Aug 2022 12:27:35 +0000 (15:27 +0300)]
pagereader: validate input
Luke Kenneth Casson Leighton [Tue, 30 Aug 2022 16:14:25 +0000 (17:14 +0100)]
remove space from arguments in popcnt, should not have been there
Luke Kenneth Casson Leighton [Tue, 30 Aug 2022 13:21:14 +0000 (14:21 +0100)]
Revert "format code"
This reverts commit
61faa7c3c443a260eaeb58b111ebd464a2031e06.
Luke Kenneth Casson Leighton [Tue, 30 Aug 2022 13:21:06 +0000 (14:21 +0100)]
Revert "fix comment location"
This reverts commit
2ba62128ffb197e41a9a7b518a915ebe839d8a71.
Luke Kenneth Casson Leighton [Tue, 30 Aug 2022 13:20:49 +0000 (14:20 +0100)]
Revert "use a decorator for constructing CUSTOM_INSNS"
This reverts commit
63fd4ebc03ea0a7d51a1cf8d215affe45e0f0b33.
Luke Kenneth Casson Leighton [Tue, 30 Aug 2022 13:20:38 +0000 (14:20 +0100)]
Revert "make sv.instr use CUSTOM_INSNS by default for assembling instr"
This reverts commit
9be3b61b6a3037fdcf087f692e9145678e571a35.
Luke Kenneth Casson Leighton [Tue, 30 Aug 2022 13:20:29 +0000 (14:20 +0100)]
Revert "switch ci tests to verbose"
This reverts commit
4053433d420915d9cb777f62fdc10d0b29178dda.
Luke Kenneth Casson Leighton [Tue, 30 Aug 2022 13:20:20 +0000 (14:20 +0100)]
Revert "remove dead code, sv.svstep and sv.fcoss are now handled by CUSTOM_INSNS"
This reverts commit
cfd0215fc6f716317eb22d04d965028eb794965b.
Luke Kenneth Casson Leighton [Tue, 30 Aug 2022 13:20:08 +0000 (14:20 +0100)]
Revert "remove fuck-up by programmerjake not reading the specification for svstep"
This reverts commit
1a06aea1fe266a75af713ac9815306696a1ffa4e.
Luke Kenneth Casson Leighton [Tue, 30 Aug 2022 13:10:12 +0000 (14:10 +0100)]
remove fuck-up by programmerjake not reading the specification for svstep
https://libre-soc.org/openpower/sv/svstep/
Luke Kenneth Casson Leighton [Tue, 30 Aug 2022 12:22:50 +0000 (13:22 +0100)]
correct the bitmanip pseudocode to remove spaces from instruction declarations
ternlogi RT,RA,RB,TLI not ternlog RT, RA, RB, TLI
Dmitry Selyutin [Tue, 30 Aug 2022 10:01:26 +0000 (13:01 +0300)]
pagereader.ISA: support iteration
Dmitry Selyutin [Tue, 30 Aug 2022 08:57:39 +0000 (11:57 +0300)]
pysvp64dis: stop interation upon empty suffix
Dmitry Selyutin [Tue, 30 Aug 2022 08:47:44 +0000 (11:47 +0300)]
power_insn: fix Fields methods
Dmitry Selyutin [Tue, 30 Aug 2022 08:47:16 +0000 (11:47 +0300)]
selectable_int: support slicing by iterable
Jacob Lifshay [Tue, 30 Aug 2022 07:51:16 +0000 (00:51 -0700)]
remove dead code, sv.svstep and sv.fcoss are now handled by CUSTOM_INSNS
Jacob Lifshay [Tue, 30 Aug 2022 07:50:28 +0000 (00:50 -0700)]
switch ci tests to verbose
Jacob Lifshay [Tue, 30 Aug 2022 07:32:21 +0000 (00:32 -0700)]
make sv.instr use CUSTOM_INSNS by default for assembling instr
Jacob Lifshay [Tue, 30 Aug 2022 06:14:31 +0000 (23:14 -0700)]
use a decorator for constructing CUSTOM_INSNS
Jacob Lifshay [Tue, 30 Aug 2022 06:12:52 +0000 (23:12 -0700)]
fix comment location
Jacob Lifshay [Tue, 30 Aug 2022 05:53:52 +0000 (22:53 -0700)]
format code
Dmitry Selyutin [Tue, 30 Aug 2022 07:29:23 +0000 (10:29 +0300)]
svp64dis: simplify database lookups
Dmitry Selyutin [Tue, 30 Aug 2022 07:08:52 +0000 (10:08 +0300)]
power_insn: fix representation
Dmitry Selyutin [Tue, 30 Aug 2022 07:07:47 +0000 (10:07 +0300)]
power_insn: remove obsolete comment
Dmitry Selyutin [Tue, 30 Aug 2022 07:06:54 +0000 (10:06 +0300)]
pysvp64dis: remove obsolete imports
Dmitry Selyutin [Mon, 29 Aug 2022 18:16:18 +0000 (21:16 +0300)]
power_insn: rename unit field to function
Dmitry Selyutin [Mon, 29 Aug 2022 16:54:00 +0000 (19:54 +0300)]
power_insn: convert PO field name to lower case
Luke Kenneth Casson Leighton [Mon, 29 Aug 2022 20:37:34 +0000 (21:37 +0100)]
add a "ffmadds." test, not yet actually checking Rc=1
Luke Kenneth Casson Leighton [Mon, 29 Aug 2022 19:44:52 +0000 (20:44 +0100)]
remove insertion of instruction as a comment
Luke Kenneth Casson Leighton [Mon, 29 Aug 2022 19:42:02 +0000 (20:42 +0100)]
gaah what a frickin mess
Luke Kenneth Casson Leighton [Mon, 29 Aug 2022 19:33:14 +0000 (20:33 +0100)]
fix test_issuer.py nosvp64 mul, "mullw." was getting
XER.SO override into handle_comparison when it should not
Dmitry Selyutin [Mon, 29 Aug 2022 04:50:27 +0000 (07:50 +0300)]
sv_binutils: hack
Dmitry Selyutin [Mon, 29 Aug 2022 04:46:05 +0000 (07:46 +0300)]
sv_binutils: remove unused imports
Dmitry Selyutin [Sun, 28 Aug 2022 21:47:22 +0000 (00:47 +0300)]
sv_binutils: generate instruction getters/setters
Dmitry Selyutin [Sun, 28 Aug 2022 17:48:23 +0000 (20:48 +0300)]
sv_binutils: perform massive refactoring
Dmitry Selyutin [Sun, 28 Aug 2022 08:22:03 +0000 (11:22 +0300)]
selectable_int: deprecate obsolete mappings
Dmitry Selyutin [Sun, 28 Aug 2022 11:24:16 +0000 (14:24 +0300)]
sv_binutils: deprecate obsolete fields
Dmitry Selyutin [Sun, 28 Aug 2022 08:21:12 +0000 (11:21 +0300)]
caller.py: switch to new fields
Dmitry Selyutin [Fri, 26 Aug 2022 21:30:09 +0000 (00:30 +0300)]
pysvp64asm: switch to new fields
Dmitry Selyutin [Sun, 28 Aug 2022 10:45:05 +0000 (13:45 +0300)]
power_fields: support traversal
Dmitry Selyutin [Sun, 28 Aug 2022 12:58:35 +0000 (15:58 +0300)]
power_insn: simplify fields
Dmitry Selyutin [Thu, 25 Aug 2022 19:48:17 +0000 (22:48 +0300)]
selectable_int: support FSI integer conversion
Dmitry Selyutin [Thu, 25 Aug 2022 19:30:03 +0000 (22:30 +0300)]
selectable_int: introduce more checks
Dmitry Selyutin [Sat, 20 Aug 2022 16:57:30 +0000 (19:57 +0300)]
selectable_int: fix FSI negate method
Dmitry Selyutin [Fri, 19 Aug 2022 10:48:20 +0000 (13:48 +0300)]
power_insn: switch to new fields
Dmitry Selyutin [Fri, 19 Aug 2022 04:39:11 +0000 (07:39 +0300)]
power_fields: introduce new-style fields classes
Dmitry Selyutin [Fri, 19 Aug 2022 08:01:08 +0000 (11:01 +0300)]
power_fields: move BitRange to selectable_int
Dmitry Selyutin [Fri, 19 Aug 2022 04:53:35 +0000 (07:53 +0300)]
selectable_int: support FSI.__len__ method
Luke Kenneth Casson Leighton [Thu, 18 Aug 2022 20:48:58 +0000 (21:48 +0100)]
selectable_int: fix check on SI constructor
Specifying the number of bits *is* allowed, it should mean "override
the length". More unit tests need running to confirm.
Dmitry Selyutin [Thu, 18 Aug 2022 11:44:38 +0000 (14:44 +0300)]
selectable_int: refactor fields mappings
Dmitry Selyutin [Thu, 18 Aug 2022 09:00:06 +0000 (12:00 +0300)]
power_insn: decouple instruction classes
Dmitry Selyutin [Thu, 18 Aug 2022 08:58:38 +0000 (11:58 +0300)]
selectable_int: canonicalize indentation
Dmitry Selyutin [Wed, 17 Aug 2022 20:55:31 +0000 (23:55 +0300)]
pysvp64dis: provide BC mode sketch
Dmitry Selyutin [Wed, 17 Aug 2022 20:43:04 +0000 (23:43 +0300)]
selectable_int: allow further fields slicing
Dmitry Selyutin [Wed, 17 Aug 2022 20:32:48 +0000 (23:32 +0300)]
selectable_int: support fields boolean check
Dmitry Selyutin [Wed, 17 Aug 2022 20:18:12 +0000 (23:18 +0300)]
selectable_int: allow multi-level fields
Dmitry Selyutin [Wed, 17 Aug 2022 19:35:35 +0000 (22:35 +0300)]
pysvp64asm: clean import directives
Dmitry Selyutin [Wed, 17 Aug 2022 17:03:20 +0000 (20:03 +0300)]
pysvp64dis: refactor inheritance model
Dmitry Selyutin [Wed, 17 Aug 2022 14:18:55 +0000 (17:18 +0300)]
pysvp64dis: introduce disassemble routine
Dmitry Selyutin [Wed, 17 Aug 2022 12:13:06 +0000 (15:13 +0300)]
pysvp64dis: consider instruction name
Dmitry Selyutin [Wed, 17 Aug 2022 11:55:26 +0000 (14:55 +0300)]
pysvp64dis: consult the instruction database
Dmitry Selyutin [Wed, 17 Aug 2022 11:52:52 +0000 (14:52 +0300)]
pysvp64dis: accept SelectableInt as an Instruction
Dmitry Selyutin [Wed, 17 Aug 2022 11:51:30 +0000 (14:51 +0300)]
selectable_int: support int casts
Dmitry Selyutin [Wed, 17 Aug 2022 11:50:52 +0000 (14:50 +0300)]
power_insn: rename Instruction to Record
Dmitry Selyutin [Wed, 17 Aug 2022 11:48:50 +0000 (14:48 +0300)]
power_insn: fix opcode-based lookups
Dmitry Selyutin [Wed, 17 Aug 2022 10:40:32 +0000 (13:40 +0300)]
pysvp64dis: introduce Suffix helper class
Dmitry Selyutin [Wed, 17 Aug 2022 10:29:07 +0000 (13:29 +0300)]
pysvp64dis: introduce global cached insn database
Dmitry Selyutin [Wed, 17 Aug 2022 09:53:33 +0000 (12:53 +0300)]
pysvp64dis: refactor prefix handling