openpower-isa.git
2 years agowhitespace cleanup
Luke Kenneth Casson Leighton [Mon, 2 May 2022 15:40:49 +0000 (16:40 +0100)]
whitespace cleanup

2 years agore-run sv_analysis to add mode field to csvs
Luke Kenneth Casson Leighton [Mon, 2 May 2022 14:53:28 +0000 (15:53 +0100)]
re-run sv_analysis to add mode field to csvs

2 years agoadd missing SVP64 RM "Mode" field which qualifies instructions
Luke Kenneth Casson Leighton [Mon, 2 May 2022 14:53:10 +0000 (15:53 +0100)]
add missing SVP64 RM "Mode" field which qualifies instructions
as either NORMAL, LDST, BRANCH, or CROPS

2 years agohigher bits need to be checked for overflow not lower
Luke Kenneth Casson Leighton [Fri, 29 Apr 2022 09:47:03 +0000 (10:47 +0100)]
higher bits need to be checked for overflow not lower
after swapping RC and RA, RC is now in the higher bits of divmod2du

2 years agoinvert RC and RA, making divmod2du more like divdu
Luke Kenneth Casson Leighton [Fri, 29 Apr 2022 09:33:43 +0000 (10:33 +0100)]
invert RC and RA, making divmod2du more like divdu
not divdeu

2 years agoaccidentally added svfixedarith.mdwn to wiki rather than
Luke Kenneth Casson Leighton [Wed, 27 Apr 2022 12:53:24 +0000 (13:53 +0100)]
accidentally added svfixedarith.mdwn to wiki rather than
as an underlay in openpower-isa repo

2 years agosv_binutils: fix fields enum c_decl method
Dmitry Selyutin [Mon, 25 Apr 2022 20:28:08 +0000 (20:28 +0000)]
sv_binutils: fix fields enum c_decl method

2 years agosv_binutils: fix fields enum naming
Dmitry Selyutin [Mon, 25 Apr 2022 20:20:22 +0000 (20:20 +0000)]
sv_binutils: fix fields enum naming

2 years agosv_binutils: comment about enum aliases
Dmitry Selyutin [Mon, 25 Apr 2022 20:15:41 +0000 (20:15 +0000)]
sv_binutils: comment about enum aliases

2 years agosv_binutils: fix missing fields aliases
Dmitry Selyutin [Mon, 25 Apr 2022 20:14:50 +0000 (20:14 +0000)]
sv_binutils: fix missing fields aliases

2 years agosv_binutils: wrap SVP64_FIELD_SET macro
Dmitry Selyutin [Mon, 25 Apr 2022 19:50:13 +0000 (19:50 +0000)]
sv_binutils: wrap SVP64_FIELD_SET macro

2 years agosv_binutils: undefine temporary macros
Dmitry Selyutin [Mon, 25 Apr 2022 19:40:32 +0000 (19:40 +0000)]
sv_binutils: undefine temporary macros

2 years agosv_binutils: refactor fields generation
Dmitry Selyutin [Mon, 25 Apr 2022 19:31:01 +0000 (19:31 +0000)]
sv_binutils: refactor fields generation

2 years agosv_binutils: support any arguments in c_value method
Dmitry Selyutin [Mon, 25 Apr 2022 11:17:46 +0000 (11:17 +0000)]
sv_binutils: support any arguments in c_value method

2 years agosv_binutils: convert c_var methods to simple functions
Dmitry Selyutin [Mon, 25 Apr 2022 09:25:57 +0000 (09:25 +0000)]
sv_binutils: convert c_var methods to simple functions

2 years agosv_binutils: introduce Bitmap class
Dmitry Selyutin [Mon, 25 Apr 2022 09:13:36 +0000 (09:13 +0000)]
sv_binutils: introduce Bitmap class

2 years agoselectable_int: remove debug prints
Dmitry Selyutin [Mon, 25 Apr 2022 07:38:25 +0000 (07:38 +0000)]
selectable_int: remove debug prints

2 years agosv_binutils: fix metaclass arguments
Dmitry Selyutin [Mon, 25 Apr 2022 07:14:57 +0000 (07:14 +0000)]
sv_binutils: fix metaclass arguments

2 years agoselectable_int: derive SelectableIntMapping on per-class basis
Dmitry Selyutin [Wed, 20 Apr 2022 18:49:20 +0000 (18:49 +0000)]
selectable_int: derive SelectableIntMapping on per-class basis

2 years agosv_binutils: generate fields tables
Dmitry Selyutin [Wed, 20 Apr 2022 12:27:57 +0000 (12:27 +0000)]
sv_binutils: generate fields tables

2 years agosv_binutils: introduce Enum c_name property
Dmitry Selyutin [Wed, 20 Apr 2022 11:45:30 +0000 (11:45 +0000)]
sv_binutils: introduce Enum c_name property

2 years agosv_binutils: generate entries and num_entries via classes
Dmitry Selyutin [Wed, 20 Apr 2022 10:56:29 +0000 (10:56 +0000)]
sv_binutils: generate entries and num_entries via classes

2 years agosv_binutils: allow to instantiate integers from symbols
Dmitry Selyutin [Wed, 20 Apr 2022 09:36:56 +0000 (09:36 +0000)]
sv_binutils: allow to instantiate integers from symbols

2 years agosv_binutils: introduce fields generation
Dmitry Selyutin [Wed, 20 Apr 2022 09:16:33 +0000 (09:16 +0000)]
sv_binutils: introduce fields generation

2 years agoisa.caller: support default SVP64PrefixFields initialization
Dmitry Selyutin [Wed, 20 Apr 2022 09:10:47 +0000 (09:10 +0000)]
isa.caller: support default SVP64PrefixFields initialization

2 years agosv_binutils: simplify array syntax
Dmitry Selyutin [Wed, 20 Apr 2022 01:09:37 +0000 (01:09 +0000)]
sv_binutils: simplify array syntax

2 years agosv_binutils: introduce uint8_t and size_t; drop integer metaclass
Dmitry Selyutin [Wed, 20 Apr 2022 00:30:07 +0000 (00:30 +0000)]
sv_binutils: introduce uint8_t and size_t; drop integer metaclass

2 years agosv_binutils: deprecate Opcode classes
Dmitry Selyutin [Wed, 20 Apr 2022 00:24:28 +0000 (00:24 +0000)]
sv_binutils: deprecate Opcode classes

2 years agosv_binutils: introduce prefix and suffix in c_var method
Dmitry Selyutin [Wed, 20 Apr 2022 00:18:30 +0000 (00:18 +0000)]
sv_binutils: introduce prefix and suffix in c_var method

2 years agosv_binutils: introduce Array class
Dmitry Selyutin [Tue, 19 Apr 2022 23:10:35 +0000 (23:10 +0000)]
sv_binutils: introduce Array class

2 years agosv_binutils: use c_typedef more often
Dmitry Selyutin [Tue, 19 Apr 2022 22:58:08 +0000 (22:58 +0000)]
sv_binutils: use c_typedef more often

2 years agosv_binutils: integrate c_typedef into base metaclass
Dmitry Selyutin [Tue, 19 Apr 2022 22:46:15 +0000 (22:46 +0000)]
sv_binutils: integrate c_typedef into base metaclass

2 years agosv_binutils: introduce Integer class
Dmitry Selyutin [Tue, 19 Apr 2022 22:28:59 +0000 (22:28 +0000)]
sv_binutils: introduce Integer class

2 years agosv_binutils: inherit metaclasses correctly
Dmitry Selyutin [Tue, 19 Apr 2022 22:25:10 +0000 (22:25 +0000)]
sv_binutils: inherit metaclasses correctly

2 years agosv_binutils: inherit Struct; drop code duplication
Dmitry Selyutin [Tue, 19 Apr 2022 21:45:47 +0000 (21:45 +0000)]
sv_binutils: inherit Struct; drop code duplication

2 years agosv_binutils: introduce Struct helper class
Dmitry Selyutin [Tue, 19 Apr 2022 21:27:33 +0000 (21:27 +0000)]
sv_binutils: introduce Struct helper class

2 years agosv_binutils: follow cls arguments naming conventions
Dmitry Selyutin [Tue, 19 Apr 2022 20:28:38 +0000 (20:28 +0000)]
sv_binutils: follow cls arguments naming conventions

2 years agoselectable_int: simplify SelectableIntMapping class
Dmitry Selyutin [Tue, 19 Apr 2022 19:56:58 +0000 (19:56 +0000)]
selectable_int: simplify SelectableIntMapping class

2 years agosv_binutils: support custom enum tags
Dmitry Selyutin [Tue, 19 Apr 2022 19:22:08 +0000 (19:22 +0000)]
sv_binutils: support custom enum tags

2 years agosv_binutils: simplify enum metaclass
Dmitry Selyutin [Tue, 19 Apr 2022 19:21:24 +0000 (19:21 +0000)]
sv_binutils: simplify enum metaclass

2 years agoisa.caller: support whole integer pseudo-field
Dmitry Selyutin [Tue, 19 Apr 2022 17:43:41 +0000 (17:43 +0000)]
isa.caller: support whole integer pseudo-field

2 years agoisa.caller: refactor SVP64PrefixFields class
Dmitry Selyutin [Tue, 19 Apr 2022 14:50:01 +0000 (14:50 +0000)]
isa.caller: refactor SVP64PrefixFields class

2 years agoisa.caller: refactor SVP64RMFields class
Dmitry Selyutin [Tue, 19 Apr 2022 14:42:30 +0000 (14:42 +0000)]
isa.caller: refactor SVP64RMFields class

2 years agoselectable_int: introduce SelectableIntMapping class
Dmitry Selyutin [Tue, 19 Apr 2022 14:39:05 +0000 (14:39 +0000)]
selectable_int: introduce SelectableIntMapping class

2 years agoselectable_int: make FieldSelectableInt.__repr__ more flexible
Dmitry Selyutin [Tue, 19 Apr 2022 12:57:37 +0000 (12:57 +0000)]
selectable_int: make FieldSelectableInt.__repr__ more flexible

2 years agoselectable_int: make SelectableInt.__repr__ more flexible
Dmitry Selyutin [Tue, 19 Apr 2022 12:47:24 +0000 (12:47 +0000)]
selectable_int: make SelectableInt.__repr__ more flexible

2 years agoselectable_int: allow range in FieldSelectableInt
Dmitry Selyutin [Tue, 19 Apr 2022 12:43:41 +0000 (12:43 +0000)]
selectable_int: allow range in FieldSelectableInt

2 years agosv_binutils: introduce opsel mappings
Dmitry Selyutin [Thu, 14 Apr 2022 11:35:26 +0000 (11:35 +0000)]
sv_binutils: introduce opsel mappings

2 years agodouble-equals in setup.py dependencies
Luke Kenneth Casson Leighton [Fri, 15 Apr 2022 04:39:08 +0000 (05:39 +0100)]
double-equals in setup.py dependencies

2 years agoadd description of modes, copied from specs
Luke Kenneth Casson Leighton [Tue, 12 Apr 2022 16:32:33 +0000 (17:32 +0100)]
add description of modes, copied from specs

2 years agoRevert "sv_binutils: generate register categories mapping"
Dmitry Selyutin [Tue, 12 Apr 2022 16:30:45 +0000 (16:30 +0000)]
Revert "sv_binutils: generate register categories mapping"

This reverts commit b2943e73797b6544e15ea43a14cf57b2275509d6.

2 years agoadd extra links to modes
Luke Kenneth Casson Leighton [Tue, 12 Apr 2022 16:20:28 +0000 (17:20 +0100)]
add extra links to modes

2 years agorequire pygdbmi 0.9.0.3
Luke Kenneth Casson Leighton [Tue, 12 Apr 2022 13:45:23 +0000 (14:45 +0100)]
require pygdbmi 0.9.0.3

2 years agoattempt to get QemuController operational
Luke Kenneth Casson Leighton [Tue, 12 Apr 2022 10:22:52 +0000 (11:22 +0100)]
attempt to get QemuController operational
(have not used it in a long time)

2 years agosv_binutils: generate register categories mapping
Dmitry Selyutin [Sun, 10 Apr 2022 19:52:00 +0000 (19:52 +0000)]
sv_binutils: generate register categories mapping

2 years agoadd SPDX-License-Identifier rather than License:
Jacob Lifshay [Fri, 8 Apr 2022 23:31:51 +0000 (16:31 -0700)]
add SPDX-License-Identifier rather than License:

2 years agoformat code
Jacob Lifshay [Fri, 8 Apr 2022 23:30:51 +0000 (16:30 -0700)]
format code

2 years agowhitespace (80 char limit)
Luke Kenneth Casson Leighton [Thu, 7 Apr 2022 11:05:19 +0000 (12:05 +0100)]
whitespace (80 char limit)

2 years agocomment 64-bit of predicate (all 1s)
Luke Kenneth Casson Leighton [Thu, 7 Apr 2022 11:04:59 +0000 (12:04 +0100)]
comment 64-bit of predicate (all 1s)

2 years agoclarify comments on EXTRA2 exceptions for encoding regnums
Luke Kenneth Casson Leighton [Wed, 6 Apr 2022 19:17:16 +0000 (20:17 +0100)]
clarify comments on EXTRA2 exceptions for encoding regnums

2 years agotest commit 2
Jacob Lifshay [Wed, 30 Mar 2022 02:14:15 +0000 (19:14 -0700)]
test commit 2

2 years agotest commit for mirroring
Jacob Lifshay [Wed, 30 Mar 2022 02:00:30 +0000 (19:00 -0700)]
test commit for mirroring

2 years agoRevert "add WIP text_tree_graph.py"
Luke Kenneth Casson Leighton [Sat, 26 Mar 2022 11:20:21 +0000 (11:20 +0000)]
Revert "add WIP text_tree_graph.py"

This reverts commit f684acfa32ba1ef8c52abc5876da2b73696862dd.

damage to installations has been enacted by failing to run unit
tests which would easily confirm that adding __init__.py
was inappropriate

2 years agoRevert "add python generator version of tree reduction"
Luke Kenneth Casson Leighton [Sat, 26 Mar 2022 11:19:11 +0000 (11:19 +0000)]
Revert "add python generator version of tree reduction"

This reverts commit 2fe0ce6285864927127d8226171c566886b87e89.

damage has occurred to installations by failing to run unit
tests which easily show that adding __init__.py causes imports to fail

2 years agoadd python generator version of tree reduction
Jacob Lifshay [Fri, 25 Mar 2022 12:59:36 +0000 (05:59 -0700)]
add python generator version of tree reduction

2 years agoadd WIP text_tree_graph.py
Jacob Lifshay [Fri, 25 Mar 2022 12:59:08 +0000 (05:59 -0700)]
add WIP text_tree_graph.py

2 years agosv_binutils: introduce constants class
Dmitry Selyutin [Sun, 27 Feb 2022 21:51:04 +0000 (21:51 +0000)]
sv_binutils: introduce constants class

2 years agoopenpower.consts: replace botchify with metaclass
Dmitry Selyutin [Sun, 27 Feb 2022 17:28:12 +0000 (17:28 +0000)]
openpower.consts: replace botchify with metaclass

2 years agoopenpower.const: switch to enum class
Dmitry Selyutin [Sun, 27 Feb 2022 16:16:23 +0000 (16:16 +0000)]
openpower.const: switch to enum class

2 years agosv_binutils: use metaclass for enumerations
Dmitry Selyutin [Sun, 27 Feb 2022 15:50:37 +0000 (15:50 +0000)]
sv_binutils: use metaclass for enumerations

2 years agoadd default XLEN=64 as temporary hack
Luke Kenneth Casson Leighton [Mon, 28 Feb 2022 17:59:46 +0000 (17:59 +0000)]
add default XLEN=64 as temporary hack

2 years agohmm something wrong with negative branch
Luke Kenneth Casson Leighton [Mon, 31 Jan 2022 12:08:14 +0000 (12:08 +0000)]
hmm something wrong with negative branch

2 years agoadd rldimi test case
Jacob Lifshay [Thu, 24 Feb 2022 02:39:09 +0000 (18:39 -0800)]
add rldimi test case

2 years agosv_binutils: consider RC
Dmitry Selyutin [Mon, 31 Jan 2022 19:05:17 +0000 (19:05 +0000)]
sv_binutils: consider RC

2 years agosv_binutils: refactor parsing
Dmitry Selyutin [Mon, 31 Jan 2022 19:00:11 +0000 (19:00 +0000)]
sv_binutils: refactor parsing

2 years agosv_binutils: drop obsolete code
Dmitry Selyutin [Mon, 31 Jan 2022 17:45:10 +0000 (17:45 +0000)]
sv_binutils: drop obsolete code

2 years agoRevert "sv_binutils: introduce per-record validity flag"
Dmitry Selyutin [Sat, 29 Jan 2022 16:36:02 +0000 (16:36 +0000)]
Revert "sv_binutils: introduce per-record validity flag"

This reverts commit 3b5e6816766ea7f52e99938edb47bf0e7cb8dd77.

Since we decided to use a separate hash, and it can check for duplicate
records, there's no need to keep track of duplicates.

2 years agosv_binutils: introduce per-record validity flag
Dmitry Selyutin [Tue, 25 Jan 2022 19:49:44 +0000 (19:49 +0000)]
sv_binutils: introduce per-record validity flag

2 years agosv_binutils: mark already visited instructions
Dmitry Selyutin [Tue, 25 Jan 2022 19:54:52 +0000 (19:54 +0000)]
sv_binutils: mark already visited instructions

2 years agosv_binutils: drop opcode structure
Dmitry Selyutin [Tue, 25 Jan 2022 18:47:26 +0000 (18:47 +0000)]
sv_binutils: drop opcode structure

2 years agorename wb_get_classic
Luke Kenneth Casson Leighton [Fri, 28 Jan 2022 02:52:32 +0000 (02:52 +0000)]
rename wb_get_classic

2 years agodoh, self.srr1 not srr1 (local variable)
Luke Kenneth Casson Leighton [Mon, 24 Jan 2022 21:42:46 +0000 (21:42 +0000)]
doh, self.srr1 not srr1 (local variable)

2 years agoblech, add horrible hack: a length parameter to LDSTException
Luke Kenneth Casson Leighton [Mon, 24 Jan 2022 21:42:24 +0000 (21:42 +0000)]
blech, add horrible hack: a length parameter to LDSTException

2 years agoremove read of SRR1 for TRAP pipeline, pass via LDSTException
Luke Kenneth Casson Leighton [Mon, 24 Jan 2022 21:33:39 +0000 (21:33 +0000)]
remove read of SRR1 for TRAP pipeline, pass via LDSTException

2 years agoadd SRR1 to LDSTException
Luke Kenneth Casson Leighton [Mon, 24 Jan 2022 21:10:43 +0000 (21:10 +0000)]
add SRR1 to LDSTException

2 years agoadd extra bc regression test
Luke Kenneth Casson Leighton [Mon, 24 Jan 2022 21:10:31 +0000 (21:10 +0000)]
add extra bc regression test

2 years agosv_binutils: split svp64_record structure (bits only)
Dmitry Selyutin [Sun, 23 Jan 2022 19:24:00 +0000 (19:24 +0000)]
sv_binutils: split svp64_record structure (bits only)

2 years agosv_binutils: consider opcode whenever names match
Dmitry Selyutin [Sun, 23 Jan 2022 18:22:42 +0000 (18:22 +0000)]
sv_binutils: consider opcode whenever names match

2 years agosv_binutils: split insns by names
Dmitry Selyutin [Sun, 23 Jan 2022 11:59:24 +0000 (11:59 +0000)]
sv_binutils: split insns by names

2 years agosv_binutils: determine the longest name
Dmitry Selyutin [Sun, 23 Jan 2022 11:45:01 +0000 (11:45 +0000)]
sv_binutils: determine the longest name

2 years agosv_binutils: fix ppc-svp64-opc.c contents
Dmitry Selyutin [Sun, 23 Jan 2022 11:04:54 +0000 (11:04 +0000)]
sv_binutils: fix ppc-svp64-opc.c contents

2 years agosv_binutils: fix _missing_ enum method
Dmitry Selyutin [Sun, 23 Jan 2022 11:02:02 +0000 (11:02 +0000)]
sv_binutils: fix _missing_ enum method

2 years agosv_binutils: follow binutils coding style
Dmitry Selyutin [Sun, 23 Jan 2022 10:33:30 +0000 (10:33 +0000)]
sv_binutils: follow binutils coding style

2 years agosv_binutils: output header guard
Dmitry Selyutin [Sun, 23 Jan 2022 10:33:27 +0000 (10:33 +0000)]
sv_binutils: output header guard

2 years agosv_binutils: follow binutils naming convention for header
Dmitry Selyutin [Sun, 23 Jan 2022 10:33:20 +0000 (10:33 +0000)]
sv_binutils: follow binutils naming convention for header

2 years agoadd test for setting TB SPR, fix decode map for STATE regs
Luke Kenneth Casson Leighton [Fri, 21 Jan 2022 00:10:11 +0000 (00:10 +0000)]
add test for setting TB SPR, fix decode map for STATE regs

2 years agotrap types memory exception (TT.MEMEXC) instead of TT.PRIV
Luke Kenneth Casson Leighton [Wed, 19 Jan 2022 18:38:48 +0000 (18:38 +0000)]
trap types memory exception (TT.MEMEXC) instead of TT.PRIV
which stops SRR1 bit 45 being set by mistake

2 years agosv_binutils: fix link to script in disclaimer
Dmitry Selyutin [Wed, 19 Jan 2022 17:53:21 +0000 (17:53 +0000)]
sv_binutils: fix link to script in disclaimer

2 years agoadd spr-to-state conversion, and support for state1 in PowerDecoder2
Luke Kenneth Casson Leighton [Wed, 19 Jan 2022 15:55:30 +0000 (15:55 +0000)]
add spr-to-state conversion, and support for state1 in PowerDecoder2

2 years agosee soc/fu/trap/main_stage.py trap() function, and:
Luke Kenneth Casson Leighton [Tue, 18 Jan 2022 13:44:45 +0000 (13:44 +0000)]
see soc/fu/trap/main_stage.py trap() function, and:
https://libre-soc.org/irclog/%23libre-soc.2022-01-18.log.html#t2022-01-18T13:21:25
bits of SRR1 need to be preserved on an interrupt, which means that
PowerDecoder2 must schedule a read of SRR1.  the Power ISA spec
is extremely obscure and obtuse on which bits must be preserved,
therefore it is just easier to copy microwatt behaviour