lscript_readlso.h

Go to the documentation of this file.
00001 
00032 #ifndef LL_LSCRIPT_READLSO_H
00033 #define LL_LSCRIPT_READLSO_H
00034 
00035 #include "lscript_byteconvert.h"
00036 #include "linked_lists.h"
00037 
00038 // list of op code print functions
00039 void print_noop(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00040 void print_pop(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00041 void print_pops(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00042 void print_popl(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00043 void print_popv(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00044 void print_popq(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00045 void print_poparg(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00046 void print_popip(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00047 void print_popbp(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00048 void print_popsp(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00049 void print_popslr(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00050 
00051 void print_dup(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00052 void print_dups(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00053 void print_dupl(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00054 void print_dupv(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00055 void print_dupq(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00056 
00057 void print_store(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00058 void print_stores(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00059 void print_storel(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00060 void print_storev(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00061 void print_storeq(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00062 void print_storeg(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00063 void print_storegs(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00064 void print_storegl(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00065 void print_storegv(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00066 void print_storegq(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00067 void print_loadp(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00068 void print_loadsp(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00069 void print_loadlp(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00070 void print_loadvp(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00071 void print_loadqp(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00072 void print_loadgp(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00073 void print_loadgsp(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00074 void print_loadglp(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00075 void print_loadgvp(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00076 void print_loadgqp(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00077 
00078 void print_push(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00079 void print_pushl(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00080 void print_pushs(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00081 void print_pushv(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00082 void print_pushq(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00083 void print_pushg(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00084 void print_pushgl(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00085 void print_pushgs(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00086 void print_pushgv(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00087 void print_pushgq(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00088 void print_puship(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00089 void print_pushbp(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00090 void print_pushsp(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00091 void print_pushargb(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00092 void print_pushargi(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00093 void print_pushargf(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00094 void print_pushargs(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00095 void print_pushargv(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00096 void print_pushargq(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00097 void print_pushe(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00098 void print_pushev(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00099 void print_pusheq(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00100 void print_pusharge(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00101 
00102 void print_add(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00103 void print_sub(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00104 void print_mul(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00105 void print_div(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00106 void print_mod(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00107 
00108 void print_eq(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00109 void print_neq(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00110 void print_leq(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00111 void print_geq(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00112 void print_less(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00113 void print_greater(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00114 
00115 void print_bitand(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00116 void print_bitor(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00117 void print_bitxor(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00118 void print_booland(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00119 void print_boolor(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00120 
00121 void print_shl(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00122 void print_shr(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00123 
00124 void print_neg(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00125 void print_bitnot(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00126 void print_boolnot(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00127 
00128 void print_jump(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00129 void print_jumpif(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00130 void print_jumpnif(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00131 
00132 void print_state(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00133 void print_call(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00134 void print_return(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00135 void print_cast(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00136 void print_stacktos(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00137 void print_stacktol(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00138 
00139 void print_print(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00140 
00141 void print_calllib(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00142 void print_calllib_two_byte(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00143 
00144 class LLScriptLSOParse
00145 {
00146 public:
00147         LLScriptLSOParse(LLFILE *fp);
00148         LLScriptLSOParse(U8 *buffer);
00149         ~LLScriptLSOParse();
00150 
00151         void initOpCodePrinting();
00152 
00153         void printData(LLFILE *fp);
00154         void printNameDesc(LLFILE *fp);
00155         void printRegisters(LLFILE *fp);
00156         void printGlobals(LLFILE *fp);
00157         void printGlobalFunctions(LLFILE *fp);
00158         void printStates(LLFILE *fp);
00159         void printHeap(LLFILE *fp);
00160         void printOpCodes(LLFILE *fp, S32 &offset, S32 tabs);
00161         void printOpCodeRange(LLFILE *fp, S32 start, S32 end, S32 tabs);
00162 
00163         U8      *mRawData;
00164         void (*mPrintOpCodes[0x100])(LLFILE *fp, U8 *buffer, S32 &offset, S32 tabs);
00165 };
00166 
00167 
00168 void lso_print_tabs(LLFILE *fp, S32 tabs);
00169 
00170 #endif

Generated on Fri May 16 08:33:12 2008 for SecondLife by  doxygen 1.5.5