UNPKG

@awayfl/avm2

Version:

Virtual machine for executing AS3 code

43 lines (42 loc) 2.02 kB
import { Bytecode } from '../../Bytecode'; import { emitInlineStack } from './emitInlineVars'; export function emitDomainMemOppcodes(state) { var z = state.currentOpcode; var stack0 = emitInlineStack(state, 0); var stack1 = emitInlineStack(state, 1); state.emitMain('domainMemory = domainMemory || context.domainMemory;'); switch (z.name) { //http://docs.redtamarin.com/0.4.1T124/avm2/intrinsics/memory/package.html#si32() case Bytecode.SI8: state.emitMain("domainMemory.setInt8(".concat(stack0, ", ").concat(stack1, ")")); break; case Bytecode.SI16: state.emitMain("domainMemory.setInt16(".concat(stack0, ", ").concat(stack1, ", true);")); break; case Bytecode.SI32: state.emitMain("domainMemory.setInt32(".concat(stack0, ", ").concat(stack1, ", true);")); break; case Bytecode.SF32: state.emitMain("domainMemory.setFloat32(".concat(stack0, ", ").concat(stack1, ", true);")); break; case Bytecode.SF64: state.emitMain("domainMemory.setFloat64(".concat(stack0, ", ").concat(stack1, ", true);")); break; //http://docs.redtamarin.com/0.4.1T124/avm2/intrinsics/memory/package.html#li32() case Bytecode.LI8: state.emitMain("".concat(stack0, " = domainMemory.getInt8(").concat(stack0, ")")); break; case Bytecode.LI16: state.emitMain("".concat(stack0, " = getInt16(").concat(stack0, ", true);")); break; case Bytecode.LI32: state.emitMain("".concat(stack0, " = domainMemory.getInt32(").concat(stack0, ", true);")); break; case Bytecode.LF32: state.emitMain("".concat(stack0, " = domainMemory.getFloat32(").concat(stack0, ", true);")); break; case Bytecode.LF64: state.emitMain("".concat(stack0, " = domainMemory.getFloat64(").concat(stack0, ", true);")); break; } }