imported all finished opcodes that do not require jumping/relocation

--HG--
extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%4076
This commit is contained in:
David Anderson 2006-09-20 03:56:24 +00:00
parent f7df595ca5
commit 7b3530de67
3 changed files with 1436 additions and 146 deletions

File diff suppressed because it is too large Load Diff

View File

@ -176,6 +176,7 @@ JITX86::JITX86()
OpAdvTable[OP_HALT] = sizeof(cell_t); OpAdvTable[OP_HALT] = sizeof(cell_t);
OpAdvTable[OP_BOUNDS] = sizeof(cell_t); OpAdvTable[OP_BOUNDS] = sizeof(cell_t);
OpAdvTable[OP_PUSH_ADR] = sizeof(cell_t); OpAdvTable[OP_PUSH_ADR] = sizeof(cell_t);
OpAdvTable[OP_PUSH_HEAP_C] = sizeof(cell_t);
/* instructions with 0 parameters */ /* instructions with 0 parameters */
OpAdvTable[OP_LOAD_I] = 0; OpAdvTable[OP_LOAD_I] = 0;
@ -236,6 +237,8 @@ JITX86::JITX86()
OpAdvTable[OP_SWAP_ALT] = 0; OpAdvTable[OP_SWAP_ALT] = 0;
OpAdvTable[OP_NOP] = 0; OpAdvTable[OP_NOP] = 0;
OpAdvTable[OP_BREAK] = 0; OpAdvTable[OP_BREAK] = 0;
OpAdvTable[OP_HEAP_PRI] = 0;
OpAdvTable[OP_POP_HEAP_PRI] = 0;
/* opcodes that need relocation */ /* opcodes that need relocation */
OpAdvTable[OP_CALL] = -2; OpAdvTable[OP_CALL] = -2;

View File

@ -11,170 +11,170 @@ void Macro_PushN(JitWriter *jit, int i);
typedef enum typedef enum
{ {
OP_NONE, /* invalid opcode */ OP_NONE, /* invalid opcode */
OP_LOAD_PRI, //DONE OP_LOAD_PRI, //DONE
OP_LOAD_ALT, //DONE OP_LOAD_ALT, //DONE
OP_LOAD_S_PRI, //DONE OP_LOAD_S_PRI, //DONE
OP_LOAD_S_ALT, //DONE OP_LOAD_S_ALT, //DONE
OP_LREF_PRI, //DONE OP_LREF_PRI, //DONE
OP_LREF_ALT, //DONE OP_LREF_ALT, //DONE
OP_LREF_S_PRI, //DONE OP_LREF_S_PRI, //DONE
OP_LREF_S_ALT, //DONE OP_LREF_S_ALT, //DONE
OP_LOAD_I, //DONE OP_LOAD_I,
OP_LODB_I, OP_LODB_I,
OP_CONST_PRI, //DONE OP_CONST_PRI, //DONE
OP_CONST_ALT, //DONE OP_CONST_ALT, //DONE
OP_ADDR_PRI, //DONE OP_ADDR_PRI, //DONE
OP_ADDR_ALT, //DONE OP_ADDR_ALT, //DONE
OP_STOR_PRI, //DONE OP_STOR_PRI, //DONE
OP_STOR_ALT, //DONE OP_STOR_ALT, //DONE
OP_STOR_S_PRI, //DONE OP_STOR_S_PRI, //DONE
OP_STOR_S_ALT, //DONE OP_STOR_S_ALT, //DONE
OP_SREF_PRI, //DONE OP_SREF_PRI, //DONE
OP_SREF_ALT, //DONE OP_SREF_ALT, //DONE
OP_SREF_S_PRI, //DONE OP_SREF_S_PRI, //DONE
OP_SREF_S_ALT, //DONE OP_SREF_S_ALT, //DONE
OP_STOR_I, //DONE OP_STOR_I,
OP_STRB_I, OP_STRB_I,
OP_LIDX, //DONE OP_LIDX,
OP_LIDX_B, OP_LIDX_B,
OP_IDXADDR, //DONE OP_IDXADDR, //DONE
OP_IDXADDR_B, OP_IDXADDR_B,
OP_ALIGN_PRI, //DONE OP_ALIGN_PRI, //DONE
OP_ALIGN_ALT, //DONE OP_ALIGN_ALT, //DONE
OP_LCTRL, OP_LCTRL,
OP_SCTRL, OP_SCTRL,
OP_MOVE_PRI, //DONE OP_MOVE_PRI, //DONE
OP_MOVE_ALT, //DONE OP_MOVE_ALT, //DONE
OP_XCHG, //DONE OP_XCHG, //DONE
OP_PUSH_PRI, //DONE OP_PUSH_PRI, //DONE
OP_PUSH_ALT, //DONE OP_PUSH_ALT, //DONE
OP_PUSH_R, //DONE OP_PUSH_R, //DEPRECATED
OP_PUSH_C, //DONE OP_PUSH_C, //DONE
OP_PUSH, //DONE OP_PUSH, //DONE
OP_PUSH_S, //DONE OP_PUSH_S, //DONE
OP_POP_PRI, //DONE OP_POP_PRI, //DONE
OP_POP_ALT, //DONE OP_POP_ALT, //DONE
OP_STACK, //DONE OP_STACK,
OP_HEAP, //DONE OP_HEAP,
OP_PROC, //DONE OP_PROC, //DONE
OP_RET, OP_RET,
OP_RETN, //DONE OP_RETN,
OP_CALL, OP_CALL,
OP_CALL_PRI, OP_CALL_PRI,
OP_JUMP, //DONE OP_JUMP,
OP_JREL, //DONE OP_JREL,
OP_JZER, //DONE OP_JZER,
OP_JNZ, //DONE OP_JNZ,
OP_JEQ, //DONE OP_JEQ,
OP_JNEQ, //DONE OP_JNEQ,
OP_JLESS, //DONE OP_JLESS,
OP_JLEQ, //DONE OP_JLEQ,
OP_JGRTR, //DONE OP_JGRTR,
OP_JGEQ, //DONE OP_JGEQ,
OP_JSLESS, //DONE OP_JSLESS,
OP_JSLEQ, //DONE OP_JSLEQ,
OP_JSGRTR, //DONE OP_JSGRTR,
OP_JSGEQ, //DONE OP_JSGEQ,
OP_SHL, //DONE OP_SHL, //DONE
OP_SHR, //DONE OP_SHR, //DONE
OP_SSHR, //DONE OP_SSHR, //DONE
OP_SHL_C_PRI, //DONE OP_SHL_C_PRI, //DONE
OP_SHL_C_ALT, //DONE OP_SHL_C_ALT, //DONE
OP_SHR_C_PRI, //DONE OP_SHR_C_PRI, //DONE
OP_SHR_C_ALT, //DONE OP_SHR_C_ALT, //DONE
OP_SMUL, //DONE OP_SMUL, //DONE
OP_SDIV, //DONE OP_SDIV,
OP_SDIV_ALT, //DONE OP_SDIV_ALT,
OP_UMUL, //DONE OP_UMUL, //DONE
OP_UDIV, //DONE OP_UDIV,
OP_UDIV_ALT, //DONE OP_UDIV_ALT,
OP_ADD, //DONE OP_ADD, //DONE
OP_SUB, //DONE OP_SUB, //DONE
OP_SUB_ALT, //DONE OP_SUB_ALT, //DONE
OP_AND, //DONE OP_AND, //DONE
OP_OR, //DONE OP_OR, //DONE
OP_XOR, //DONE OP_XOR, //DONE
OP_NOT, //DONE OP_NOT, //DONE
OP_NEG, //DONE OP_NEG, //DONE
OP_INVERT, //DONE OP_INVERT, //DONE
OP_ADD_C, //DONE OP_ADD_C, //DONE
OP_SMUL_C, //DONE OP_SMUL_C, //DONE
OP_ZERO_PRI, //DONE OP_ZERO_PRI, //DONE
OP_ZERO_ALT, //DONE OP_ZERO_ALT, //DONE
OP_ZERO, //DONE OP_ZERO, //DONE
OP_ZERO_S, //DONE OP_ZERO_S, //DONE
OP_SIGN_PRI, //DONE OP_SIGN_PRI, //DONE
OP_SIGN_ALT, //DONE OP_SIGN_ALT, //DONE
OP_EQ, //DONE OP_EQ, //DONE
OP_NEQ, //DONE OP_NEQ, //DONE
OP_LESS, //DONE OP_LESS, //DONE
OP_LEQ, //DONE OP_LEQ, //DONE
OP_GRTR, //DONE OP_GRTR, //DONE
OP_GEQ, //DONE OP_GEQ, //DONE
OP_SLESS, //DONE OP_SLESS, //DONE
OP_SLEQ, //DONE OP_SLEQ, //DONE
OP_SGRTR, //DONE OP_SGRTR, //DONE
OP_SGEQ, //DONE OP_SGEQ, //DONE
OP_EQ_C_PRI, //DONE OP_EQ_C_PRI, //DONE
OP_EQ_C_ALT, //DONE OP_EQ_C_ALT, //DONE
OP_INC_PRI, //DONE OP_INC_PRI, //DONE
OP_INC_ALT, //DONE OP_INC_ALT, //DONE
OP_INC, //DONE OP_INC, //DONE
OP_INC_S, //DONE OP_INC_S, //DONE
OP_INC_I, //DONE OP_INC_I, //DONE
OP_DEC_PRI, //DONE OP_DEC_PRI, //DONE
OP_DEC_ALT, //DONE OP_DEC_ALT, //DONE
OP_DEC, //DONE OP_DEC, //DONE
OP_DEC_S, //DONE OP_DEC_S, //DONE
OP_DEC_I, //DONE OP_DEC_I, //DONE
OP_MOVS, //DONE OP_MOVS, //DONE
OP_CMPS, //DONE OP_CMPS,
OP_FILL, //DONE OP_FILL, //DONE
OP_HALT, //DONE OP_HALT,
OP_BOUNDS, OP_BOUNDS,
OP_SYSREQ_PRI, OP_SYSREQ_PRI,
OP_SYSREQ_C, OP_SYSREQ_C,
OP_FILE, OP_FILE, //DEPRECATED
OP_LINE, OP_LINE, //DEPRECATED
OP_SYMBOL, OP_SYMBOL, //DEPRECATED
OP_SRANGE, OP_SRANGE, //DEPRECATED
OP_JUMP_PRI, OP_JUMP_PRI,
OP_SWITCH, OP_SWITCH,
OP_CASETBL, //DONE OP_CASETBL,
OP_SWAP_PRI, //DONE OP_SWAP_PRI, //DONE
OP_SWAP_ALT, //DONE OP_SWAP_ALT, //DONE
OP_PUSH_ADR, //DONE OP_PUSH_ADR,
OP_NOP, //DONE OP_NOP, //DONE
OP_SYSREQ_N, OP_SYSREQ_N,
OP_SYMTAG, OP_SYMTAG, //DEPRECATED
OP_BREAK, OP_BREAK,
OP_PUSH2_C, //DONE OP_PUSH2_C, //DONE
OP_PUSH2, //DONE OP_PUSH2, //DONE
OP_PUSH2_S, //DONE OP_PUSH2_S, //DONE
OP_PUSH2_ADR, //DONE OP_PUSH2_ADR, //DONE
OP_PUSH3_C, //DONE OP_PUSH3_C, //DONE
OP_PUSH3, //DONE OP_PUSH3, //DONE
OP_PUSH3_S, //DONE OP_PUSH3_S, //DONE
OP_PUSH3_ADR, //DONE OP_PUSH3_ADR, //DONE
OP_PUSH4_C, //DONE OP_PUSH4_C, //DONE
OP_PUSH4, //DONE OP_PUSH4, //DONE
OP_PUSH4_S, //DONE OP_PUSH4_S, //DONE
OP_PUSH4_ADR, //DONE OP_PUSH4_ADR, //DONE
OP_PUSH5_C, //DONE OP_PUSH5_C, //DONE
OP_PUSH5, //DONE OP_PUSH5, //DONE
OP_PUSH5_S, //DONE OP_PUSH5_S, //DONE
OP_PUSH5_ADR, //DONE OP_PUSH5_ADR, //DONE
OP_LOAD_BOTH, OP_LOAD_BOTH,
OP_LOAD_S_BOTH, OP_LOAD_S_BOTH,
OP_CONST, OP_CONST,
OP_CONST_S, OP_CONST_S,
/* ----- */ /* ----- */
OP_SYSREQ_D, OP_SYSREQ_D, //UNSUPPORTED
OP_SYSREQ_ND, OP_SYSREQ_ND, //UNSUPPORTED
/* ----- */ /* ----- */
OP_HEAP_PRI, OP_HEAP_PRI, //DONE
OP_PUSH_HEAP_C, OP_PUSH_HEAP_C, //DONE
OP_POP_HEAP_PRI, OP_POP_HEAP_PRI, //DONE
/* ----- */ /* ----- */
OP_NUM_OPCODES OP_NUM_OPCODES
} OPCODE; } OPCODE;