Documentation conflict for Linked List Look-up syllable
GoogleCodeExporter opened this issue · 2 comments
GoogleCodeExporter commented
The B5500 Reference Manual states that the field used for comparing link words
is [9:24] (Algol bit numbering), but the B5500 Processor Technical Manual
states it is [18:15] (Algol numbering -- it actually states the field is
30=>16, which is hardware numbering).
Assume for now that the Reference Manual is correct, as [9:24] appears to be
used in several places in the MCP by LLL operations. This means that the
comparison field would be the mantissa portion of the word, which makes sense.
Original issue reported on code.google.com by paul.kimpel@digm.com
on 3 Mar 2013 at 3:18
GoogleCodeExporter commented
Finally found the LLL documentation in the B5281 Processor Training Manual (it
was hidden with SSF under the Index syllable in section 3.32 and not mentioned
in the TOC).
LLL uses the full 39-bit mantissa adder to compare words from memory in the B
register with the test word in the A register. It complements [9:39] in the A
register and then checks for adder overflow as each word in the list is brought
into B. Overflow indicates B.[9:39] >= A.[9:39] (considering the value of A
before it's complemented), which stops the search.
The discussion of bits 30=>16 in the hardware manuals appears to be oriented to
how LLL was intended to be used, not how it actually worked.
This issue is resolved. The emulator is doing the comparison correctly (if not
the way the hardware actually did it).
Original comment by paul.kimpel@digm.com
on 3 Mar 2013 at 4:23
- Changed state: Done
GoogleCodeExporter commented
Confirmed.
Original comment by paul.kimpel@digm.com
on 29 Dec 2013 at 4:40
- Changed state: Verified