openpower-isa.git
2 years agoadd svshape2 to ISACaller
Luke Kenneth Casson Leighton [Fri, 2 Sep 2022 17:41:52 +0000 (18:41 +0100)]
add svshape2 to ISACaller
first recognising the persistence mode bit, second as not an illegal op

2 years agoadd svshape2 to sv/trans/svp64.py
Luke Kenneth Casson Leighton [Fri, 2 Sep 2022 15:33:01 +0000 (16:33 +0100)]
add svshape2 to sv/trans/svp64.py
https://bugs.libre-soc.org/show_bug.cgi?id=911

2 years agoadd svshape2 to list of instructions in power_enums.py
Luke Kenneth Casson Leighton [Fri, 2 Sep 2022 15:29:11 +0000 (16:29 +0100)]
add svshape2 to list of instructions in power_enums.py

2 years agowhoops bit 25 is sk not vf in svshape2. matches with svindex
Luke Kenneth Casson Leighton [Fri, 2 Sep 2022 15:25:52 +0000 (16:25 +0100)]
whoops bit 25 is sk not vf in svshape2. matches with svindex

2 years agodisallow reserved SVrm values in svshape, svp64.py
Luke Kenneth Casson Leighton [Fri, 2 Sep 2022 15:16:47 +0000 (16:16 +0100)]
disallow reserved SVrm values in svshape, svp64.py

2 years agoadd svshape2 (stub pseudocode) fields, Form, and CSV file minor_22.csv
Luke Kenneth Casson Leighton [Fri, 2 Sep 2022 14:43:17 +0000 (15:43 +0100)]
add svshape2 (stub pseudocode) fields, Form, and CSV file minor_22.csv
https://bugs.libre-soc.org/show_bug.cgi?id=911

also added missing SVI-Form (svindex) SVd and rmm which are exactly
the same.  svshape2 is weird, it is a hybrid of svindex and svshapes

2 years agoadd explicit 13 patterns for svshape which make a hole for svshape2
Luke Kenneth Casson Leighton [Fri, 2 Sep 2022 14:40:59 +0000 (15:40 +0100)]
add explicit 13 patterns for svshape which make a hole for svshape2
svshape2 will take up 2 out of the 16 4-bit patterns so svshape has
to explicitly list them. this takes advantage of the new feature
added by ghostmansd: opcode merging, commit d5ec553e768

2 years agoshuffle down numbering after SVM to make room for SVM2
Luke Kenneth Casson Leighton [Fri, 2 Sep 2022 14:37:50 +0000 (15:37 +0100)]
shuffle down numbering after SVM to make room for SVM2
power_enums.py Form needs to make space for SVM2
(and svshape is no longer temporary)

2 years agoadd fix of out_sel in power_decoder.py formal proof
Luke Kenneth Casson Leighton [Fri, 2 Sep 2022 12:32:45 +0000 (13:32 +0100)]
add fix of out_sel in power_decoder.py formal proof
but there are others.  basically the list of enums needs to be
automatically listed and put into the matches

2 years agofix RCOE.RC_ONLY in formal test_decoder2.py
Luke Kenneth Casson Leighton [Fri, 2 Sep 2022 12:19:25 +0000 (13:19 +0100)]
fix RCOE.RC_ONLY in formal test_decoder2.py

2 years agopower_insn: drop custom Record representation
Dmitry Selyutin [Fri, 2 Sep 2022 08:43:06 +0000 (11:43 +0300)]
power_insn: drop custom Record representation

2 years agopower_insn: support opcode merging
Dmitry Selyutin [Thu, 1 Sep 2022 19:55:01 +0000 (22:55 +0300)]
power_insn: support opcode merging

2 years agopower_insn: support AA matching
Dmitry Selyutin [Thu, 1 Sep 2022 14:50:54 +0000 (17:50 +0300)]
power_insn: support AA matching

2 years agopower_insn: support LK matching
Dmitry Selyutin [Thu, 1 Sep 2022 13:05:36 +0000 (16:05 +0300)]
power_insn: support LK matching

2 years agopower_insn: refactor name matching algorithm
Dmitry Selyutin [Thu, 1 Sep 2022 12:55:39 +0000 (15:55 +0300)]
power_insn: refactor name matching algorithm

2 years agopower_insn: refactor databases composition
Dmitry Selyutin [Thu, 1 Sep 2022 15:04:24 +0000 (18:04 +0300)]
power_insn: refactor databases composition

2 years agopower_insn: refactor operands
Dmitry Selyutin [Thu, 1 Sep 2022 14:29:07 +0000 (17:29 +0300)]
power_insn: refactor operands

2 years agopower_insn: introduce binutils-like representation
Dmitry Selyutin [Thu, 1 Sep 2022 12:40:16 +0000 (15:40 +0300)]
power_insn: introduce binutils-like representation

2 years agopysvp64dis: refactor instruction loading
Dmitry Selyutin [Thu, 1 Sep 2022 12:32:38 +0000 (15:32 +0300)]
pysvp64dis: refactor instruction loading

2 years agopower_fields: allow comparing references
Dmitry Selyutin [Thu, 1 Sep 2022 12:32:06 +0000 (15:32 +0300)]
power_fields: allow comparing references

2 years agopower_insn: disable disassembly for prefixed instructions
Dmitry Selyutin [Thu, 1 Sep 2022 12:02:14 +0000 (15:02 +0300)]
power_insn: disable disassembly for prefixed instructions

2 years agopower_insn: switch target_addr to real fields
Dmitry Selyutin [Thu, 1 Sep 2022 11:54:11 +0000 (14:54 +0300)]
power_insn: switch target_addr to real fields

2 years agopower_insn: support GPR and FPR operands
Dmitry Selyutin [Wed, 31 Aug 2022 10:45:32 +0000 (13:45 +0300)]
power_insn: support GPR and FPR operands

2 years agopower_insn: support target_addr operands
Dmitry Selyutin [Wed, 31 Aug 2022 10:36:48 +0000 (13:36 +0300)]
power_insn: support target_addr operands

2 years agopower_insn: hide operand classes
Dmitry Selyutin [Wed, 31 Aug 2022 10:13:44 +0000 (13:13 +0300)]
power_insn: hide operand classes

2 years agopower_insn: introduce operand disassembly
Dmitry Selyutin [Wed, 31 Aug 2022 08:37:31 +0000 (11:37 +0300)]
power_insn: introduce operand disassembly

2 years agopysvp64dis: disassemble word instruction operands
Dmitry Selyutin [Tue, 30 Aug 2022 19:32:05 +0000 (22:32 +0300)]
pysvp64dis: disassemble word instruction operands

2 years agopower_insn: support operands
Dmitry Selyutin [Tue, 30 Aug 2022 19:06:00 +0000 (22:06 +0300)]
power_insn: support operands

2 years agomake tests pass again
Jacob Lifshay [Fri, 2 Sep 2022 06:34:11 +0000 (23:34 -0700)]
make tests pass again

2 years agoadd formal_test_temp to .gitignore
Jacob Lifshay [Fri, 2 Sep 2022 06:33:39 +0000 (23:33 -0700)]
add formal_test_temp to .gitignore

2 years agoformat code
Jacob Lifshay [Fri, 2 Sep 2022 06:32:02 +0000 (23:32 -0700)]
format code

2 years agorename proof_decoder*.py -> test_decoder*.py so it gets run by pytest
Jacob Lifshay [Fri, 2 Sep 2022 06:06:56 +0000 (23:06 -0700)]
rename proof_decoder*.py -> test_decoder*.py so it gets run by pytest

2 years agoghostmansd found that extswsli is incorrectly declared
Luke Kenneth Casson Leighton [Thu, 1 Sep 2022 22:56:59 +0000 (23:56 +0100)]
ghostmansd found that extswsli is incorrectly declared
as extswsli RA,RS,SH as XS-Form, where a quick check shows that
there *is* no field "SH" in XS-Form. there *is* however a field "sh"
in XS-Form and the pseudocode *correctly* uses it.

that then led to a review of all the other uses of SH and sh,
which also led to spotting that ME and MB are *also* mis-used
(MD-Form and MDS-Form) and need lower-casing in the operand
declaration but are *also* correct in the pseudo-code
`

2 years agoremove hard-coded list of operations in DecodeOE which rc_only
Luke Kenneth Casson Leighton [Thu, 1 Sep 2022 17:11:28 +0000 (18:11 +0100)]
remove hard-coded list of operations in DecodeOE which
had been bugging the hell out of me for some time

2 years agomissed rlwm* in conversion to RC_ONLY
Luke Kenneth Casson Leighton [Thu, 1 Sep 2022 17:10:55 +0000 (18:10 +0100)]
missed rlwm* in conversion to RC_ONLY

2 years agoupdate CSV files marking those instructions that are RC-only as such
Luke Kenneth Casson Leighton [Thu, 1 Sep 2022 16:16:20 +0000 (17:16 +0100)]
update CSV files marking those instructions that are RC-only as such
there were actually some bugs here, entries that had not been added to
DecodeOE such as (all!) fp operations (which have no OE=1 variant)
and the new AV abs/min/max instructions

2 years agodrat have to use RCOE.RC not RCOE.RC_OE for now otherwise
Luke Kenneth Casson Leighton [Thu, 1 Sep 2022 15:54:39 +0000 (16:54 +0100)]
drat have to use RCOE.RC not RCOE.RC_OE for now otherwise
all CSV entries have to change

2 years agoadd missing case name RC_OE RC_ONLY in power_insn.py
Luke Kenneth Casson Leighton [Thu, 1 Sep 2022 15:51:06 +0000 (16:51 +0100)]
add missing case name RC_OE RC_ONLY in power_insn.py

2 years agorename RC to RCOE in power_insns.py
Luke Kenneth Casson Leighton [Thu, 1 Sep 2022 15:49:29 +0000 (16:49 +0100)]
rename RC to RCOE in power_insns.py

2 years agorename FLAGS to RCOE
Luke Kenneth Casson Leighton [Thu, 1 Sep 2022 15:47:42 +0000 (16:47 +0100)]
rename FLAGS to RCOE

2 years agobegin rename of RC to FLAGS and add RC_OE/RC_ONLY
Luke Kenneth Casson Leighton [Thu, 1 Sep 2022 15:42:14 +0000 (16:42 +0100)]
begin rename of RC to FLAGS and add RC_OE/RC_ONLY

2 years agorename RC to FLAGS
Luke Kenneth Casson Leighton [Thu, 1 Sep 2022 15:36:49 +0000 (16:36 +0100)]
rename RC to FLAGS

2 years agobegin doing RC_OE / RC_ONLY
Luke Kenneth Casson Leighton [Thu, 1 Sep 2022 15:34:15 +0000 (16:34 +0100)]
begin doing RC_OE / RC_ONLY

2 years agosvbranch.mdwn: replace target_addr with BD
Dmitry Selyutin [Thu, 1 Sep 2022 14:40:39 +0000 (17:40 +0300)]
svbranch.mdwn: replace target_addr with BD

2 years agopagereader: skip empty dynamic and static operands
Dmitry Selyutin [Thu, 1 Sep 2022 14:20:02 +0000 (17:20 +0300)]
pagereader: skip empty dynamic and static operands

2 years agomove fsins/fcoss to fptrans.mdwn -- they are transcendental not SV instructions
Jacob Lifshay [Thu, 1 Sep 2022 08:17:09 +0000 (01:17 -0700)]
move fsins/fcoss to fptrans.mdwn -- they are transcendental not SV instructions

2 years agodon't install recommended packages in CI sv_maxu_works
Jacob Lifshay [Thu, 1 Sep 2022 07:48:48 +0000 (00:48 -0700)]
don't install recommended packages in CI

this should save a bunch of time

2 years agoremove support for unnamed arguments for @_custom_insns functions
Jacob Lifshay [Thu, 1 Sep 2022 07:38:38 +0000 (00:38 -0700)]
remove support for unnamed arguments for @_custom_insns functions

unnamed arguments support was broken anyway, it would call with
`fields` last rather than first, due to how partial() works.

2 years agosilence default LogKind for CI, to avoid pytest running out of memory due to storing...
Jacob Lifshay [Wed, 31 Aug 2022 04:24:09 +0000 (21:24 -0700)]
silence default LogKind for CI, to avoid pytest running out of memory due to storing stdout

(cherry picked from commit bec04597888ebf0ca61b852b63cf1efa41ed5f79)

2 years agoremove dead code, sv.svstep and sv.fcoss are now handled by CUSTOM_INSNS
Jacob Lifshay [Tue, 30 Aug 2022 07:51:16 +0000 (00:51 -0700)]
remove dead code, sv.svstep and sv.fcoss are now handled by CUSTOM_INSNS

(cherry picked from commit cfd0215fc6f716317eb22d04d965028eb794965b)

2 years agoswitch ci tests to verbose
Jacob Lifshay [Tue, 30 Aug 2022 07:50:28 +0000 (00:50 -0700)]
switch ci tests to verbose

(cherry picked from commit 4053433d420915d9cb777f62fdc10d0b29178dda)

2 years agomake sv.instr use CUSTOM_INSNS by default for assembling instr
Jacob Lifshay [Tue, 30 Aug 2022 07:32:21 +0000 (00:32 -0700)]
make sv.instr use CUSTOM_INSNS by default for assembling instr

(cherry picked from commit 9be3b61b6a3037fdcf087f692e9145678e571a35)

2 years agouse a decorator for constructing CUSTOM_INSNS
Jacob Lifshay [Tue, 30 Aug 2022 06:14:31 +0000 (23:14 -0700)]
use a decorator for constructing CUSTOM_INSNS

(cherry picked from commit 63fd4ebc03ea0a7d51a1cf8d215affe45e0f0b33)

2 years agofix comment location
Jacob Lifshay [Tue, 30 Aug 2022 06:12:52 +0000 (23:12 -0700)]
fix comment location

(cherry picked from commit 2ba62128ffb197e41a9a7b518a915ebe839d8a71)

2 years agoformat code
Jacob Lifshay [Tue, 30 Aug 2022 05:53:52 +0000 (22:53 -0700)]
format code

(cherry picked from commit 61faa7c3c443a260eaeb58b111ebd464a2031e06)

2 years agoRevert "silence default LogKind for CI, to avoid pytest running out of memory due...
Jacob Lifshay [Thu, 1 Sep 2022 06:38:43 +0000 (23:38 -0700)]
Revert "silence default LogKind for CI, to avoid pytest running out of memory due to storing stdout"

lkcl rebased my commit, mushing multiple changes into one commit in the process

This reverts commit aea0a4d637b04e54a9e942883e5e31dd338ca3f2.

2 years agotest less cases of utf-8 validation, to avoid taking forever
Jacob Lifshay [Wed, 31 Aug 2022 04:54:39 +0000 (21:54 -0700)]
test less cases of utf-8 validation, to avoid taking forever

2 years agosilence default LogKind for CI, to avoid pytest running out of memory due to storing...
Jacob Lifshay [Wed, 31 Aug 2022 04:24:09 +0000 (21:24 -0700)]
silence default LogKind for CI, to avoid pytest running out of memory due to storing stdout

2 years agotarget_addr in b and bc pseudo-code has no corresponding
Luke Kenneth Casson Leighton [Wed, 31 Aug 2022 13:33:56 +0000 (14:33 +0100)]
target_addr in b and bc pseudo-code has no corresponding
field in Section 1.6.  actually, target_addr=LI for b and target_addr=BI
for bc
therefore make the pseudo-code actually do exactly that

2 years agobcd.mdwn: fix cbcdtd operands
Dmitry Selyutin [Tue, 30 Aug 2022 18:41:05 +0000 (21:41 +0300)]
bcd.mdwn: fix cbcdtd operands

2 years agobcd.mdwn: fix cdtbcd operands
Dmitry Selyutin [Tue, 30 Aug 2022 18:36:36 +0000 (21:36 +0300)]
bcd.mdwn: fix cdtbcd operands

2 years agofixedlogical.mdwn: fix bpermd operands
Dmitry Selyutin [Tue, 30 Aug 2022 18:29:51 +0000 (21:29 +0300)]
fixedlogical.mdwn: fix bpermd operands

2 years agopagereader: validate input
Dmitry Selyutin [Tue, 30 Aug 2022 12:27:35 +0000 (15:27 +0300)]
pagereader: validate input

2 years agoremove space from arguments in popcnt, should not have been there
Luke Kenneth Casson Leighton [Tue, 30 Aug 2022 16:14:25 +0000 (17:14 +0100)]
remove space from arguments in popcnt, should not have been there

2 years agoRevert "format code"
Luke Kenneth Casson Leighton [Tue, 30 Aug 2022 13:21:14 +0000 (14:21 +0100)]
Revert "format code"

This reverts commit 61faa7c3c443a260eaeb58b111ebd464a2031e06.

2 years agoRevert "fix comment location"
Luke Kenneth Casson Leighton [Tue, 30 Aug 2022 13:21:06 +0000 (14:21 +0100)]
Revert "fix comment location"

This reverts commit 2ba62128ffb197e41a9a7b518a915ebe839d8a71.

2 years agoRevert "use a decorator for constructing CUSTOM_INSNS"
Luke Kenneth Casson Leighton [Tue, 30 Aug 2022 13:20:49 +0000 (14:20 +0100)]
Revert "use a decorator for constructing CUSTOM_INSNS"

This reverts commit 63fd4ebc03ea0a7d51a1cf8d215affe45e0f0b33.

2 years agoRevert "make sv.instr use CUSTOM_INSNS by default for assembling instr"
Luke Kenneth Casson Leighton [Tue, 30 Aug 2022 13:20:38 +0000 (14:20 +0100)]
Revert "make sv.instr use CUSTOM_INSNS by default for assembling instr"

This reverts commit 9be3b61b6a3037fdcf087f692e9145678e571a35.

2 years agoRevert "switch ci tests to verbose"
Luke Kenneth Casson Leighton [Tue, 30 Aug 2022 13:20:29 +0000 (14:20 +0100)]
Revert "switch ci tests to verbose"

This reverts commit 4053433d420915d9cb777f62fdc10d0b29178dda.

2 years agoRevert "remove dead code, sv.svstep and sv.fcoss are now handled by CUSTOM_INSNS"
Luke Kenneth Casson Leighton [Tue, 30 Aug 2022 13:20:20 +0000 (14:20 +0100)]
Revert "remove dead code, sv.svstep and sv.fcoss are now handled by CUSTOM_INSNS"

This reverts commit cfd0215fc6f716317eb22d04d965028eb794965b.

2 years agoRevert "remove fuck-up by programmerjake not reading the specification for svstep"
Luke Kenneth Casson Leighton [Tue, 30 Aug 2022 13:20:08 +0000 (14:20 +0100)]
Revert "remove fuck-up by programmerjake not reading the specification for svstep"

This reverts commit 1a06aea1fe266a75af713ac9815306696a1ffa4e.

2 years agoremove fuck-up by programmerjake not reading the specification for svstep
Luke Kenneth Casson Leighton [Tue, 30 Aug 2022 13:10:12 +0000 (14:10 +0100)]
remove fuck-up by programmerjake not reading the specification for svstep
https://libre-soc.org/openpower/sv/svstep/

2 years agocorrect the bitmanip pseudocode to remove spaces from instruction declarations
Luke Kenneth Casson Leighton [Tue, 30 Aug 2022 12:22:50 +0000 (13:22 +0100)]
correct the bitmanip pseudocode to remove spaces from instruction declarations
ternlogi RT,RA,RB,TLI not ternlog RT,   RA,     RB,     TLI

2 years agopagereader.ISA: support iteration
Dmitry Selyutin [Tue, 30 Aug 2022 10:01:26 +0000 (13:01 +0300)]
pagereader.ISA: support iteration

2 years agopysvp64dis: stop interation upon empty suffix
Dmitry Selyutin [Tue, 30 Aug 2022 08:57:39 +0000 (11:57 +0300)]
pysvp64dis: stop interation upon empty suffix

2 years agopower_insn: fix Fields methods
Dmitry Selyutin [Tue, 30 Aug 2022 08:47:44 +0000 (11:47 +0300)]
power_insn: fix Fields methods

2 years agoselectable_int: support slicing by iterable
Dmitry Selyutin [Tue, 30 Aug 2022 08:47:16 +0000 (11:47 +0300)]
selectable_int: support slicing by iterable

2 years agoremove dead code, sv.svstep and sv.fcoss are now handled by CUSTOM_INSNS
Jacob Lifshay [Tue, 30 Aug 2022 07:51:16 +0000 (00:51 -0700)]
remove dead code, sv.svstep and sv.fcoss are now handled by CUSTOM_INSNS

2 years agoswitch ci tests to verbose
Jacob Lifshay [Tue, 30 Aug 2022 07:50:28 +0000 (00:50 -0700)]
switch ci tests to verbose

2 years agomake sv.instr use CUSTOM_INSNS by default for assembling instr
Jacob Lifshay [Tue, 30 Aug 2022 07:32:21 +0000 (00:32 -0700)]
make sv.instr use CUSTOM_INSNS by default for assembling instr

2 years agouse a decorator for constructing CUSTOM_INSNS
Jacob Lifshay [Tue, 30 Aug 2022 06:14:31 +0000 (23:14 -0700)]
use a decorator for constructing CUSTOM_INSNS

2 years agofix comment location
Jacob Lifshay [Tue, 30 Aug 2022 06:12:52 +0000 (23:12 -0700)]
fix comment location

2 years agoformat code
Jacob Lifshay [Tue, 30 Aug 2022 05:53:52 +0000 (22:53 -0700)]
format code

2 years agosvp64dis: simplify database lookups
Dmitry Selyutin [Tue, 30 Aug 2022 07:29:23 +0000 (10:29 +0300)]
svp64dis: simplify database lookups

2 years agopower_insn: fix representation
Dmitry Selyutin [Tue, 30 Aug 2022 07:08:52 +0000 (10:08 +0300)]
power_insn: fix representation

2 years agopower_insn: remove obsolete comment
Dmitry Selyutin [Tue, 30 Aug 2022 07:07:47 +0000 (10:07 +0300)]
power_insn: remove obsolete comment

2 years agopysvp64dis: remove obsolete imports
Dmitry Selyutin [Tue, 30 Aug 2022 07:06:54 +0000 (10:06 +0300)]
pysvp64dis: remove obsolete imports

2 years agopower_insn: rename unit field to function
Dmitry Selyutin [Mon, 29 Aug 2022 18:16:18 +0000 (21:16 +0300)]
power_insn: rename unit field to function

2 years agopower_insn: convert PO field name to lower case
Dmitry Selyutin [Mon, 29 Aug 2022 16:54:00 +0000 (19:54 +0300)]
power_insn: convert PO field name to lower case

2 years agoadd a "ffmadds." test, not yet actually checking Rc=1
Luke Kenneth Casson Leighton [Mon, 29 Aug 2022 20:37:34 +0000 (21:37 +0100)]
add a "ffmadds." test, not yet actually checking Rc=1

2 years agoremove insertion of instruction as a comment
Luke Kenneth Casson Leighton [Mon, 29 Aug 2022 19:44:52 +0000 (20:44 +0100)]
remove insertion of instruction as a comment

2 years agogaah what a frickin mess
Luke Kenneth Casson Leighton [Mon, 29 Aug 2022 19:42:02 +0000 (20:42 +0100)]
gaah what a frickin mess

2 years agofix test_issuer.py nosvp64 mul, "mullw." was getting
Luke Kenneth Casson Leighton [Mon, 29 Aug 2022 19:33:14 +0000 (20:33 +0100)]
fix test_issuer.py nosvp64 mul, "mullw." was getting
XER.SO override into handle_comparison when it should not

2 years agosv_binutils: hack
Dmitry Selyutin [Mon, 29 Aug 2022 04:50:27 +0000 (07:50 +0300)]
sv_binutils: hack

2 years agosv_binutils: remove unused imports
Dmitry Selyutin [Mon, 29 Aug 2022 04:46:05 +0000 (07:46 +0300)]
sv_binutils: remove unused imports

2 years agosv_binutils: generate instruction getters/setters
Dmitry Selyutin [Sun, 28 Aug 2022 21:47:22 +0000 (00:47 +0300)]
sv_binutils: generate instruction getters/setters

2 years agosv_binutils: perform massive refactoring
Dmitry Selyutin [Sun, 28 Aug 2022 17:48:23 +0000 (20:48 +0300)]
sv_binutils: perform massive refactoring

2 years agoselectable_int: deprecate obsolete mappings
Dmitry Selyutin [Sun, 28 Aug 2022 08:22:03 +0000 (11:22 +0300)]
selectable_int: deprecate obsolete mappings

2 years agosv_binutils: deprecate obsolete fields
Dmitry Selyutin [Sun, 28 Aug 2022 11:24:16 +0000 (14:24 +0300)]
sv_binutils: deprecate obsolete fields

2 years agocaller.py: switch to new fields
Dmitry Selyutin [Sun, 28 Aug 2022 08:21:12 +0000 (11:21 +0300)]
caller.py: switch to new fields