Closed
Bug 693647
Opened 13 years ago
Closed 6 years ago
MOPS opcodes were not fully ported from avm2overview
Categories
(Tamarin Graveyard :: Documentation, defect)
Tamarin Graveyard
Documentation
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.
Comment 1•13 years ago
|
||
The prose for range checking looks wrong, presumably for eg si32 the max offset can be at most length-4.
Reporter | ||
Updated•13 years ago
|
Target Milestone: --- → Future
Comment 2•6 years ago
|
||
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.
Description
•