openpower-isa.git
2 years agoalthough unused read first sum from *dither_state
Luke Kenneth Casson Leighton [Wed, 16 Jun 2021 16:59:11 +0000 (17:59 +0100)]
although unused read first sum from *dither_state

2 years agouse addi where sv.addi is inappropriate (scalar values)
Luke Kenneth Casson Leighton [Wed, 16 Jun 2021 16:47:49 +0000 (17:47 +0100)]
use addi where sv.addi is inappropriate (scalar values)
although later win and win2 will move to above 32.
looking for possible discrepancies in assembler code

2 years agoreorder arguments to FPMULADD32 to match pseudocode
Luke Kenneth Casson Leighton [Wed, 16 Jun 2021 16:20:51 +0000 (17:20 +0100)]
reorder arguments to FPMULADD32 to match pseudocode

2 years agouse fnmsubs instead of fmadds followed by fsubs
Luke Kenneth Casson Leighton [Wed, 16 Jun 2021 12:14:48 +0000 (13:14 +0100)]
use fnmsubs instead of fmadds followed by fsubs

2 years agofnmadds and fnmsubs were inverted
Luke Kenneth Casson Leighton [Wed, 16 Jun 2021 12:14:07 +0000 (13:14 +0100)]
fnmadds and fnmsubs were inverted

2 years agoad fnmadd and fnmsubs to ISA pseudocode
Luke Kenneth Casson Leighton [Wed, 16 Jun 2021 12:07:34 +0000 (13:07 +0100)]
ad fnmadd and fnmsubs to ISA pseudocode

2 years agoreverting removal of tmpsum and tmpsum2, not using fmsubs
Luke Kenneth Casson Leighton [Wed, 16 Jun 2021 10:24:48 +0000 (11:24 +0100)]
reverting removal of tmpsum and tmpsum2, not using fmsubs
see http://lists.libre-soc.org/pipermail/libre-soc-dev/2021-June/003145.html

2 years agowhoops forgot import
Luke Kenneth Casson Leighton [Tue, 15 Jun 2021 19:22:50 +0000 (20:22 +0100)]
whoops forgot import

2 years agowhoops still using DOUBLE(SINGLE(x)) rather than DOUBLE2SINGLE
Luke Kenneth Casson Leighton [Tue, 15 Jun 2021 19:21:58 +0000 (20:21 +0100)]
whoops still using DOUBLE(SINGLE(x)) rather than DOUBLE2SINGLE

2 years agoremove predicate mask r30, no longer needed
Luke Kenneth Casson Leighton [Tue, 15 Jun 2021 18:14:03 +0000 (19:14 +0100)]
remove predicate mask r30, no longer needed

2 years agono need for tmpsu or tmpsum2, fmadds if replaced with fmsubs does the job
Luke Kenneth Casson Leighton [Tue, 15 Jun 2021 17:58:50 +0000 (18:58 +0100)]
no need for tmpsu or tmpsum2, fmadds if replaced with fmsubs does the job

2 years agouse new sv.fmadds SVP64 instruction in MP3 CODEC assembler
Luke Kenneth Casson Leighton [Tue, 15 Jun 2021 17:43:50 +0000 (18:43 +0100)]
use new sv.fmadds SVP64 instruction in MP3 CODEC assembler

2 years agofix sv_analysis.py for 3R-1W-CRo case, add fmadds/fmsubs and SVP64 tests
Luke Kenneth Casson Leighton [Tue, 15 Jun 2021 17:43:18 +0000 (18:43 +0100)]
fix sv_analysis.py for 3R-1W-CRo case, add fmadds/fmsubs and SVP64 tests

2 years agomark as possible bug, the fneg sum,sum
Luke Kenneth Casson Leighton [Tue, 15 Jun 2021 15:47:45 +0000 (16:47 +0100)]
mark as possible bug, the fneg sum,sum

2 years agoadd fmadds and fmsubs to Power ISA pseudo-code, add unit test (scalar)
Luke Kenneth Casson Leighton [Tue, 15 Jun 2021 15:36:59 +0000 (16:36 +0100)]
add fmadds and fmsubs to Power ISA pseudo-code, add unit test (scalar)

2 years agoremove negate of sum for last value in SVP64 MP3 CODEC assembler
Luke Kenneth Casson Leighton [Tue, 15 Jun 2021 15:01:29 +0000 (16:01 +0100)]
remove negate of sum for last value in SVP64 MP3 CODEC assembler

2 years agoSVP64 mp3 assembler almost correct
Luke Kenneth Casson Leighton [Tue, 15 Jun 2021 14:53:41 +0000 (15:53 +0100)]
SVP64 mp3 assembler almost correct
lkcl@fizzy:~/src/libresoc/openpower-isa/media$ diff -u /tmp/x1 /tmp/x2
--- /tmp/x1     2021-06-15 15:51:06.016530558 +0100
+++ /tmp/x2     2021-06-15 15:51:16.816549772 +0100
@@ -2,7 +2,7 @@
 00000010  91 38 c2 aa b0 65 00 2a  ec 4d ea 2a c6 99 f3 ab  |.8...e.*.M.*....|
 00000020  5e 86 5c 2b c7 79 ce aa  05 b1 30 ab c2 b7 35 2c  |^.\+.y....0...5,|
 00000030  b2 48 35 ab 00 d8 91 2b  26 7e 6c 2b 52 c9 ac ac  |.H5....+&~l+R...|
-00000040  00 00 00 00 fc 57 cf 2c  61 ee ce ab 00 3a ff ab  |.....W.,a....:..|
+00000040  00 00 00 80 fc 57 cf 2c  61 ee ce ab 00 3a ff ab  |.....W.,a....:..|
 00000050  42 b6 f1 2b d2 49 08 ad  46 dd 5c 2c b9 f3 0d 2c  |B..+.I..F.\,...,|
 00000060  2c 2d b3 ac 8d 26 55 2d  ec 4d ea ac 0b 6c 08 ac  |,-...&U-.M...l..|
 00000070  2c a3 e6 2c 52 97 db ac  a8 7c 03 2d 1d b3 58 ac  |,..,R....|.-..X.|

2 years agoadd comments into mapreduce example
Luke Kenneth Casson Leighton [Tue, 15 Jun 2021 14:32:15 +0000 (15:32 +0100)]
add comments into mapreduce example

2 years agowhoops overlap of fv0-2 with sum/2/tmp, move further up
Luke Kenneth Casson Leighton [Tue, 15 Jun 2021 10:09:03 +0000 (11:09 +0100)]
whoops overlap of fv0-2 with sum/2/tmp, move further up

2 years agosigh bug in setvl, temporarily setting to 7 not 8
Luke Kenneth Casson Leighton [Mon, 14 Jun 2021 23:53:54 +0000 (00:53 +0100)]
sigh bug in setvl, temporarily setting to 7 not 8

2 years agonope, win = win2 + 31
Luke Kenneth Casson Leighton [Mon, 14 Jun 2021 23:40:21 +0000 (00:40 +0100)]
nope, win = win2 + 31

2 years agoguessing probably supposed to be 128 not 124
Luke Kenneth Casson Leighton [Mon, 14 Jun 2021 23:39:31 +0000 (00:39 +0100)]
guessing probably supposed to be 128 not 124

2 years agotmpsum2 probably needed to be fp3
Luke Kenneth Casson Leighton [Mon, 14 Jun 2021 23:37:09 +0000 (00:37 +0100)]
tmpsum2 probably needed to be fp3

2 years agotemporary move regs into range 0-31
Luke Kenneth Casson Leighton [Mon, 14 Jun 2021 22:00:24 +0000 (23:00 +0100)]
temporary move regs into range 0-31

2 years agorecognise setvl instruction during SVP64 translation
Luke Kenneth Casson Leighton [Mon, 14 Jun 2021 22:00:06 +0000 (23:00 +0100)]
recognise setvl instruction during SVP64 translation

2 years agowhoops forgot format-to-format conversion
Luke Kenneth Casson Leighton [Mon, 14 Jun 2021 21:49:59 +0000 (22:49 +0100)]
whoops forgot format-to-format conversion

2 years agoseries of text macro formats to look for: x.v, x.s (x)
Luke Kenneth Casson Leighton [Mon, 14 Jun 2021 21:46:57 +0000 (22:46 +0100)]
series of text macro formats to look for: x.v, x.s (x)

2 years agoadd basic "macro" (.set) support to SVP64Asm
Luke Kenneth Casson Leighton [Mon, 14 Jun 2021 21:36:16 +0000 (22:36 +0100)]
add basic "macro" (.set) support to SVP64Asm
also fix bug where immediate fields were not being translated

2 years agomp3_0 initial sv
Lauri Kasanen [Mon, 14 Jun 2021 12:25:12 +0000 (15:25 +0300)]
mp3_0 initial sv

2 years agoReorder mp3_0_basicsv back to the C loop style
Lauri Kasanen [Mon, 14 Jun 2021 11:53:40 +0000 (14:53 +0300)]
Reorder mp3_0_basicsv back to the C loop style

2 years agoUpdate mp3_1.gpr missed in b04990f79c
Lauri Kasanen [Mon, 14 Jun 2021 11:20:56 +0000 (14:20 +0300)]
Update mp3_1.gpr missed in b04990f79c

2 years agoadd some more comments in the mapreduce svp64 examples/unit tests
Luke Kenneth Casson Leighton [Wed, 9 Jun 2021 20:33:16 +0000 (21:33 +0100)]
add some more comments in the mapreduce svp64 examples/unit tests

2 years agoadd sv.fmuls/mr - mapreduce - FP multiply-single test
Luke Kenneth Casson Leighton [Wed, 9 Jun 2021 17:31:25 +0000 (18:31 +0100)]
add sv.fmuls/mr - mapreduce - FP multiply-single test

2 years agoadd first scalar mapreduce SVP64 example
Luke Kenneth Casson Leighton [Wed, 9 Jun 2021 17:19:40 +0000 (18:19 +0100)]
add first scalar mapreduce SVP64 example

2 years agoadd what might turn out to be only what is needed to support mapreduce
Luke Kenneth Casson Leighton [Wed, 9 Jun 2021 17:05:05 +0000 (18:05 +0100)]
add what might turn out to be only what is needed to support mapreduce
scalar mode

2 years agowhoops, carry-over during rounding picks MSB not LSB
Luke Kenneth Casson Leighton [Tue, 8 Jun 2021 16:33:16 +0000 (17:33 +0100)]
whoops, carry-over during rounding picks MSB not LSB

2 years agowhoops copy sign over on zero
Luke Kenneth Casson Leighton [Tue, 8 Jun 2021 16:13:45 +0000 (17:13 +0100)]
whoops copy sign over on zero

2 years agoexponent bitwidth in DOUBLE2SINGLE needs to be 11 bits not 12
Luke Kenneth Casson Leighton [Tue, 8 Jun 2021 12:54:18 +0000 (13:54 +0100)]
exponent bitwidth in DOUBLE2SINGLE needs to be 11 bits not 12

2 years agouse new auto-generated DOUBLE2SINGLE from isafunctions pseudocode in FPMUL32
Luke Kenneth Casson Leighton [Tue, 8 Jun 2021 12:12:40 +0000 (13:12 +0100)]
use new auto-generated DOUBLE2SINGLE from isafunctions pseudocode in FPMUL32

2 years agoadd detection of function parameters in parser
Luke Kenneth Casson Leighton [Tue, 8 Jun 2021 12:11:18 +0000 (13:11 +0100)]
add detection of function parameters in parser
and stop assuming they are uninitialised variables (auto-assigned)
when slices are used

2 years agoadd better debug logs and asserts for SelectableInt slice
Luke Kenneth Casson Leighton [Tue, 8 Jun 2021 12:09:01 +0000 (13:09 +0100)]
add better debug logs and asserts for SelectableInt slice

2 years agoadd support in pyparser for negative numbers
Luke Kenneth Casson Leighton [Tue, 8 Jun 2021 12:08:18 +0000 (13:08 +0100)]
add support in pyparser for negative numbers

2 years agowhoops fraction in fpfromint off-by-one
Luke Kenneth Casson Leighton [Mon, 7 Jun 2021 12:24:03 +0000 (13:24 +0100)]
whoops fraction in fpfromint off-by-one

2 years agowhoops, in1_isvec and dec_bi are optional
Luke Kenneth Casson Leighton [Thu, 3 Jun 2021 12:02:34 +0000 (13:02 +0100)]
whoops, in1_isvec and dec_bi are optional

2 years agofmuls test showing rounding error against qemu
Luke Kenneth Casson Leighton [Wed, 2 Jun 2021 20:43:30 +0000 (21:43 +0100)]
fmuls test showing rounding error against qemu

2 years agofound FP single-conversion error, from the pseudocode, incorrectly
Luke Kenneth Casson Leighton [Wed, 2 Jun 2021 13:34:52 +0000 (14:34 +0100)]
found FP single-conversion error, from the pseudocode, incorrectly
translated to python by hand.  really should replace it with actual
pseudocode

2 years agomove mp3 test params slightly higher up so as not to clash with qemu BIOS
Luke Kenneth Casson Leighton [Wed, 2 Jun 2021 12:35:55 +0000 (13:35 +0100)]
move mp3 test params slightly higher up so as not to clash with qemu BIOS

2 years agoadd commented-out debug prints
Luke Kenneth Casson Leighton [Wed, 2 Jun 2021 12:33:31 +0000 (13:33 +0100)]
add commented-out debug prints

2 years agowhoops sorting SPRs, stop that for now
Luke Kenneth Casson Leighton [Wed, 2 Jun 2021 12:33:17 +0000 (13:33 +0100)]
whoops sorting SPRs, stop that for now

2 years agoget qemu FP regs correctly
Luke Kenneth Casson Leighton [Wed, 2 Jun 2021 12:32:51 +0000 (13:32 +0100)]
get qemu FP regs correctly

2 years agoFP basic qemu sim, testing fadds loads and stores
Luke Kenneth Casson Leighton [Wed, 2 Jun 2021 12:31:29 +0000 (13:31 +0100)]
FP basic qemu sim, testing fadds loads and stores

2 years agoappears that the FP operation takes place at full 64-bit precision
Luke Kenneth Casson Leighton [Wed, 2 Jun 2021 12:23:44 +0000 (13:23 +0100)]
appears that the FP operation takes place at full 64-bit precision
then is truncated afterwards to 32-bit, then converted to fit into 64

2 years agowhoops missing argument
Luke Kenneth Casson Leighton [Tue, 1 Jun 2021 13:42:39 +0000 (14:42 +0100)]
whoops missing argument

2 years agomove spot-check mem compare to a function
Luke Kenneth Casson Leighton [Tue, 1 Jun 2021 13:41:15 +0000 (14:41 +0100)]
move spot-check mem compare to a function
use for further debugging by checking a corrupted address

2 years agocheck both LD and ST in qemu compare
Luke Kenneth Casson Leighton [Tue, 1 Jun 2021 13:32:43 +0000 (14:32 +0100)]
check both LD and ST in qemu compare

2 years agobizarre, GPR 3 is set by qemu to non-zero at startup.
Luke Kenneth Casson Leighton [Tue, 1 Jun 2021 13:21:13 +0000 (14:21 +0100)]
bizarre, GPR 3 is set by qemu to non-zero at startup.
clear all GPRs: set to zero

2 years agowhoops start basic sim from 0x20000000
Luke Kenneth Casson Leighton [Tue, 1 Jun 2021 13:16:41 +0000 (14:16 +0100)]
whoops start basic sim from 0x20000000

2 years agobit more memdump debugging on qemu sim
Luke Kenneth Casson Leighton [Tue, 1 Jun 2021 13:12:49 +0000 (14:12 +0100)]
bit more memdump debugging on qemu sim

2 years agocomment cleanup, record last LD/ST address in simulator
Luke Kenneth Casson Leighton [Tue, 1 Jun 2021 11:55:39 +0000 (12:55 +0100)]
comment cleanup, record last LD/ST address in simulator
for checking with a snapshop on memory operations

2 years agowhoops crank down the debug level
Luke Kenneth Casson Leighton [Tue, 1 Jun 2021 10:40:12 +0000 (11:40 +0100)]
whoops crank down the debug level

2 years agosorting out qemu co-simulation to read/write FP regs
Luke Kenneth Casson Leighton [Tue, 1 Jun 2021 02:59:34 +0000 (03:59 +0100)]
sorting out qemu co-simulation to read/write FP regs

2 years agoadd "normal" element-strided LD/ST decode/support to ISACaller
Luke Kenneth Casson Leighton [Sun, 30 May 2021 11:40:08 +0000 (12:40 +0100)]
add "normal" element-strided LD/ST decode/support to ISACaller

2 years agocomments
Luke Kenneth Casson Leighton [Sat, 29 May 2021 19:17:49 +0000 (20:17 +0100)]
comments

2 years agoadd unit-strided LD/ST ISACaller SVP64 unit test
Luke Kenneth Casson Leighton [Sat, 29 May 2021 19:12:18 +0000 (20:12 +0100)]
add unit-strided LD/ST ISACaller SVP64 unit test

2 years agoinitialise SVP64 ld/st mode decoding in PowerDecoder2
Luke Kenneth Casson Leighton [Sat, 29 May 2021 17:42:19 +0000 (18:42 +0100)]
initialise SVP64 ld/st mode decoding in PowerDecoder2

2 years agocomments
Luke Kenneth Casson Leighton [Sat, 29 May 2021 17:19:15 +0000 (18:19 +0100)]
comments

2 years agoextract LDST mode from SVP64 RM
Luke Kenneth Casson Leighton [Sat, 29 May 2021 17:13:56 +0000 (18:13 +0100)]
extract LDST mode from SVP64 RM

2 years agocan't stand python 'format'
Luke Kenneth Casson Leighton [Sat, 29 May 2021 15:25:02 +0000 (16:25 +0100)]
can't stand python 'format'

2 years agodump memory from qemu in pypowersim
Luke Kenneth Casson Leighton [Sat, 29 May 2021 15:13:15 +0000 (16:13 +0100)]
dump memory from qemu in pypowersim

2 years agoadd SVP64 RM LDST mode enum
Luke Kenneth Casson Leighton [Fri, 28 May 2021 17:45:40 +0000 (18:45 +0100)]
add SVP64 RM LDST mode enum

2 years agoBegin on SV for mp3_0
Lauri Kasanen [Fri, 28 May 2021 16:26:50 +0000 (19:26 +0300)]
Begin on SV for mp3_0

2 years agoprint out offset for load address in hex
Luke Kenneth Casson Leighton [Fri, 28 May 2021 13:35:44 +0000 (14:35 +0100)]
print out offset for load address in hex

3 years agoprobably got MSR.FP bit set... maybe
Luke Kenneth Casson Leighton [Fri, 28 May 2021 12:55:42 +0000 (13:55 +0100)]
probably got MSR.FP bit set... maybe

3 years agoadd quick stfd test to make sure MSR.FP is set
Luke Kenneth Casson Leighton [Fri, 28 May 2021 12:55:26 +0000 (13:55 +0100)]
add quick stfd test to make sure MSR.FP is set

3 years agoCorrect mp3_1 dump size
Lauri Kasanen [Fri, 28 May 2021 11:42:25 +0000 (14:42 +0300)]
Correct mp3_1 dump size

3 years agoAdd 16kb stack space (total 20kb before it hits vecs at 0x3000)
Lauri Kasanen [Fri, 28 May 2021 11:41:35 +0000 (14:41 +0300)]
Add 16kb stack space (total 20kb before it hits vecs at 0x3000)

3 years agoUndo qemu address changes
Lauri Kasanen [Fri, 28 May 2021 11:41:08 +0000 (14:41 +0300)]
Undo qemu address changes

3 years agoincrease RAM sizes for media memmap
Luke Kenneth Casson Leighton [Thu, 27 May 2021 18:05:13 +0000 (19:05 +0100)]
increase RAM sizes for media memmap

3 years agomoving stack and parameters higher up for media test
Luke Kenneth Casson Leighton [Thu, 27 May 2021 17:59:37 +0000 (18:59 +0100)]
moving stack and parameters higher up for media test

3 years agomove stack pointer higher up to keep qemu happier in audio tests
Luke Kenneth Casson Leighton [Thu, 27 May 2021 17:44:31 +0000 (18:44 +0100)]
move stack pointer higher up to keep qemu happier in audio tests

3 years agomove SPR set to qemu.py
Luke Kenneth Casson Leighton [Thu, 27 May 2021 17:43:43 +0000 (18:43 +0100)]
move SPR set to qemu.py

3 years agodebug print qemu and simulator LR
Luke Kenneth Casson Leighton [Thu, 27 May 2021 17:37:38 +0000 (18:37 +0100)]
debug print qemu and simulator LR

3 years agoset SPRs inside qemu run_program
Luke Kenneth Casson Leighton [Thu, 27 May 2021 17:32:07 +0000 (18:32 +0100)]
set SPRs inside qemu run_program

3 years agoadd disassembly dump and set_lr to qemu
Luke Kenneth Casson Leighton [Thu, 27 May 2021 17:25:50 +0000 (18:25 +0100)]
add disassembly dump and set_lr to qemu

3 years agohex dump debug
Luke Kenneth Casson Leighton [Thu, 27 May 2021 17:08:37 +0000 (18:08 +0100)]
hex dump debug

3 years agoskip step, program pointing at correct location already
Luke Kenneth Casson Leighton [Thu, 27 May 2021 17:08:29 +0000 (18:08 +0100)]
skip step, program pointing at correct location already

3 years agowhoops yield in setup_one ISACaller
Luke Kenneth Casson Leighton [Thu, 27 May 2021 17:08:12 +0000 (18:08 +0100)]
whoops yield in setup_one ISACaller

3 years agospeed up bytes upload in qemu.py
Luke Kenneth Casson Leighton [Thu, 27 May 2021 16:13:41 +0000 (17:13 +0100)]
speed up bytes upload in qemu.py

3 years agoset PC in pypowersim
Luke Kenneth Casson Leighton [Thu, 27 May 2021 11:26:13 +0000 (12:26 +0100)]
set PC in pypowersim

3 years agopass output dump argument to shell script for audio tests
Luke Kenneth Casson Leighton [Thu, 27 May 2021 11:24:13 +0000 (12:24 +0100)]
pass output dump argument to shell script for audio tests

3 years agoget full qemu list of registers, on each cycle, saves time
Luke Kenneth Casson Leighton [Thu, 27 May 2021 11:15:19 +0000 (12:15 +0100)]
get full qemu list of registers, on each cycle, saves time

3 years agoreport log expected different qemu values rather than all of them
Luke Kenneth Casson Leighton [Thu, 27 May 2021 10:35:11 +0000 (11:35 +0100)]
report log expected different qemu values rather than all of them

3 years agowhoops inverted logic on qemu endian set
Luke Kenneth Casson Leighton [Thu, 27 May 2021 10:30:37 +0000 (11:30 +0100)]
whoops inverted logic on qemu endian set

3 years agoadd setting of qemu GPRs/FPRs in pypowersim
Luke Kenneth Casson Leighton [Thu, 27 May 2021 10:28:38 +0000 (11:28 +0100)]
add setting of qemu GPRs/FPRs in pypowersim

3 years agoslightly messy: qemu goes haywire at the last instruction.
Luke Kenneth Casson Leighton [Thu, 27 May 2021 10:20:05 +0000 (11:20 +0100)]
slightly messy: qemu goes haywire at the last instruction.
reset bigendian to sane value

3 years agooops syntax error
Luke Kenneth Casson Leighton [Thu, 27 May 2021 09:06:37 +0000 (10:06 +0100)]
oops syntax error

3 years agoadd qemu gpr/fpr set/get
Luke Kenneth Casson Leighton [Thu, 27 May 2021 09:04:50 +0000 (10:04 +0100)]
add qemu gpr/fpr set/get

3 years agocreate a register cache for qemu machine interface, very slow
Luke Kenneth Casson Leighton [Thu, 27 May 2021 08:59:53 +0000 (09:59 +0100)]
create a register cache for qemu machine interface, very slow

3 years agoget qemu operational single-step mode, use in pypowersim
Luke Kenneth Casson Leighton [Thu, 27 May 2021 08:51:05 +0000 (09:51 +0100)]
get qemu operational single-step mode, use in pypowersim

3 years agoQoL tuning
Lauri Kasanen [Wed, 26 May 2021 08:56:43 +0000 (11:56 +0300)]
QoL tuning