Luke Kenneth Casson Leighton [Sun, 26 Jun 2022 08:01:40 +0000 (09:01 +0100)]
svp64.py: fix svshape and setvl plus couple of oddities
* svstep RT,SVi,vf
but the Form is 8 fields
* setvl RT,RA,SVi,vf,vs,ms
the order of those is *different* from the "natural" order in the
SVL-Form
Luke Kenneth Casson Leighton [Sun, 26 Jun 2022 07:39:23 +0000 (08:39 +0100)]
svp64.py: add -FORM headers to more functions
Luke Kenneth Casson Leighton [Sun, 26 Jun 2022 07:33:42 +0000 (08:33 +0100)]
svp64.py: fix bmask entry
Dmitry Selyutin [Sat, 25 Jun 2022 20:51:29 +0000 (23:51 +0300)]
svp64.py: group 32-bit instructions into the table
The pysvp64asm code became really dirty with the addition of new
instructions, it's almost impossible to keep track of it. Some
instructions were not converted at all, due to incorrect check (all but
setvl/svshape). Some had wrong operand names (fsins, fcoss used RT, RA
operands, and this does not follow the spec). Some instructions had no
SV support, despite the fact they should (fsins).
This all became barely maintainable. From now on, instructions are
grouped into a special table. Ideally we should generate this table
from fields.txt, but there's no time for writing yet another parser.
Dmitry Selyutin [Sat, 25 Jun 2022 15:57:53 +0000 (18:57 +0300)]
svp64.py: align indentation
Luke Kenneth Casson Leighton [Sun, 26 Jun 2022 11:56:59 +0000 (12:56 +0100)]
add test case for kaivb to jump to 0x2700
Luke Kenneth Casson Leighton [Sun, 26 Jun 2022 11:39:31 +0000 (12:39 +0100)]
add TrapTestCase for KAIVB
https://bugs.libre-soc.org/show_bug.cgi?id=859
Luke Kenneth Casson Leighton [Sun, 26 Jun 2022 11:15:14 +0000 (12:15 +0100)]
hmm do expected state in rfid trap case
Luke Kenneth Casson Leighton [Sat, 25 Jun 2022 20:08:32 +0000 (21:08 +0100)]
correct input example for SOF case_3_bmask
Andrey Miroshnikov [Sat, 25 Jun 2022 19:37:02 +0000 (19:37 +0000)]
Added sif/sof
Luke Kenneth Casson Leighton [Sat, 25 Jun 2022 19:25:43 +0000 (20:25 +0100)]
corrections to test cases, it is not quite
as "obvious" as it looks due to the masking
Luke Kenneth Casson Leighton [Sat, 25 Jun 2022 19:07:13 +0000 (20:07 +0100)]
update comments in av_cases.py test_1_bmask
Luke Kenneth Casson Leighton [Sat, 25 Jun 2022 19:01:12 +0000 (20:01 +0100)]
correct undefined in av.mdwn bmask
Andrey Miroshnikov [Fri, 24 Jun 2022 22:14:38 +0000 (22:14 +0000)]
Added second bmask test case, designed to be multi-test
Luke Kenneth Casson Leighton [Fri, 24 Jun 2022 21:20:47 +0000 (22:20 +0100)]
add svindex XO field 101001
Luke Kenneth Casson Leighton [Fri, 24 Jun 2022 20:58:26 +0000 (21:58 +0100)]
rename mask to rmm in svindex
Luke Kenneth Casson Leighton [Fri, 24 Jun 2022 20:57:35 +0000 (21:57 +0100)]
rename mask field to rmm to avoid using "mask" in binutils
https://libre-soc.org/irclog/%23libre-soc.2022-06-24.log.html#t2022-06-24T20:27:25
Dmitry Selyutin [Fri, 24 Jun 2022 18:49:23 +0000 (21:49 +0300)]
svp64.py: support svindex instruction
Luke Kenneth Casson Leighton [Fri, 24 Jun 2022 18:29:43 +0000 (19:29 +0100)]
add SVd to fields.txt (SVI-Form)
missed out description
Luke Kenneth Casson Leighton [Fri, 24 Jun 2022 14:51:30 +0000 (15:51 +0100)]
add first bmask unit test
Luke Kenneth Casson Leighton [Fri, 24 Jun 2022 14:51:02 +0000 (15:51 +0100)]
invert mode-bits in bmask bm field
Luke Kenneth Casson Leighton [Fri, 24 Jun 2022 14:50:40 +0000 (15:50 +0100)]
bmask does not have Rc=1 variant
Luke Kenneth Casson Leighton [Fri, 24 Jun 2022 14:17:27 +0000 (15:17 +0100)]
sigh, bm not mode argument to bmask
plus the offsets (sub-fields) of bm were completely wrong
Luke Kenneth Casson Leighton [Fri, 24 Jun 2022 14:12:33 +0000 (15:12 +0100)]
correct bmask conversion to binary (wrong instruction used
as a beginning template)
Luke Kenneth Casson Leighton [Fri, 24 Jun 2022 14:11:42 +0000 (15:11 +0100)]
add bmask to instruction list
Luke Kenneth Casson Leighton [Fri, 24 Jun 2022 11:05:26 +0000 (12:05 +0100)]
add to fields.txt for the svstep instruction
which misses out some fields
Luke Kenneth Casson Leighton [Fri, 24 Jun 2022 10:54:25 +0000 (11:54 +0100)]
add svindex SVI-Form to fields.txt
Jacob Lifshay [Fri, 24 Jun 2022 05:01:36 +0000 (22:01 -0700)]
add missed generated csv changes
Luke Kenneth Casson Leighton [Thu, 23 Jun 2022 16:13:47 +0000 (17:13 +0100)]
add BM2-Form to power_enums.py
Luke Kenneth Casson Leighton [Thu, 23 Jun 2022 16:11:59 +0000 (17:11 +0100)]
else must be on separate line in pseudocode av.mdwn
Luke Kenneth Casson Leighton [Thu, 23 Jun 2022 16:10:10 +0000 (17:10 +0100)]
missing "Special Registers Altered" on av.mdwn
Andrey Miroshnikov [Thu, 23 Jun 2022 14:55:01 +0000 (14:55 +0000)]
Added bmask, pywriter failing
Luke Kenneth Casson Leighton [Thu, 23 Jun 2022 09:53:40 +0000 (10:53 +0100)]
add SPDX-License-Headers to CSV files
(now that comments are possible)
mention provenance from microwatt decode1.vhdl
Luke Kenneth Casson Leighton [Thu, 23 Jun 2022 09:45:00 +0000 (10:45 +0100)]
add explanatory comments on minor_22.csv
Luke Kenneth Casson Leighton [Thu, 23 Jun 2022 09:39:21 +0000 (10:39 +0100)]
add comment-stripping to get_csv()
there have been a lot of situations where comments are needed
including review of new instructions
Luke Kenneth Casson Leighton [Wed, 22 Jun 2022 14:53:33 +0000 (15:53 +0100)]
add BM2 Form for (DRAFT) bmask instruction
Andrey Miroshnikov [Wed, 22 Jun 2022 16:37:01 +0000 (16:37 +0000)]
Added pc based on len(lst)
Luke Kenneth Casson Leighton [Wed, 22 Jun 2022 14:45:46 +0000 (15:45 +0100)]
add another cprop test, experimenting
Luke Kenneth Casson Leighton [Wed, 22 Jun 2022 14:44:06 +0000 (15:44 +0100)]
add 2nd cprop test to see what happens
Luke Kenneth Casson Leighton [Wed, 22 Jun 2022 14:41:43 +0000 (15:41 +0100)]
expected number of instructions is 1 (therefore PC after running is 4 not 8)
Andrey Miroshnikov [Wed, 22 Jun 2022 14:38:10 +0000 (15:38 +0100)]
Added cprop test case, fails atm (not enabled by default)
Andrey Miroshnikov [Wed, 22 Jun 2022 14:05:48 +0000 (15:05 +0100)]
Modified cprop pseudo-code due to parser bug
Luke Kenneth Casson Leighton [Wed, 22 Jun 2022 14:04:04 +0000 (15:04 +0100)]
argh horrible hack that does not work yet for fixing precedence
Luke Kenneth Casson Leighton [Wed, 22 Jun 2022 13:26:55 +0000 (14:26 +0100)]
add X-Form to svp64.py av opcode set
(to be able to understand what the heck is going on)
Andrey Miroshnikov [Wed, 22 Jun 2022 13:07:06 +0000 (14:07 +0100)]
Added cprop to caller, enums, svp64
Andrey Miroshnikov [Wed, 22 Jun 2022 12:44:35 +0000 (13:44 +0100)]
Added CPROP to powerenums
Andrey Miroshnikov [Wed, 22 Jun 2022 12:06:52 +0000 (13:06 +0100)]
Added entries for cprop, not sure if correct
Luke Kenneth Casson Leighton [Mon, 20 Jun 2022 17:42:26 +0000 (18:42 +0100)]
add absolute-signed-diff next to absolute-unsigned-diff
Luke Kenneth Casson Leighton [Mon, 20 Jun 2022 13:47:14 +0000 (14:47 +0100)]
rename absadd[us] to absdac[ud]
matches descriptions
# DRAFT Absolute Accumulate Signed Difference
Jacob Lifshay [Sun, 19 Jun 2022 21:47:48 +0000 (14:47 -0700)]
fix minu[.] to be unsigned
Jacob Lifshay [Sun, 19 Jun 2022 21:42:10 +0000 (14:42 -0700)]
update after adding av instructions
Luke Kenneth Casson Leighton [Sun, 19 Jun 2022 19:40:12 +0000 (20:40 +0100)]
add absadds - signed accumulating add. DRAFT
https://bugs.libre-soc.org/show_bug.cgi?id=863
Luke Kenneth Casson Leighton [Sun, 19 Jun 2022 19:34:30 +0000 (20:34 +0100)]
add absadd (unsigned) DRAFT
https://bugs.libre-soc.org/show_bug.cgi?id=863
Luke Kenneth Casson Leighton [Sun, 19 Jun 2022 19:05:54 +0000 (20:05 +0100)]
add absolute-difference DRAFT
https://bugs.libre-soc.org/show_bug.cgi?id=863
Luke Kenneth Casson Leighton [Sun, 19 Jun 2022 18:37:47 +0000 (19:37 +0100)]
add average-add DRAFT pseudocode and CSV
https://bugs.libre-soc.org/show_bug.cgi?id=863
Luke Kenneth Casson Leighton [Sun, 19 Jun 2022 18:14:58 +0000 (19:14 +0100)]
add the rest of min/max DRAFT av opcodes
https://bugs.libre-soc.org/show_bug.cgi?id=863
Luke Kenneth Casson Leighton [Sun, 19 Jun 2022 16:10:21 +0000 (17:10 +0100)]
add maxs DRAFT instruction
https://libre-soc.org/openpower/sv/av_opcodes/
Luke Kenneth Casson Leighton [Sun, 19 Jun 2022 15:08:03 +0000 (16:08 +0100)]
extend minor_22.csv bitsel pattern to cover bits 21..31
Dmitry Selyutin [Fri, 17 Jun 2022 13:51:18 +0000 (13:51 +0000)]
sv_binutils: drop SVP64_NAME_MAX
Dmitry Selyutin [Fri, 17 Jun 2022 13:50:00 +0000 (13:50 +0000)]
sv_binutils: minor naming conventions fixup
Dmitry Selyutin [Fri, 17 Jun 2022 13:47:38 +0000 (13:47 +0000)]
sv_binutils: rename Entry to Record
Dmitry Selyutin [Fri, 17 Jun 2022 13:41:32 +0000 (13:41 +0000)]
sv_binutils: rename Record to Desc
Luke Kenneth Casson Leighton [Fri, 17 Jun 2022 13:20:44 +0000 (14:20 +0100)]
whoops on an OR rather than an AND
Luke Kenneth Casson Leighton [Fri, 17 Jun 2022 13:14:28 +0000 (14:14 +0100)]
add "redirection" of MTSPR/MFSPR into TRAP pipeline for KAIVB
in PowerDecoderSubset
https://bugs.libre-soc.org/show_bug.cgi?id=859
this reduces a lot of messing about by actually storing KAIVB
directly in the TRAP pipeline which is the only place it is used
Luke Kenneth Casson Leighton [Fri, 17 Jun 2022 12:54:52 +0000 (13:54 +0100)]
add KAIVB SPR 850
https://bugs.libre-soc.org/show_bug.cgi?id=859
Luke Kenneth Casson Leighton [Tue, 14 Jun 2022 14:13:43 +0000 (15:13 +0100)]
update version to 0.0 to stop unnecessary pip3 installs
Luke Kenneth Casson Leighton [Tue, 14 Jun 2022 14:11:36 +0000 (15:11 +0100)]
add version constraints on setup install_requires
Dmitry Selyutin [Wed, 8 Jun 2022 17:53:49 +0000 (17:53 +0000)]
media/Makefile: switch to explicit LE toolchain
Dmitry Selyutin [Wed, 8 Jun 2022 12:31:46 +0000 (12:31 +0000)]
svp64.py: simplify core script translation
Dmitry Selyutin [Wed, 8 Jun 2022 11:52:44 +0000 (11:52 +0000)]
mp3_0: update assembly listing
Dmitry Selyutin [Mon, 6 Jun 2022 19:30:42 +0000 (19:30 +0000)]
svp64.py: fix stdin/stdout modus operandi
Dmitry Selyutin [Mon, 6 Jun 2022 18:27:50 +0000 (18:27 +0000)]
svp64.py: switch print statements to logger
Dmitry Selyutin [Wed, 1 Jun 2022 19:56:13 +0000 (19:56 +0000)]
sv_binutils: consider RA0 operand
Dmitry Selyutin [Wed, 1 Jun 2022 18:39:30 +0000 (18:39 +0000)]
sv_binutils: drop redundant prefix in C tags
Dmitry Selyutin [Wed, 1 Jun 2022 18:16:14 +0000 (18:16 +0000)]
sv_binutils: exclude useless records
Dmitry Selyutin [Wed, 1 Jun 2022 18:07:11 +0000 (18:07 +0000)]
sv_binutils: refactor CSV iteration
Dmitry Selyutin [Wed, 1 Jun 2022 17:03:41 +0000 (17:03 +0000)]
sv_binutils: allow excluding enum values
Dmitry Selyutin [Wed, 1 Jun 2022 17:39:24 +0000 (17:39 +0000)]
sv_binutils: update sv_extra naming
Dmitry Selyutin [Wed, 1 Jun 2022 11:12:52 +0000 (11:12 +0000)]
sv_binutils: fix selector names
Dmitry Selyutin [Wed, 1 Jun 2022 11:05:00 +0000 (11:05 +0000)]
sv_binutils: use ppc_opindex_t instead of unsigned char
Dmitry Selyutin [Tue, 31 May 2022 19:21:15 +0000 (19:21 +0000)]
sv_binutils: use BC instead of CRB
Dmitry Selyutin [Tue, 31 May 2022 16:16:03 +0000 (16:16 +0000)]
sv_binutils: fix enum name in C code
Dmitry Selyutin [Fri, 27 May 2022 12:17:24 +0000 (12:17 +0000)]
sv_binutils: follow binutils PPC indentation
Dmitry Selyutin [Fri, 27 May 2022 12:16:23 +0000 (12:16 +0000)]
sv_binutils: make C enums more readable
Dmitry Selyutin [Fri, 27 May 2022 12:12:26 +0000 (12:12 +0000)]
sv_binutils: rename opsel to opindex as in binutils
Luke Kenneth Casson Leighton [Thu, 26 May 2022 17:00:33 +0000 (18:00 +0100)]
add preamble on reg field encoding
Luke Kenneth Casson Leighton [Thu, 26 May 2022 16:49:36 +0000 (17:49 +0100)]
split out CR field encoding into function
add link to specification
Luke Kenneth Casson Leighton [Thu, 26 May 2022 15:11:04 +0000 (16:11 +0100)]
add some code-comments to explain CR field svp64 EXTRA encoding
Luke Kenneth Casson Leighton [Thu, 26 May 2022 14:55:03 +0000 (15:55 +0100)]
Revert "svp64.py: simplify CR sv_extra and field processing"
This reverts commit
d56564910763a69f113615bedf94022da9457de5.
Dmitry Selyutin [Thu, 26 May 2022 14:23:07 +0000 (14:23 +0000)]
svp64.py: always put leading zeroes for prefix
Dmitry Selyutin [Thu, 26 May 2022 12:14:03 +0000 (12:14 +0000)]
svp64.py: simplify CR sv_extra and field processing
Luke Kenneth Casson Leighton [Fri, 20 May 2022 11:54:05 +0000 (12:54 +0100)]
bit of a mess being sorted out
1) update to this page was inconsistent: now fixed
https://libre-soc.org/openpower/sv/bitmanip/
2) power_decoder.py bitsel for minor_22.csv had been set to (1,5) which
is *only four bits* (LSB0 numbering, python-style) 1 2 3 4
where what was actually needed was (1,6) to be bits (MSB0) 26..30
3) when converting to "ignore" format (previous:
0b00000 new 000000-)
and adding the extra bit, (2) messed things up.
bitsel has now been set to (0,6) which is bits 0 1 2 3 4 5
aka (MSB0) 26..31 and the four instructions setvl/svremap/svshap/svstep
set to 10011- and 011001 etc. as appropriate
4) the minor_22.csv entries for both svshape and svremap were set to
Rc=1 mode which is NOT correct
astoundingly the unit tests all functioned correctly despite the above
errors. now all corrected, unit test test_caller_setvl.py still functions
Dmitry Selyutin [Thu, 19 May 2022 11:02:52 +0000 (11:02 +0000)]
temporarily revert opcode changes
b9ffa13 isatables/minor_22.csv: reflect a new XO bit
0e87485 power_decoder: reflect a new XO bit
e5564ad svp64.py: sync remap opcode
c968dab svp64.py: sync svshape opcode
Dmitry Selyutin [Thu, 19 May 2022 07:58:09 +0000 (07:58 +0000)]
isatables/minor_22.csv: reflect a new XO bit
Dmitry Selyutin [Thu, 19 May 2022 07:56:30 +0000 (07:56 +0000)]
power_decoder: reflect a new XO bit
Dmitry Selyutin [Wed, 18 May 2022 20:01:40 +0000 (20:01 +0000)]
svp64.py: sync remap opcode
Dmitry Selyutin [Wed, 18 May 2022 19:39:22 +0000 (19:39 +0000)]
svp64.py: sync svshape opcode
Luke Kenneth Casson Leighton [Wed, 18 May 2022 10:32:37 +0000 (11:32 +0100)]
add BM-Form and CRB-Form for bitmanip
Luke Kenneth Casson Leighton [Mon, 16 May 2022 13:37:25 +0000 (14:37 +0100)]
add to VA-Form, alter XO on SVM and SVRM Form
Luke Kenneth Casson Leighton [Mon, 16 May 2022 12:42:36 +0000 (13:42 +0100)]
add VA2-Form for Bitmanip ops [DRAFT]