Closed Bug 693647 Opened 13 years ago Closed 6 years ago

MOPS opcodes were not fully ported from avm2overview

Categories

(Tamarin Graveyard :: Documentation, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX
Future

People

(Reporter: edwsmith, Unassigned)

References

Details

This bug saves content which wasn't fully ported over. The wording and detail are useful, captured here. The opcode numbers need vetting, lf64 and li8 appear duplicated. lf32 (56 0x38) - Load single-precision floating point indirect Pop offset off of the stack. The offset’s value must lie between 0 and the size of the ByteArray which is the Domain’s current domainMemory property. Push the 32-bit floating point number at that offset in the ByteArray onto the stack. lf64 (53 0x35) - Load double-precision floating point indirect Pop offset off of the stack. The offset’s value must lie between 0 and the size of the ByteArray which is the Domain’s current domainMemory property. Push the double value at that offset in the ByteArray onto the stack. li8 (53 0x35) - Load byte indirect. Pop offset off of the stack. The offset’s value must lie between 0 and the size of the ByteArray which is the Domain’s current domainMemory property. Push the byte at that offset in the ByteArray onto the stack. li16 (54 0x36) - Load short indirect Pop offset off of the stack. The offset’s value must lie between 0 and the size of the ByteArray which is the Domain’s current domainMemory property. Push the 16-bit value at that offset in the ByteArray onto the stack. li32 (55 0x37) - Pop offset off of the stack. The offset’s value must lie between 0 and the size of the ByteArray which is the Domain’s current domainMemory property. Push the 32-bit integer value at that offset in the ByteArray onto the stack. sf32 (61 0x3d) - Store single-precision floating point indirect. Pop value and offset off of the stack. The offset’s value must lie between 0 and the size of the ByteArray which is the Domain’s current domainMemory property. Store value as a single-precision (32-bit) floating point number at that offset in the ByteArray. sf64 (61 0x3d) - Store double-precision floating point indirect Pop value and offset off of the stack. The offset’s value must lie between 0 and the size of the ByteArray which is the Domain’s current domainMemory property. Store value as a double-precision (64-bit) floating point number at that offset in the ByteArray. si8 (58 0x3a) - Store byte indirect Pop value and offset off of the stack. The offset’s value must lie between 0 and the size of the ByteArray which is the Domain’s current domainMemory property. Store value as an 8-bit quantity at that offset in the ByteArray. si16 (59 0x3b) - Store short indirect. Pop value and offset off of the stack. The offset’s value must lie between 0 and the size of the ByteArray which is the Domain’s current domainMemory property. Store value as a 16-bit quantity at that offset in the ByteArray si32 (60 0x3c) - Store int indirect. Pop value and offset off of the stack. The offset’s value must lie between 0 and the size of the ByteArray which is the Domain’s current domainMemory property. Store value as a 32-bit integer number at that offset in the ByteArray. The sign-extend bytecodes are misnamed in doc -- they should not have underscores. sxi_1 (80 0x50) - Sign-extend a single-bit value value popped off the stack and sign-extended by shifting left 31 bits and arithmetically shifting right 31 bits. The result is pushed onto the stack. sxi_8 (81 0x51) - Sign-extend an 8-bit value. value popped off the stack and sign-extended by shifting left 24 bits and arithmetically shifting right 24 bits. The result is pushed onto the stack. sxi_16 (82 0x52) - Sign-extend a 16-bit value. value popped off the stack and sign-extended by shifting left 16 bits and arithmetically shifting right 16 bits. The result is pushed onto the stack.
Blocks: avmspec
The prose for range checking looks wrong, presumably for eg si32 the max offset can be at most length-4.
Target Milestone: --- → Future
Tamarin isn't maintained anymore. WONTFIX remaining bugs.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.