openpower-isa.git
20 months agofinally got pack/unpack working
Luke Kenneth Casson Leighton [Mon, 26 Sep 2022 19:19:49 +0000 (20:19 +0100)]
finally got pack/unpack working
https://bugs.libre-soc.org/show_bug.cgi?id=871

20 months agocode-morph on loop-end detection in ISACaller
Luke Kenneth Casson Leighton [Mon, 26 Sep 2022 17:45:52 +0000 (18:45 +0100)]
code-morph on loop-end detection in ISACaller
there is a bit of a problem in Pack/Unpack in that the end-of-loop
detection is overrunning.

20 months agoexplicit test of src/dststep end-condition in ISACaller iterators
Luke Kenneth Casson Leighton [Mon, 26 Sep 2022 16:14:26 +0000 (17:14 +0100)]
explicit test of src/dststep end-condition in ISACaller iterators

20 months agoswap RA/RB so that RA|0 is used not RB|0
Luke Kenneth Casson Leighton [Mon, 26 Sep 2022 11:03:07 +0000 (12:03 +0100)]
swap RA/RB so that RA|0 is used not RB|0
RB|0 would need a new flag to be passed down to ALUs in HDL

20 months agofix variables in memory copy
Konstantinos Margaritis [Sun, 25 Sep 2022 17:11:58 +0000 (17:11 +0000)]
fix variables in memory copy

20 months agocomment out debug dumps
Konstantinos Margaritis [Sun, 25 Sep 2022 16:56:31 +0000 (16:56 +0000)]
comment out debug dumps

20 months agoFixed SVP64 implentation
Konstantinos Margaritis [Sun, 25 Sep 2022 16:56:08 +0000 (16:56 +0000)]
Fixed SVP64 implentation

20 months agoremove functions as not relevant for this test
Konstantinos Margaritis [Sun, 25 Sep 2022 16:55:43 +0000 (16:55 +0000)]
remove functions as not relevant for this test

20 months agoclean up, convert from uint64 for python due to rounding in Python, fix copying functions
Konstantinos Margaritis [Sun, 25 Sep 2022 16:55:15 +0000 (16:55 +0000)]
clean up, convert from uint64 for python due to rounding in Python, fix copying functions

20 months agoadd prototypes
Konstantinos Margaritis [Sun, 25 Sep 2022 16:54:22 +0000 (16:54 +0000)]
add prototypes

20 months agofix finalize function, clean ups
Konstantinos Margaritis [Sun, 25 Sep 2022 16:54:04 +0000 (16:54 +0000)]
fix finalize function, clean ups

20 months agoremove unimplemented tests, lower iterations
Konstantinos Margaritis [Sun, 25 Sep 2022 16:53:22 +0000 (16:53 +0000)]
remove unimplemented tests, lower iterations

20 months agouse sv.maddled/mr, cleanup
Konstantinos Margaritis [Sun, 25 Sep 2022 16:52:50 +0000 (16:52 +0000)]
use sv.maddled/mr, cleanup

20 months agoadd header
Konstantinos Margaritis [Sat, 24 Sep 2022 19:56:09 +0000 (19:56 +0000)]
add header

20 months agotest_pysvp64dis: sort ld/st idx stride specs
Dmitry Selyutin [Sun, 25 Sep 2022 16:03:30 +0000 (19:03 +0300)]
test_pysvp64dis: sort ld/st idx stride specs

20 months agopower_insn: always provide els for ld/st idx stride
Dmitry Selyutin [Sun, 25 Sep 2022 16:02:58 +0000 (19:02 +0300)]
power_insn: always provide els for ld/st idx stride

20 months agopysvp64asm: fix VLi attribute access
Dmitry Selyutin [Sun, 25 Sep 2022 16:02:00 +0000 (19:02 +0300)]
pysvp64asm: fix VLi attribute access

20 months agopower_insn: fix and unify /vli specifier
Dmitry Selyutin [Sun, 25 Sep 2022 11:05:14 +0000 (14:05 +0300)]
power_insn: fix and unify /vli specifier

20 months agohave to sanity-check dz/zz after full qualifier-processing in branch-mode
Luke Kenneth Casson Leighton [Sun, 25 Sep 2022 12:50:35 +0000 (13:50 +0100)]
have to sanity-check dz/zz after full qualifier-processing in branch-mode

20 months agoadd dz/sz assertion in is_bc mode
Luke Kenneth Casson Leighton [Sun, 25 Sep 2022 12:48:23 +0000 (13:48 +0100)]
add dz/sz assertion in is_bc mode

20 months agowhitespace
Luke Kenneth Casson Leighton [Sun, 25 Sep 2022 12:46:22 +0000 (13:46 +0100)]
whitespace

20 months agomove sea check to after all qualifiers are checked
Luke Kenneth Casson Leighton [Sat, 24 Sep 2022 16:24:35 +0000 (17:24 +0100)]
move sea check to after all qualifiers are checked

20 months agocheck variable rather than explicit == LDST_IDX
Luke Kenneth Casson Leighton [Sat, 24 Sep 2022 16:21:41 +0000 (17:21 +0100)]
check variable rather than explicit == LDST_IDX

20 months agoadd elstrided/sea on ldst_idx mode
Luke Kenneth Casson Leighton [Sat, 24 Sep 2022 16:16:44 +0000 (17:16 +0100)]
add elstrided/sea on ldst_idx mode

20 months agotest_pysvp64dis: test ld/st idx SEA (simple)
Dmitry Selyutin [Sat, 24 Sep 2022 15:17:59 +0000 (18:17 +0300)]
test_pysvp64dis: test ld/st idx SEA (simple)

20 months agopower_insn: support SEA specifier
Dmitry Selyutin [Sat, 24 Sep 2022 14:51:55 +0000 (17:51 +0300)]
power_insn: support SEA specifier

20 months agopysvp64asm: support /sea specifier
Dmitry Selyutin [Sat, 24 Sep 2022 14:40:03 +0000 (17:40 +0300)]
pysvp64asm: support /sea specifier

20 months agoconsts: introduce SEA field
Dmitry Selyutin [Sat, 24 Sep 2022 14:39:24 +0000 (17:39 +0300)]
consts: introduce SEA field

20 months agopysvp64asm: fix comment layout
Dmitry Selyutin [Sat, 24 Sep 2022 14:06:44 +0000 (17:06 +0300)]
pysvp64asm: fix comment layout

20 months agoset sv_mode to 0b01 in element-strided
Luke Kenneth Casson Leighton [Sat, 24 Sep 2022 16:08:59 +0000 (17:08 +0100)]
set sv_mode to 0b01 in element-strided

20 months agofrickin frick
Luke Kenneth Casson Leighton [Sat, 24 Sep 2022 16:03:58 +0000 (17:03 +0100)]
frickin frick

20 months agoadd assert to stop failfirst+sea
Luke Kenneth Casson Leighton [Sat, 24 Sep 2022 16:00:28 +0000 (17:00 +0100)]
add assert to stop failfirst+sea

20 months agoadd extra RC1 test, without VLI.
Luke Kenneth Casson Leighton [Sat, 24 Sep 2022 16:31:00 +0000 (17:31 +0100)]
add extra RC1 test, without VLI.

20 months agoadd RC1 support to ISACaller.
Luke Kenneth Casson Leighton [Sat, 24 Sep 2022 16:17:55 +0000 (17:17 +0100)]
add RC1 support to ISACaller.
this involves:
* reading Rc=0 and substituting RC1 in its place OR
* for non-Rc instructions just putting RC1 in place of Rc
* reading VLi flag and adding it to srcstep to put into VL on ffirst hit
* setting the cr-bit to test to EQ in RC1 mode

20 months agopower_insn: slightly change table checking style
Dmitry Selyutin [Sat, 24 Sep 2022 13:22:14 +0000 (16:22 +0300)]
power_insn: slightly change table checking style

20 months agoadd extra test_pysvp64dis.py test for ff=~RC1/vli mode
Luke Kenneth Casson Leighton [Sat, 24 Sep 2022 13:25:09 +0000 (14:25 +0100)]
add extra test_pysvp64dis.py test for ff=~RC1/vli mode

20 months agowhoops got mask/match test wrong in power_insn.py
Luke Kenneth Casson Leighton [Sat, 24 Sep 2022 13:22:09 +0000 (14:22 +0100)]
whoops got mask/match test wrong in power_insn.py
should be value & mask == search & mask

20 months agocomment inv,CRbit swap in decode_bo
Luke Kenneth Casson Leighton [Sat, 24 Sep 2022 10:25:04 +0000 (11:25 +0100)]
comment inv,CRbit swap in decode_bo

20 months agosv_binutils: support RS opindex
Dmitry Selyutin [Sat, 24 Sep 2022 09:09:32 +0000 (12:09 +0300)]
sv_binutils: support RS opindex

20 months agopower_insn: reorder mode tables to match the spec
Dmitry Selyutin [Fri, 23 Sep 2022 07:37:47 +0000 (10:37 +0300)]
power_insn: reorder mode tables to match the spec

20 months agopower_insn: rename smr to mr
Dmitry Selyutin [Fri, 23 Sep 2022 07:36:37 +0000 (10:36 +0300)]
power_insn: rename smr to mr

20 months agosv_binutils: provide Boolean class and Rc field
Dmitry Selyutin [Thu, 22 Sep 2022 21:49:46 +0000 (00:49 +0300)]
sv_binutils: provide Boolean class and Rc field

20 months agopower_insn: provide Record.Rc field
Dmitry Selyutin [Thu, 22 Sep 2022 21:49:29 +0000 (00:49 +0300)]
power_insn: provide Record.Rc field

20 months agopower_insn: simplify rsvd naming; drop unused rsvd
Dmitry Selyutin [Thu, 22 Sep 2022 21:30:59 +0000 (00:30 +0300)]
power_insn: simplify rsvd naming; drop unused rsvd

20 months agopower_insn: replace Record.function with Record.mode
Dmitry Selyutin [Thu, 22 Sep 2022 21:30:32 +0000 (00:30 +0300)]
power_insn: replace Record.function with Record.mode

20 months agopysvp64asm: expand vector register macros
Dmitry Selyutin [Wed, 21 Sep 2022 19:35:08 +0000 (22:35 +0300)]
pysvp64asm: expand vector register macros

20 months agosv_binutils: support opcodes offset representation
Dmitry Selyutin [Wed, 21 Sep 2022 15:07:01 +0000 (18:07 +0300)]
sv_binutils: support opcodes offset representation

20 months agosv_binutils: fix fields traversal
Dmitry Selyutin [Wed, 21 Sep 2022 15:06:32 +0000 (18:06 +0300)]
sv_binutils: fix fields traversal

20 months agopower_insn: sort database finally
Dmitry Selyutin [Wed, 21 Sep 2022 15:04:53 +0000 (18:04 +0300)]
power_insn: sort database finally

20 months agopower_insn: provide missing cr_in2 properties
Dmitry Selyutin [Wed, 21 Sep 2022 10:21:46 +0000 (13:21 +0300)]
power_insn: provide missing cr_in2 properties

20 months agosv_binutils: generate svp64_cr_in2 opindices
Dmitry Selyutin [Wed, 21 Sep 2022 08:39:00 +0000 (11:39 +0300)]
sv_binutils: generate svp64_cr_in2 opindices

20 months agosv_binutils: generate BA opindex
Dmitry Selyutin [Wed, 21 Sep 2022 08:37:46 +0000 (11:37 +0300)]
sv_binutils: generate BA opindex

20 months agopower_fields: restore class-oriented traversal
Dmitry Selyutin [Tue, 20 Sep 2022 20:50:43 +0000 (23:50 +0300)]
power_fields: restore class-oriented traversal

20 months agopcdec. works!
Jacob Lifshay [Sat, 24 Sep 2022 00:12:47 +0000 (17:12 -0700)]
pcdec. works!

20 months agocheck svstate (vl) in failfirst test
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 23:00:20 +0000 (00:00 +0100)]
check svstate (vl) in failfirst test

20 months agogrr annoying recurrence of svshape bug, mscale starts with 6 bits
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 22:15:23 +0000 (23:15 +0100)]
grr annoying recurrence of svshape bug, mscale starts with 6 bits

20 months agoadd data-dependent fail-first mode, Rc=1 variant not RC1 yet
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 21:44:14 +0000 (22:44 +0100)]
add data-dependent fail-first mode, Rc=1 variant not RC1 yet
first unit test passes, not Vertical-First Mode

20 months agowhoops consistent inversion of inv,CRbit was CRbit,inv
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 21:42:49 +0000 (22:42 +0100)]
whoops consistent inversion of inv,CRbit was CRbit,inv

20 months agoextra failfirst dis tests
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 20:17:52 +0000 (21:17 +0100)]
extra failfirst dis tests

20 months agoremove barse-ackwardsness, use SelectableInt() in decode_bo
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 19:20:39 +0000 (20:20 +0100)]
remove barse-ackwardsness, use SelectableInt() in decode_bo

20 months agoput back the barse-ackward decode_bo inversion of {inv||CR_bit}
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 19:12:05 +0000 (20:12 +0100)]
put back the barse-ackward decode_bo inversion of {inv||CR_bit}

20 months agoremove need for explicit-hack for "pcdec." - rc column in minor_4.csv file
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 17:40:33 +0000 (18:40 +0100)]
remove need for explicit-hack for "pcdec." - rc column in minor_4.csv file
can be set "rc=ONE" which tells ISACaller (and PowerDecoder2) to
*always* write to CR0

20 months agolots of really bad hacks, here
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 17:38:34 +0000 (18:38 +0100)]
lots of really bad hacks, here
https://bugs.libre-soc.org/show_bug.cgi?id=933
1) rename to "pcdec." because it always sets CR0. following the convention
   set by "stbcx." etc.
2) hacked ISACaller into submission because this is the first instruction
   supported with "." at the end which is not Rc=1
3) handle_comparison was bypassed when CR0 is detected as explicitly
   an output: there is no point computing Rc=1 EQ/LT/GT/SO when CR0
   is supplied by the pseudocode
4) the test case case_pcdec_simple() was not making explicit deepcopy()
   of the registers, which causes problems
5) various places in actually getting the instruction from the insn
   dictionary, have to special-case "pcdec."
6) sv/trans/svp64.py updated to name "pcdec."
.

20 months agofix/hack some bugs in prefix_codes_cases
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 17:05:48 +0000 (18:05 +0100)]
fix/hack some bugs in prefix_codes_cases

20 months agoadd (sigh) to the hack-job get_pdecode_idx_out2() in ISACaller
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 16:49:45 +0000 (17:49 +0100)]
add (sigh) to the hack-job get_pdecode_idx_out2() in ISACaller
really should be relying on PowerDecoder2 but hey

20 months agochange variablename dec2.use_svp64_fft to implicit_rs
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 16:43:31 +0000 (17:43 +0100)]
change variablename dec2.use_svp64_fft to implicit_rs

20 months agoadd match on implicit_rc for pcdec
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 16:43:13 +0000 (17:43 +0100)]
add match on implicit_rc for pcdec

20 months agorename all "fft" variables in PowerDecoder2 because they are
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 16:35:16 +0000 (17:35 +0100)]
rename all "fft" variables in PowerDecoder2 because they are
to be used for pcdec as well.
https://bugs.libre-soc.org/show_bug.cgi?id=933

20 months agoadd sv.maddld/mr unit test example with expected results
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 16:21:00 +0000 (17:21 +0100)]
add sv.maddld/mr unit test example with expected results

20 months agoadd expected results for sv.maddld in openpower/test/mul_cases.py
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 16:12:56 +0000 (17:12 +0100)]
add expected results for sv.maddld in openpower/test/mul_cases.py

20 months agoreduce field name lengths (not in use)
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 10:21:40 +0000 (11:21 +0100)]
reduce field name lengths (not in use)

20 months agowhoops offset-tracking on 3-in 2-out supposed to be by MAXVL not VL
Luke Kenneth Casson Leighton [Fri, 23 Sep 2022 09:13:39 +0000 (10:13 +0100)]
whoops offset-tracking on 3-in 2-out supposed to be by MAXVL not VL

20 months agoremoved unneeded file
Konstantinos Margaritis [Fri, 23 Sep 2022 07:49:56 +0000 (07:49 +0000)]
removed unneeded file

20 months agoupdate Makefile
Konstantinos Margaritis [Fri, 23 Sep 2022 07:33:44 +0000 (07:33 +0000)]
update Makefile

20 months agoadd new SVP64 function
Konstantinos Margaritis [Fri, 23 Sep 2022 07:33:37 +0000 (07:33 +0000)]
add new SVP64 function

20 months agoreduce iterations, taking too long in the simulator
Konstantinos Margaritis [Fri, 23 Sep 2022 07:33:01 +0000 (07:33 +0000)]
reduce iterations, taking too long in the simulator

20 months agorename reference functions with _c suffix, add header
Konstantinos Margaritis [Fri, 23 Sep 2022 07:32:42 +0000 (07:32 +0000)]
rename reference functions with _c suffix, add header

20 months agorenamed variance_svp64.c to variancefuncs_svp64.c
Konstantinos Margaritis [Fri, 23 Sep 2022 07:31:58 +0000 (07:31 +0000)]
renamed variance_svp64.c to variancefuncs_svp64.c

20 months agoadd pcdec -- doesn't yet work due to broken ISACaller RT/RS output handling
Jacob Lifshay [Fri, 23 Sep 2022 03:05:35 +0000 (20:05 -0700)]
add pcdec -- doesn't yet work due to broken ISACaller RT/RS output handling

20 months agofix maddld pseudo-code
Jacob Lifshay [Fri, 23 Sep 2022 03:22:45 +0000 (20:22 -0700)]
fix maddld pseudo-code

20 months agoadd missing minor_4 decoder
Jacob Lifshay [Fri, 23 Sep 2022 03:02:02 +0000 (20:02 -0700)]
add missing minor_4 decoder

20 months agofix 'write reg ' log call
Jacob Lifshay [Fri, 23 Sep 2022 03:00:52 +0000 (20:00 -0700)]
fix 'write reg ' log call

20 months agoadd RC input to isa/caller.py
Jacob Lifshay [Fri, 23 Sep 2022 02:59:40 +0000 (19:59 -0700)]
add RC input to isa/caller.py

20 months agoformat code
Jacob Lifshay [Fri, 23 Sep 2022 02:56:11 +0000 (19:56 -0700)]
format code

20 months agomaddhd[u]/maddld are official ops
Jacob Lifshay [Fri, 23 Sep 2022 01:02:59 +0000 (18:02 -0700)]
maddhd[u]/maddld are official ops

20 months agoformat code
Jacob Lifshay [Fri, 23 Sep 2022 00:37:33 +0000 (17:37 -0700)]
format code

20 months agoadd first (correctly-working) ctr-mode sv.bc test
Luke Kenneth Casson Leighton [Thu, 22 Sep 2022 23:47:26 +0000 (00:47 +0100)]
add first (correctly-working) ctr-mode sv.bc test

20 months agocomment need for waiting on binutils update
Luke Kenneth Casson Leighton [Thu, 22 Sep 2022 12:41:23 +0000 (13:41 +0100)]
comment need for waiting on binutils update

20 months agofix no of iterations in comment, harmless but wrong
Konstantinos Margaritis [Thu, 22 Sep 2022 11:05:34 +0000 (11:05 +0000)]
fix no of iterations in comment, harmless but wrong

20 months agodump memory
Konstantinos Margaritis [Thu, 22 Sep 2022 08:43:46 +0000 (08:43 +0000)]
dump memory

20 months agobetter handling of memory copies, fix vpx_get4x4sse_cs_svp64
Konstantinos Margaritis [Thu, 22 Sep 2022 08:43:26 +0000 (08:43 +0000)]
better handling of memory copies, fix vpx_get4x4sse_cs_svp64

20 months agoremove extra setvl instruction
Konstantinos Margaritis [Thu, 22 Sep 2022 08:42:05 +0000 (08:42 +0000)]
remove extra setvl instruction

20 months agoadd series of double-stride options to test_caller_svp64_dct.py
Luke Kenneth Casson Leighton [Wed, 21 Sep 2022 19:49:44 +0000 (20:49 +0100)]
add series of double-stride options to test_caller_svp64_dct.py

20 months agodo not set striding on costables, keep them contiguous.
Luke Kenneth Casson Leighton [Wed, 21 Sep 2022 19:17:41 +0000 (20:17 +0100)]
do not set striding on costables, keep them contiguous.
not totally sure this is a good idea, but hey

20 months agogetting better, get rid of the ctr, group src/ref loads
Konstantinos Margaritis [Wed, 21 Sep 2022 18:33:24 +0000 (18:33 +0000)]
getting better, get rid of the ctr, group src/ref loads

20 months agoscale-up svshape pseudo-code for striding in DCT/FFT
Luke Kenneth Casson Leighton [Wed, 21 Sep 2022 17:18:14 +0000 (18:18 +0100)]
scale-up svshape pseudo-code for striding in DCT/FFT

20 months agofix dct/fft test-functions with new "scaling" parameter
Luke Kenneth Casson Leighton [Wed, 21 Sep 2022 16:56:57 +0000 (17:56 +0100)]
fix dct/fft test-functions with new "scaling" parameter
https://bugs.libre-soc.org/show_bug.cgi?id=930

20 months agomissed setting zdim in svshape on DCT modes
Luke Kenneth Casson Leighton [Wed, 21 Sep 2022 14:53:53 +0000 (15:53 +0100)]
missed setting zdim in svshape on DCT modes

20 months agouse sv.subf
Konstantinos Margaritis [Wed, 21 Sep 2022 15:33:49 +0000 (15:33 +0000)]
use sv.subf

20 months agofix braces
Konstantinos Margaritis [Wed, 21 Sep 2022 15:30:45 +0000 (15:30 +0000)]
fix braces