openpower-isa.git
17 months agocomment TODO on Load-Fault in strncpy example
Luke Kenneth Casson Leighton [Sun, 7 May 2023 09:44:36 +0000 (10:44 +0100)]
comment TODO on Load-Fault in strncpy example

17 months agoadd stub reset_xflags function
Luke Kenneth Casson Leighton [Sun, 7 May 2023 09:12:41 +0000 (10:12 +0100)]
add stub reset_xflags function

17 months agominor_19.csv: convert RA to RA0 for minmax
Dmitry Selyutin [Sun, 7 May 2023 08:13:46 +0000 (11:13 +0300)]
minor_19.csv: convert RA to RA0 for minmax

17 months agoadd FPSCR to Test API (ExpectedState, SimState). untested
Luke Kenneth Casson Leighton [Sat, 6 May 2023 13:31:13 +0000 (14:31 +0100)]
add FPSCR to Test API (ExpectedState, SimState). untested

17 months agoadd FPSCR to ISACaller
Luke Kenneth Casson Leighton [Sat, 6 May 2023 13:26:39 +0000 (14:26 +0100)]
add FPSCR to ISACaller

17 months agonotes: make FPSCR definition more like MSR (see openpower/consts.py)
Luke Kenneth Casson Leighton [Sat, 6 May 2023 13:22:44 +0000 (14:22 +0100)]
notes: make FPSCR definition more like MSR (see openpower/consts.py)

17 months agodrastically simplify fpscr.py. extreme overcomplexity introducing
Luke Kenneth Casson Leighton [Sat, 6 May 2023 13:21:04 +0000 (14:21 +0100)]
drastically simplify fpscr.py. extreme overcomplexity introducing
an entirely new paradigm - without discussion - creates a maintenance
headache we cannot afford

17 months agoadd comment about why the new check has been added
Luke Kenneth Casson Leighton [Sat, 6 May 2023 09:07:28 +0000 (10:07 +0100)]
add comment about why the new check has been added

17 months agoget table down to under 80 chars per line
Luke Kenneth Casson Leighton [Sat, 6 May 2023 09:02:43 +0000 (10:02 +0100)]
get table down to under 80 chars per line

17 months agofix fpscr table parser error reporting
Jacob Lifshay [Sat, 6 May 2023 03:38:22 +0000 (20:38 -0700)]
fix fpscr table parser error reporting

17 months agoadd FPSCRState and FPSCRRecord and a FPSCR smoke-test
Jacob Lifshay [Sat, 6 May 2023 03:34:18 +0000 (20:34 -0700)]
add FPSCRState and FPSCRRecord and a FPSCR smoke-test

17 months agoadd initial fmv/fcvt tests, though they're broken due to FPSCR being unimplemented
Jacob Lifshay [Fri, 5 May 2023 02:19:29 +0000 (19:19 -0700)]
add initial fmv/fcvt tests, though they're broken due to FPSCR being unimplemented

17 months agoadd check that generated .py files are in .gitignore
Jacob Lifshay [Fri, 5 May 2023 00:55:15 +0000 (17:55 -0700)]
add check that generated .py files are in .gitignore

17 months agoverify fields.txt forms' field separators ('|') line up with headers'
Jacob Lifshay [Fri, 5 May 2023 00:34:27 +0000 (17:34 -0700)]
verify fields.txt forms' field separators ('|') line up with headers'

17 months agomerge maddrs/msubrs, unit tests changed accordingly
Konstantinos Margaritis [Thu, 4 May 2023 15:38:33 +0000 (15:38 +0000)]
merge maddrs/msubrs, unit tests changed accordingly

17 months agoAdd 2 more instructions to help with 2-coeff butterfly
Konstantinos Margaritis [Thu, 4 May 2023 14:11:31 +0000 (14:11 +0000)]
Add 2 more instructions to help with 2-coeff butterfly
fdct_round_shift(a*c1 +/- b*c2)
They are to be used complementary to maddsubrs, so one can now
do this calculation in 3 instructions.
Added some unit tests to demonstrate the operation.

17 months agouse a simpler way to do the same thing
Konstantinos Margaritis [Mon, 1 May 2023 18:05:10 +0000 (18:05 +0000)]
use a simpler way to do the same thing

17 months agoHandle large 64-bit values, but only the low 64-bit half of the multiplication, add...
Konstantinos Margaritis [Sun, 30 Apr 2023 21:29:47 +0000 (21:29 +0000)]
Handle large 64-bit values, but only the low 64-bit half of the multiplication, add more tests

17 months agodo proper rounding, no rounding for SH=0 (for now), add tests
Konstantinos Margaritis [Sun, 30 Apr 2023 18:10:35 +0000 (18:10 +0000)]
do proper rounding, no rounding for SH=0 (for now), add tests

17 months agoResult needs rounding so add +1 to prod*
Konstantinos Margaritis [Sat, 29 Apr 2023 15:29:32 +0000 (15:29 +0000)]
Result needs rounding so add +1 to prod*

17 months agohandle negatives correctly by adding sign bit to final result
Konstantinos Margaritis [Fri, 28 Apr 2023 16:41:22 +0000 (16:41 +0000)]
handle negatives correctly by adding sign bit to final result

17 months agoalmost there, positive values work, negative values differ by 1
Konstantinos Margaritis [Fri, 28 Apr 2023 16:02:26 +0000 (16:02 +0000)]
almost there, positive values work, negative values differ by 1

17 months agouse proper register sizes
Konstantinos Margaritis [Fri, 28 Apr 2023 11:48:48 +0000 (11:48 +0000)]
use proper register sizes

17 months agoMULS instead of MUL, RA instead of RT in in1
Konstantinos Margaritis [Fri, 28 Apr 2023 11:41:02 +0000 (11:41 +0000)]
MULS instead of MUL, RA instead of RT in in1

17 months agoTurns out DCTI-Form is another variant of A-Form
Konstantinos Margaritis [Fri, 28 Apr 2023 11:26:11 +0000 (11:26 +0000)]
Turns out DCTI-Form is another variant of A-Form

17 months agominor fixes in pseudocode, CONST_UI->CONST_SH in minor_22.csv
Konstantinos Margaritis [Fri, 28 Apr 2023 11:10:24 +0000 (11:10 +0000)]
minor fixes in pseudocode, CONST_UI->CONST_SH in minor_22.csv

17 months agoWIP: maddsubrs initial approach
Konstantinos Margaritis [Fri, 28 Apr 2023 09:46:45 +0000 (09:46 +0000)]
WIP: maddsubrs initial approach

17 months agomaddsubrs no longer has CR0
Luke Kenneth Casson Leighton [Thu, 4 May 2023 14:16:06 +0000 (15:16 +0100)]
maddsubrs no longer has CR0

17 months agofix forgotten stuff from last commit
Jacob Lifshay [Thu, 4 May 2023 04:41:31 +0000 (21:41 -0700)]
fix forgotten stuff from last commit

17 months agoadd fcvt/fmv -- no tests yet
Jacob Lifshay [Thu, 4 May 2023 04:27:06 +0000 (21:27 -0700)]
add fcvt/fmv -- no tests yet

17 months agosupport calling functions with no args in pseudocode
Jacob Lifshay [Thu, 4 May 2023 04:25:42 +0000 (21:25 -0700)]
support calling functions with no args in pseudocode

17 months agoshow actual mdwn source location in backtrace when parser raises SyntaxError
Jacob Lifshay [Thu, 4 May 2023 04:15:45 +0000 (21:15 -0700)]
show actual mdwn source location in backtrace when parser raises SyntaxError

17 months agomove Assign to parser class in prep for improving syntax error reporting
Jacob Lifshay [Thu, 4 May 2023 04:08:49 +0000 (21:08 -0700)]
move Assign to parser class in prep for improving syntax error reporting

17 months agoadd all fmv*/fcvt* fields
Jacob Lifshay [Thu, 4 May 2023 01:55:29 +0000 (18:55 -0700)]
add all fmv*/fcvt* fields

17 months agosplit XO-Form's RA field in prep for adding fcvttg[o][s]
Jacob Lifshay [Thu, 4 May 2023 01:48:46 +0000 (18:48 -0700)]
split XO-Form's RA field in prep for adding fcvttg[o][s]

also reformat cuz we can

17 months agoremove testing with INSNDB=true since that now does nothing different
Jacob Lifshay [Thu, 4 May 2023 01:13:13 +0000 (18:13 -0700)]
remove testing with INSNDB=true since that now does nothing different

17 months agocomment fmin*/fmax* since they're being replaced with fminmax and to make space for...
Jacob Lifshay [Thu, 4 May 2023 01:08:46 +0000 (18:08 -0700)]
comment fmin*/fmax* since they're being replaced with fminmax and to make space for fmv/fcvt

17 months agofix non-zero assembly operands being zero
Jacob Lifshay [Thu, 4 May 2023 01:04:36 +0000 (18:04 -0700)]
fix non-zero assembly operands being zero

17 months agoupdate SV csvs
Jacob Lifshay [Thu, 4 May 2023 00:13:24 +0000 (17:13 -0700)]
update SV csvs

17 months agoadd links between decode and issue
Luke Kenneth Casson Leighton [Tue, 2 May 2023 18:53:45 +0000 (19:53 +0100)]
add links between decode and issue

17 months agoreserve writes in Issue Phase, add comment
Luke Kenneth Casson Leighton [Tue, 2 May 2023 18:49:50 +0000 (19:49 +0100)]
reserve writes in Issue Phase, add comment

17 months agoadd Issue phase and writes/reads possible in CPU
Luke Kenneth Casson Leighton [Tue, 2 May 2023 18:20:42 +0000 (19:20 +0100)]
add Issue phase and writes/reads possible in CPU

17 months agoadd Decode and CPU classes
Luke Kenneth Casson Leighton [Tue, 2 May 2023 18:02:03 +0000 (19:02 +0100)]
add Decode and CPU classes

17 months agoadd quick preamble header
Luke Kenneth Casson Leighton [Tue, 2 May 2023 17:53:15 +0000 (18:53 +0100)]
add quick preamble header

17 months agoupdate comments and correct retiring, remove registers that have been written
Luke Kenneth Casson Leighton [Tue, 2 May 2023 17:52:14 +0000 (18:52 +0100)]
update comments and correct retiring, remove registers that have been written

17 months agostart on cycle-accurate model of inorder core
Luke Kenneth Casson Leighton [Tue, 2 May 2023 17:44:12 +0000 (18:44 +0100)]
start on cycle-accurate model of inorder core

17 months agoffnmadds converted to 3-operand
Luke Kenneth Casson Leighton [Sun, 30 Apr 2023 19:08:19 +0000 (20:08 +0100)]
ffnmadds converted to 3-operand

17 months agoconverted ffnmadds to 3-operand
Luke Kenneth Casson Leighton [Sun, 30 Apr 2023 19:07:04 +0000 (20:07 +0100)]
converted ffnmadds to 3-operand

17 months agoffmsubs number of operands reduced to match ffmadds
Luke Kenneth Casson Leighton [Sun, 30 Apr 2023 19:00:53 +0000 (20:00 +0100)]
ffmsubs number of operands reduced to match ffmadds

17 months agopower_insn: forbid zero for non-zero operands
Dmitry Selyutin [Sun, 30 Apr 2023 18:50:19 +0000 (21:50 +0300)]
power_insn: forbid zero for non-zero operands

17 months agopower_insn: drop registers remapping hack
Dmitry Selyutin [Sun, 30 Apr 2023 18:38:04 +0000 (21:38 +0300)]
power_insn: drop registers remapping hack

17 months agopower_insn: support int and index opcode methods
Dmitry Selyutin [Thu, 27 Apr 2023 19:08:39 +0000 (22:08 +0300)]
power_insn: support int and index opcode methods

17 months agoreduce number of operands to ffmadds as well
Luke Kenneth Casson Leighton [Fri, 28 Apr 2023 15:40:49 +0000 (16:40 +0100)]
reduce number of operands to ffmadds as well

17 months agoprefix-sum remap works!
Jacob Lifshay [Fri, 28 Apr 2023 08:49:30 +0000 (01:49 -0700)]
prefix-sum remap works!

17 months agochange order to tuple in remap preduce tests/demos to match rest of simulator
Jacob Lifshay [Fri, 28 Apr 2023 08:48:03 +0000 (01:48 -0700)]
change order to tuple in remap preduce tests/demos to match rest of simulator

17 months agofix <u and >u with int arguments
Jacob Lifshay [Fri, 28 Apr 2023 08:47:12 +0000 (01:47 -0700)]
fix <u and >u with int arguments

17 months agoreduce fdmadds down to only 3 operands, RT-overwrite, to save on operand
Luke Kenneth Casson Leighton [Fri, 28 Apr 2023 07:53:40 +0000 (08:53 +0100)]
reduce fdmadds down to only 3 operands, RT-overwrite, to save on operand
space.  it is still 3-in 2-out but FRC is now FRA

17 months agoadd SVSHAPE setup for parallel/prefix but it refuses to work
Luke Kenneth Casson Leighton [Thu, 27 Apr 2023 23:42:14 +0000 (00:42 +0100)]
add SVSHAPE setup for parallel/prefix but it refuses to work
correctly right now because SVyd is utterly borked. needs investigating

17 months agoadd implicit rs detection for maddsubrs
Luke Kenneth Casson Leighton [Thu, 27 Apr 2023 20:01:28 +0000 (21:01 +0100)]
add implicit rs detection for maddsubrs

17 months agolink in new parallel-prefix REMAP schedule
Luke Kenneth Casson Leighton [Thu, 27 Apr 2023 09:23:27 +0000 (10:23 +0100)]
link in new parallel-prefix REMAP schedule

17 months agoadd scan/prefix-sum support to copy of parallel-reduce remap iterator
Jacob Lifshay [Thu, 27 Apr 2023 05:09:19 +0000 (22:09 -0700)]
add scan/prefix-sum support to copy of parallel-reduce remap iterator

17 months agoformat remap_preduce_yield.py
Jacob Lifshay [Thu, 27 Apr 2023 02:27:58 +0000 (19:27 -0700)]
format remap_preduce_yield.py

17 months agopower_insn: deprecate ff/pr common code
Dmitry Selyutin [Wed, 26 Apr 2023 11:36:21 +0000 (14:36 +0300)]
power_insn: deprecate ff/pr common code

17 months agopower_insn: deprecate PR specifier
Dmitry Selyutin [Wed, 26 Apr 2023 11:31:56 +0000 (14:31 +0300)]
power_insn: deprecate PR specifier

17 months agopower_insn: deprecate normal PR mode
Dmitry Selyutin [Wed, 26 Apr 2023 11:24:18 +0000 (14:24 +0300)]
power_insn: deprecate normal PR mode

17 months agopysvp64dis: deprecate pr tests
Dmitry Selyutin [Wed, 26 Apr 2023 11:37:35 +0000 (14:37 +0300)]
pysvp64dis: deprecate pr tests

17 months agopysvp64asm: deprecate pr tests
Dmitry Selyutin [Wed, 26 Apr 2023 11:37:25 +0000 (14:37 +0300)]
pysvp64asm: deprecate pr tests

17 months agopower_enums: sync forms
Dmitry Selyutin [Wed, 26 Apr 2023 16:29:56 +0000 (19:29 +0300)]
power_enums: sync forms

17 months agoadd CW and CW2 Form
Luke Kenneth Casson Leighton [Tue, 25 Apr 2023 17:36:31 +0000 (18:36 +0100)]
add CW and CW2 Form
needed for both #1035 and #1067

17 months agocheck RC1, add data-dependent fail-first LD/ST test
Luke Kenneth Casson Leighton [Sat, 15 Apr 2023 16:32:29 +0000 (17:32 +0100)]
check RC1, add data-dependent fail-first LD/ST test

17 months agoreplace min/max[su][.] with minmax[.]
Jacob Lifshay [Tue, 25 Apr 2023 06:49:19 +0000 (23:49 -0700)]
replace min/max[su][.] with minmax[.]

17 months agoadd unofficial and comment2 columns to minor_19.csv
Jacob Lifshay [Tue, 25 Apr 2023 06:47:20 +0000 (23:47 -0700)]
add unofficial and comment2 columns to minor_19.csv

17 months agoadd MM-form
Jacob Lifshay [Tue, 25 Apr 2023 06:45:18 +0000 (23:45 -0700)]
add MM-form

17 months agofix bug where pseudo-code assignments modify more than just the variable being assign...
Jacob Lifshay [Tue, 25 Apr 2023 06:15:11 +0000 (23:15 -0700)]
fix bug where pseudo-code assignments modify more than just the variable being assigned to

17 months agorename/convert/merge XLCASTU/XLCASTS to EXTZXL/EXTSXL
Jacob Lifshay [Fri, 21 Apr 2023 03:23:48 +0000 (20:23 -0700)]
rename/convert/merge XLCASTU/XLCASTS to EXTZXL/EXTSXL

17 months agorewrite all uses of XLCASTU/XLCASTS
Jacob Lifshay [Fri, 21 Apr 2023 03:15:48 +0000 (20:15 -0700)]
rewrite all uses of XLCASTU/XLCASTS

17 months agoadd EXTZ since it's in PowerISA v3.1B (see lbz for an example)
Jacob Lifshay [Fri, 21 Apr 2023 03:13:57 +0000 (20:13 -0700)]
add EXTZ since it's in PowerISA v3.1B (see lbz for an example)

17 months agofix EXTSXL/XLCASTU/XLCASTS when inputs are python ints
Jacob Lifshay [Thu, 20 Apr 2023 04:00:51 +0000 (21:00 -0700)]
fix EXTSXL/XLCASTU/XLCASTS when inputs are python ints

17 months agouse proper cast function
Jacob Lifshay [Thu, 20 Apr 2023 03:36:09 +0000 (20:36 -0700)]
use proper cast function

17 months agochange XLEN-ification
Jacob Lifshay [Thu, 20 Apr 2023 01:12:32 +0000 (18:12 -0700)]
change XLEN-ification

See bug #1064

17 months agochange extsb/h/w to scale based on XLEN rather than extending from a fixed width
Jacob Lifshay [Thu, 20 Apr 2023 00:58:19 +0000 (17:58 -0700)]
change extsb/h/w to scale based on XLEN rather than extending from a fixed width

See https://bugs.libre-soc.org/show_bug.cgi?id=1061

17 months agoadd shaddw
Jacob Lifshay [Tue, 18 Apr 2023 04:26:00 +0000 (21:26 -0700)]
add shaddw

17 months agospelling fix
Jacob Lifshay [Tue, 18 Apr 2023 04:25:40 +0000 (21:25 -0700)]
spelling fix

17 months agomedia: migrate to binutils
Dmitry Selyutin [Wed, 12 Apr 2023 18:16:18 +0000 (21:16 +0300)]
media: migrate to binutils

17 months agosv_binutils: fix broken script
Dmitry Selyutin [Mon, 10 Apr 2023 16:11:23 +0000 (19:11 +0300)]
sv_binutils: fix broken script

17 months agoadd power_decode_svp64_rm.py capability for new LD/ST format
Luke Kenneth Casson Leighton [Thu, 6 Apr 2023 12:26:20 +0000 (13:26 +0100)]
add power_decode_svp64_rm.py capability for new LD/ST format
https://bugs.libre-soc.org/show_bug.cgi?id=1047

17 months agoadd quick test_pysvp64dis.py of LD/ST data-dependent fail-first
Luke Kenneth Casson Leighton [Tue, 4 Apr 2023 15:10:02 +0000 (16:10 +0100)]
add quick test_pysvp64dis.py of LD/ST data-dependent fail-first

17 months agohttps://bugs.libre-soc.org/show_bug.cgi?id=1047
Luke Kenneth Casson Leighton [Tue, 4 Apr 2023 14:26:49 +0000 (15:26 +0100)]
https://bugs.libre-soc.org/show_bug.cgi?id=1047
start sorting out power_insn.py to conform to new LD/ST spec.
Data-Dependent Fail-First gets top priority, pred-result is dropped,
saturation removed from LDST-IDX leaving space for "els" to be added
with its own bit

17 months agowhitespace cleanup (80 char per line hard limit)
Luke Kenneth Casson Leighton [Tue, 4 Apr 2023 13:18:02 +0000 (14:18 +0100)]
whitespace cleanup (80 char per line hard limit)

17 months agocomment about massive unnecessary code-duplication that should not
Luke Kenneth Casson Leighton [Tue, 4 Apr 2023 13:02:13 +0000 (14:02 +0100)]
comment about massive unnecessary code-duplication that should not
have been done in the way it was, but it is a good step along the right
lines because it a gets the job done by b producing the right answers
that c get us to the simplified path in an incremental fashion.
am adding this note in the source code to make sure that readers are aware

17 months agofix setvl unit test which happened to use deprecated
Luke Kenneth Casson Leighton [Tue, 4 Apr 2023 12:48:30 +0000 (13:48 +0100)]
fix setvl unit test which happened to use deprecated
DCT schedule

17 months agofix add-like CA/OV outputs
Jacob Lifshay [Thu, 30 Mar 2023 07:55:20 +0000 (00:55 -0700)]
fix add-like CA/OV outputs

this is a massive kludge, but that's what lkcl requested due to time constraints

17 months agofix broken test case
Jacob Lifshay [Thu, 30 Mar 2023 07:54:22 +0000 (00:54 -0700)]
fix broken test case

forgot to set the expected value to the input value for inputs that aren't outputs

17 months agoadd addex to simulator
Jacob Lifshay [Thu, 30 Mar 2023 07:02:56 +0000 (00:02 -0700)]
add addex to simulator

works, except it has incorrect CA/OV outputs, which I'll fix as part of fixing all add-like ops

17 months agofix typo when getting pseudo-code output variables
Jacob Lifshay [Thu, 30 Mar 2023 05:00:43 +0000 (22:00 -0700)]
fix typo when getting pseudo-code output variables

17 months agoswitch to testing Rc=1 variants
Jacob Lifshay [Thu, 30 Mar 2023 04:38:02 +0000 (21:38 -0700)]
switch to testing Rc=1 variants

17 months agofix `neg[o].` causing the simulator to raise TypeError
Jacob Lifshay [Thu, 30 Mar 2023 04:30:53 +0000 (21:30 -0700)]
fix `neg[o].` causing the simulator to raise TypeError

17 months agoadd case_nego_
Jacob Lifshay [Thu, 30 Mar 2023 03:03:43 +0000 (20:03 -0700)]
add case_nego_

17 months agorename le -> lt since CR bits are lt, gt, eq, and so, not le
Jacob Lifshay [Thu, 30 Mar 2023 02:02:19 +0000 (19:02 -0700)]
rename le -> lt since CR bits are lt, gt, eq, and so, not le

17 months agoremove DCT/iDCT redundant modes which require less-efficient cos tables
Luke Kenneth Casson Leighton [Wed, 29 Mar 2023 09:08:56 +0000 (10:08 +0100)]
remove DCT/iDCT redundant modes which require less-efficient cos tables
turns out that values are often repeated so why waste space especially
when the svshape instruction is under pressure
this goes into https://libre-soc.org/openpower/sv/rfc/ls009/