Bug 1253 - change openpower-isa.git to use v3.1B definition of sync instruction and L and SC fields.
Summary: change openpower-isa.git to use v3.1B definition of sync instruction and L an...
Status: DEFERRED
Alias: None
Product: Libre-SOC's first SoC
Classification: Unclassified
Component: Source Code (show other bugs)
Version: unspecified
Hardware: PC Linux
: --- normal
Assignee: Luke Kenneth Casson Leighton
URL:
Depends on:
Blocks:
 
Reported: 2024-01-16 09:31 GMT by Jacob Lifshay
Modified: 2024-01-16 09:39 GMT (History)
4 users (show)

See Also:
NLnet milestone: ---
total budget (EUR) for completion of task and all subtasks: 0
budget (EUR) for this task, excluding subtasks' budget: 0
parent task for budget allocation:
child tasks for budget allocation:
The table of payments (in EUR) for this task; TOML format:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jacob Lifshay 2024-01-16 09:31:04 GMT
as part of fixing bug #1252, I made the following commit:
commit 95d3aa48bd080b75f7301784581a0c7541c3e7fc
Author: Jacob Lifshay <programmerjake@gmail.com>
Date:   Tue Jan 16 01:18:58 2024 -0800

    fixedsync.mdwn: change sync from v3.1B version to v3.0B version
    
    to use the v3.1B version requires fixing fields.text to use the new
    L and SC fields, which requires deciphering all the places where the
    current L (named L2) field is used and making sure they'll be correct still.
    
    using the old interpretation of sync should be correct, but less optimal,
    assuming OpenPower got their backwards compatibility correct.

TODO: figure out if all uses of the L (named L2) field can be correctly expanded to 3 bits, or if any Libre-SOC instructions should still use the 2-bit version somewhere (in which case, the Libre-SOC instructions need to change to a new field name)
TODO: make changes to match v3.1B: expand L to 3 bit, add SC, and adjust `sync` definition
Comment 1 Jacob Lifshay 2024-01-16 09:39:00 GMT
I initially attempted to just expand L (named L2) and add SC, but ran into the issue that there are some entries in fields.text that I have no idea why they're there:

# 1.6.7 X-FORM
    |0     |6 |7|8|9  |10  |11|12|13  |15|16|17     |20|21    |31  |
    | PO   |  /// | L2     | /|     E    |     ///     |   XO |  / |

I couldn't find this in the v3.1B spec or find the E field anywhere else in openpower-isa.git, so I gave up for now and just switched sync to the v3.0B version, which should work well enough for now.