diff options
author | tma <tma@edf5b092-35ff-0310-97b2-ce42778d08ea> | 2005-10-04 15:18:22 +0000 |
---|---|---|
committer | tma <tma@edf5b092-35ff-0310-97b2-ce42778d08ea> | 2005-10-04 15:18:22 +0000 |
commit | 1c7864f6d4380797b07c7149111066b61f69f689 (patch) | |
tree | 59057c26f97fdf846b0193e852eeea7e707a9e20 /code/tools/lcc/src/rcc.asdl | |
parent | 91db83f0cc7c564ff6c853eeb4e790732dae81cd (diff) | |
download | ioquake3-aero-1c7864f6d4380797b07c7149111066b61f69f689.tar.gz ioquake3-aero-1c7864f6d4380797b07c7149111066b61f69f689.zip |
* Moved lcc and q3asm into code/tools
git-svn-id: svn://svn.icculus.org/quake3/trunk@134 edf5b092-35ff-0310-97b2-ce42778d08ea
Diffstat (limited to 'code/tools/lcc/src/rcc.asdl')
-rw-r--r-- | code/tools/lcc/src/rcc.asdl | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/code/tools/lcc/src/rcc.asdl b/code/tools/lcc/src/rcc.asdl new file mode 100644 index 0000000..398e0d0 --- /dev/null +++ b/code/tools/lcc/src/rcc.asdl @@ -0,0 +1,70 @@ +-- lcc IR +-- $Id: rcc.asdl 145 2001-10-17 21:53:10Z timo $ +module rcc { + +-- Pickles start with an int version number, followed by rcc.program + +program = (int nuids,int nlabels,item* items,interface* interfaces,int argc,string *argv) + +real = (int msb,int lsb) + +item = Symbol(symbol symbol) + | Type(type type) + attributes(int uid) + +symbol = (identifier id,int type,int scope,int sclass,int ref,int flags) + +field = (identifier id,int type,int offset,int bitsize,int lsb) + +enum = (identifier id,int value) + +type = INT + | UNSIGNED + | FLOAT + | VOID + | POINTER(int type) + | ENUM(identifier tag,enum* ids) + | STRUCT(identifier tag,field* fields) + | UNION(identifier tag,field* fields) + | ARRAY(int type) + | FUNCTION(int type,int* formals) + | CONST(int type) + | VOLATILE(int type) + attributes(int size,int align) + +interface = Export(int p) + | Import(int p) + | Global(int p,int seg) + | Local(int uid,symbol p) -- includes formals + | Address(int uid,symbol q,int p,int n) + | Segment(int seg) + | Defaddress(int p) + | Deflabel(int label) + | Defconst(int suffix,int size,int value) + | Defconstf(int size,real value) + | Defstring(string s) + | Space(int n) + | Function(int f,int* caller,int* callee,int ncalls,interface* codelist) + | Blockbeg + | Blockend + | Forest(node* nodes) + +node = CNST(int value) + | CNSTF(real value) + | ARG(node left,int len,int align) + | ASGN(node left,node right,int len,int align) + | CVT(int op,node left,int fromsize) + | CALL(node left,int type) + | CALLB(node left,node right,int type) + | RET + | ADDRG(int uid) + | ADDRL(int uid) + | ADDRF(int uid) + | Unary(int op,node left) -- INDIR RET JUMP NEG BCOM + | Binary(int op,node left,node right) -- ADD SUB DIV MUL MOD BOR BAND BXOR RSH LSH + | Compare(int op,node left,node right,int label) -- EQ NE GT GE LE LT + | LABEL(int label) + | BRANCH(int label) + | CSE(int uid,node node) + attributes(int suffix,int size) +} |