* Added NOOP, POP, POPV, POPQ, DUP, DUPV, DUPQ instructions.
* Placeholders for POPS, POPL, POPIP, POPBP, POPSP, POPSLR, DUPS, DUPL0.1-prestable
parent
ea63400741
commit
57dc34b23f
|
@ -13,27 +13,117 @@ namespace libLSL
|
|||
byte ins = nextInstruction();
|
||||
lslOpcodes code = (lslOpcodes)ins;
|
||||
|
||||
Object arg1;
|
||||
Object arg2;
|
||||
|
||||
switch (code)
|
||||
{
|
||||
case lslOpcodes.OP_NOOP:
|
||||
break;
|
||||
|
||||
case lslOpcodes.OP_POP:
|
||||
popBytes(4);
|
||||
break;
|
||||
|
||||
case lslOpcodes.OP_POPS:
|
||||
case lslOpcodes.OP_POPL:
|
||||
// Do Stuff
|
||||
break;
|
||||
|
||||
case lslOpcodes.OP_POPV:
|
||||
popBytes(12);
|
||||
break;
|
||||
case lslOpcodes.OP_POPQ:
|
||||
popBytes(16);
|
||||
break;
|
||||
|
||||
case lslOpcodes.OP_POPARG:
|
||||
popBytes((Int32)arg1);
|
||||
break;
|
||||
|
||||
case lslOpcodes.OP_POPIP:
|
||||
// Do Stuff
|
||||
break;
|
||||
|
||||
case lslOpcodes.OP_POPBP:
|
||||
// Do Stuff
|
||||
break;
|
||||
|
||||
case lslOpcodes.OP_POPSP:
|
||||
// Do Stuff
|
||||
break;
|
||||
|
||||
case lslOpcodes.OP_POPSLR:
|
||||
// Do Stuff
|
||||
break;
|
||||
|
||||
case lslOpcodes.OP_DUP:
|
||||
pushBytes(getBytes(4));
|
||||
break;
|
||||
|
||||
case lslOpcodes.OP_DUPS:
|
||||
case lslOpcodes.OP_DUPL:
|
||||
// Do Stuff
|
||||
break;
|
||||
|
||||
case lslOpcodes.OP_DUPV:
|
||||
pushBytes(getBytes(12));
|
||||
break;
|
||||
|
||||
case lslOpcodes.OP_DUPQ:
|
||||
pushBytes(getBytes(16));
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Advance the instruction pointer, pull the current instruction
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
byte nextInstruction()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Removes bytes from the stack
|
||||
/// </summary>
|
||||
/// <param name="num">Number of bytes</param>
|
||||
void popBytes(int num)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Pushes Bytes to the stack
|
||||
/// </summary>
|
||||
/// <param name="bytes">Ze bytes!</param>
|
||||
void pushBytes(byte[] bytes)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get Bytes from the stack
|
||||
/// </summary>
|
||||
/// <param name="num">Number of bytes</param>
|
||||
/// <returns>Ze bytes!</returns>
|
||||
byte[] getBytes(int num)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Saves bytes to the local frame
|
||||
/// </summary>
|
||||
/// <param name="bytes">Ze bytes!</param>
|
||||
/// <param name="index">Index in local frame</param>
|
||||
void storeBytes(byte[] bytes, int index)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue