00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 # include "incls/_precompiled.incl"
00025
00026 #ifdef DELTA_COMPILER
00027
00028 # include "incls/_opcode.cpp.incl"
00029
00030 char* BranchOpName[] = {
00031 "B=", "B#",
00032 "B<", "B<=", "Bu<", "Bu<=",
00033 "B>", "B>=", "Bu>", "Bu>=",
00034 "Bovfl", "Bnofvl",
00035
00036 "last (INVALID)"
00037 };
00038
00039
00040 char* ArithOpName[] = {
00041 "nil (INVALID)",
00042 "test",
00043
00044
00045 "+", "-", "*", "div", "mod",
00046 "and", "or", "xor", "shift", "cmp",
00047
00048
00049 "t+", "t-", "t*", "tdiv", "tmod",
00050 "tand", "tor", "txor", "tshift", "tcmp",
00051
00052
00053 "f+", "f-", "f*", "fdiv", "fmod",
00054 "fcmp",
00055
00056 "fneg", "fabs", "f^2", "f2oop",
00057
00058
00059 "f2float",
00060
00061 "last (INVALID)"
00062 };
00063
00064
00065 bool ArithOpIsCommutative[] = {
00066 false,
00067 true,
00068
00069
00070 true, false, true, false, false,
00071 true, true, true, false, false,
00072
00073
00074 true, false, true, false, false,
00075 true, true, true, false, false,
00076
00077
00078 true, false, true, false, false,
00079 false,
00080
00081 false, false, false, false,
00082
00083
00084 false,
00085
00086 false
00087 };
00088
00089
00090 void opcode_init() {
00091 if (sizeof(BranchOpName) / sizeof(char*) != LastBranchOp + 1) {
00092 fatal("forgot to change BranchOpName after changing BranchOpCode");
00093 }
00094 if (sizeof(ArithOpName) / sizeof(char*) != LastArithOp + 1) {
00095 fatal("forgot to change ArithOpName after changing ArithOpCode");
00096 }
00097 if (sizeof(ArithOpIsCommutative) / sizeof(bool) != LastArithOp + 1) {
00098 fatal("forgot to change ArithOpIsCommutative after changing ArithOpCode");
00099 }
00100 }
00101
00102 #endif