You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
t27b port: decode_bitmask and disasm_fp of a64.rs move into a64.t27 (round trip against bitmask_field) #9067
Part of the t27b port (see #6198, epic #8326). t27b must be generated entirely from .t27. cli/t27b/src/a64.rs is almost glue already: the encoders live in specs/tri/t27b/a64.t27. What is left by hand there is the decoding side: decode_bitmask (27 lines of bit arithmetic) and disasm_fp (the floating-point half of the disassembler).
User Scenarios
Given a64.t27 already has bitmask_field (encode), when decode_bitmask moves into the same spec, then a test can check the round trip decode_bitmask(bitmask_field(v)) == v for known logical immediates. That gives the decoder an oracle instead of a restated formula.
Given the hand bodies are deleted from a64.rs, when t27b disassembles its own output (t27b --disasm), then the text is byte-identical to before.
FR-002: Every moved function MUST have at least one test that calls it by name. decode_bitmask MUST be tested by round trip against bitmask_field on at least 4 values: 0x5555555555555555, 0x00ff00ff00ff00ff, 0x0000000000000001 with sf, and 0xfffffffe without sf.
Activity