Main Page | Class List | Directories | File List | Class Members | File Members

opcodes.c File Reference

#include "global.h"
#include "constants.h"
#include "interpret.h"
#include "opcodes.h"
#include "pike_embed.h"
#include "interpret_protos.h"

Defines

#define ADDR(X)
#define BRANCHADDR(X)
#define JUMPADDR(X)
#define NULLADDR
#define ALIASADDR(X)
#define OPCODE0(OP, DESC, FLAGS)   { DESC, OP, FLAGS ADDR(OP) },
#define OPCODE1(OP, DESC, FLAGS)   { DESC, OP, FLAGS | I_HASARG ADDR(OP) },
#define OPCODE2(OP, DESC, FLAGS)   { DESC, OP, FLAGS | I_TWO_ARGS ADDR(OP) },
#define OPCODE0_TAIL(OP, DESC, FLAGS)   OPCODE0(OP,DESC,FLAGS)
#define OPCODE1_TAIL(OP, DESC, FLAGS)   OPCODE1(OP,DESC,FLAGS)
#define OPCODE2_TAIL(OP, DESC, FLAGS)   OPCODE2(OP,DESC,FLAGS)
#define OPCODE0_PTRJUMP(OP, DESC, FLAGS)   { DESC, OP, FLAGS | I_ISPTRJUMP JUMPADDR(OP) },
#define OPCODE1_PTRJUMP(OP, DESC, FLAGS)   { DESC, OP, FLAGS | I_ISPTRJUMPARG JUMPADDR(OP) },
#define OPCODE2_PTRJUMP(OP, DESC, FLAGS)   { DESC, OP, FLAGS | I_ISPTRJUMPARGS JUMPADDR(OP) },
#define OPCODE0_TAILPTRJUMP(OP, DESC, FLAGS)   OPCODE0_PTRJUMP(OP,DESC,FLAGS)
#define OPCODE1_TAILPTRJUMP(OP, DESC, FLAGS)   OPCODE1_PTRJUMP(OP,DESC,FLAGS)
#define OPCODE2_TAILPTRJUMP(OP, DESC, FLAGS)   OPCODE2_PTRJUMP(OP,DESC,FLAGS)
#define OPCODE0_JUMP(OP, DESC, FLAGS)   { DESC, OP, FLAGS | I_ISJUMP JUMPADDR(OP) },
#define OPCODE1_JUMP(OP, DESC, FLAGS)   { DESC, OP, FLAGS | I_ISJUMPARG JUMPADDR(OP) },
#define OPCODE2_JUMP(OP, DESC, FLAGS)   { DESC, OP, FLAGS | I_ISJUMPARGS JUMPADDR(OP) },
#define OPCODE0_TAILJUMP(OP, DESC, FLAGS)   OPCODE0_JUMP(OP,DESC,FLAGS)
#define OPCODE1_TAILJUMP(OP, DESC, FLAGS)   OPCODE1_JUMP(OP,DESC,FLAGS)
#define OPCODE2_TAILJUMP(OP, DESC, FLAGS)   OPCODE2_JUMP(OP,DESC,FLAGS)
#define OPCODE0_RETURN(OP, DESC, FLAGS)   OPCODE0_JUMP(OP,DESC,FLAGS)
#define OPCODE1_RETURN(OP, DESC, FLAGS)   OPCODE1_JUMP(OP,DESC,FLAGS)
#define OPCODE2_RETURN(OP, DESC, FLAGS)   OPCODE2_JUMP(OP,DESC,FLAGS)
#define OPCODE0_TAILRETURN(OP, DESC, FLAGS)   OPCODE0_RETURN(OP,DESC,FLAGS)
#define OPCODE1_TAILRETURN(OP, DESC, FLAGS)   OPCODE1_RETURN(OP,DESC,FLAGS)
#define OPCODE2_TAILRETURN(OP, DESC, FLAGS)   OPCODE2_RETURN(OP,DESC,FLAGS)
#define OPCODE0_ALIAS(OP, DESC, FLAGS, A)   { DESC, OP, FLAGS ALIASADDR(A) },
#define OPCODE1_ALIAS(OP, DESC, FLAGS, A)   { DESC, OP, FLAGS | I_HASARG ALIASADDR(A) },
#define OPCODE2_ALIAS(OP, DESC, FLAGS, A)   { DESC, OP, FLAGS | I_TWO_ARGS ALIASADDR(A) },
#define OPCODE0_BRANCH(OP, DESC, FLAGS)   { DESC, OP, FLAGS | I_ISBRANCH BRANCHADDR(OP) },
#define OPCODE1_BRANCH(OP, DESC, FLAGS)   { DESC, OP, FLAGS | I_ISBRANCHARG BRANCHADDR(OP) },
#define OPCODE2_BRANCH(OP, DESC, FLAGS)   { DESC, OP, FLAGS | I_ISBRANCHARGS BRANCHADDR(OP) },
#define OPCODE0_TAILBRANCH(OP, DESC, FLAGS)   OPCODE0_BRANCH(OP,DESC,FLAGS)
#define OPCODE1_TAILBRANCH(OP, DESC, FLAGS)   OPCODE1_BRANCH(OP,DESC,FLAGS)
#define OPCODE2_TAILBRANCH(OP, DESC, FLAGS)   OPCODE2_BRANCH(OP,DESC,FLAGS)

Functions

const char * low_get_f_name (int n, struct program *p)
const char * get_f_name (int n)
const char * get_token_name (int n)
void init_opcodes (void)
void exit_opcodes (void)

Variables

const struct keyword instr_names []
instr instrs [F_MAX_INSTR-F_OFFSET]

Define Documentation

#define ADDR  ) 
 

#define ALIASADDR  ) 
 

#define BRANCHADDR  ) 
 

#define JUMPADDR  ) 
 

#define NULLADDR
 

#define OPCODE0 OP,
DESC,
FLAGS   )     { DESC, OP, FLAGS ADDR(OP) },
 

#define OPCODE0_ALIAS OP,
DESC,
FLAGS,
 )     { DESC, OP, FLAGS ALIASADDR(A) },
 

#define OPCODE0_BRANCH OP,
DESC,
FLAGS   )     { DESC, OP, FLAGS | I_ISBRANCH BRANCHADDR(OP) },
 

#define OPCODE0_JUMP OP,
DESC,
FLAGS   )     { DESC, OP, FLAGS | I_ISJUMP JUMPADDR(OP) },
 

#define OPCODE0_PTRJUMP OP,
DESC,
FLAGS   )     { DESC, OP, FLAGS | I_ISPTRJUMP JUMPADDR(OP) },
 

#define OPCODE0_RETURN OP,
DESC,
FLAGS   )     OPCODE0_JUMP(OP,DESC,FLAGS)
 

#define OPCODE0_TAIL OP,
DESC,
FLAGS   )     OPCODE0(OP,DESC,FLAGS)
 

#define OPCODE0_TAILBRANCH OP,
DESC,
FLAGS   )     OPCODE0_BRANCH(OP,DESC,FLAGS)
 

#define OPCODE0_TAILJUMP OP,
DESC,
FLAGS   )     OPCODE0_JUMP(OP,DESC,FLAGS)
 

#define OPCODE0_TAILPTRJUMP OP,
DESC,
FLAGS   )     OPCODE0_PTRJUMP(OP,DESC,FLAGS)
 

#define OPCODE0_TAILRETURN OP,
DESC,
FLAGS   )     OPCODE0_RETURN(OP,DESC,FLAGS)
 

#define OPCODE1 OP,
DESC,
FLAGS   )     { DESC, OP, FLAGS | I_HASARG ADDR(OP) },
 

#define OPCODE1_ALIAS OP,
DESC,
FLAGS,
 )     { DESC, OP, FLAGS | I_HASARG ALIASADDR(A) },
 

#define OPCODE1_BRANCH OP,
DESC,
FLAGS   )     { DESC, OP, FLAGS | I_ISBRANCHARG BRANCHADDR(OP) },
 

#define OPCODE1_JUMP OP,
DESC,
FLAGS   )     { DESC, OP, FLAGS | I_ISJUMPARG JUMPADDR(OP) },
 

#define OPCODE1_PTRJUMP OP,
DESC,
FLAGS   )     { DESC, OP, FLAGS | I_ISPTRJUMPARG JUMPADDR(OP) },
 

#define OPCODE1_RETURN OP,
DESC,
FLAGS   )     OPCODE1_JUMP(OP,DESC,FLAGS)
 

#define OPCODE1_TAIL OP,
DESC,
FLAGS   )     OPCODE1(OP,DESC,FLAGS)
 

#define OPCODE1_TAILBRANCH OP,
DESC,
FLAGS   )     OPCODE1_BRANCH(OP,DESC,FLAGS)
 

#define OPCODE1_TAILJUMP OP,
DESC,
FLAGS   )     OPCODE1_JUMP(OP,DESC,FLAGS)
 

#define OPCODE1_TAILPTRJUMP OP,
DESC,
FLAGS   )     OPCODE1_PTRJUMP(OP,DESC,FLAGS)
 

#define OPCODE1_TAILRETURN OP,
DESC,
FLAGS   )     OPCODE1_RETURN(OP,DESC,FLAGS)
 

#define OPCODE2 OP,
DESC,
FLAGS   )     { DESC, OP, FLAGS | I_TWO_ARGS ADDR(OP) },
 

#define OPCODE2_ALIAS OP,
DESC,
FLAGS,
 )     { DESC, OP, FLAGS | I_TWO_ARGS ALIASADDR(A) },
 

#define OPCODE2_BRANCH OP,
DESC,
FLAGS   )     { DESC, OP, FLAGS | I_ISBRANCHARGS BRANCHADDR(OP) },
 

#define OPCODE2_JUMP OP,
DESC,
FLAGS   )     { DESC, OP, FLAGS | I_ISJUMPARGS JUMPADDR(OP) },
 

#define OPCODE2_PTRJUMP OP,
DESC,
FLAGS   )     { DESC, OP, FLAGS | I_ISPTRJUMPARGS JUMPADDR(OP) },
 

#define OPCODE2_RETURN OP,
DESC,
FLAGS   )     OPCODE2_JUMP(OP,DESC,FLAGS)
 

#define OPCODE2_TAIL OP,
DESC,
FLAGS   )     OPCODE2(OP,DESC,FLAGS)
 

#define OPCODE2_TAILBRANCH OP,
DESC,
FLAGS   )     OPCODE2_BRANCH(OP,DESC,FLAGS)
 

#define OPCODE2_TAILJUMP OP,
DESC,
FLAGS   )     OPCODE2_JUMP(OP,DESC,FLAGS)
 

#define OPCODE2_TAILPTRJUMP OP,
DESC,
FLAGS   )     OPCODE2_PTRJUMP(OP,DESC,FLAGS)
 

#define OPCODE2_TAILRETURN OP,
DESC,
FLAGS   )     OPCODE2_RETURN(OP,DESC,FLAGS)
 


Function Documentation

void exit_opcodes void   ) 
 

const char* get_f_name int  n  ) 
 

const char* get_token_name int  n  ) 
 

void init_opcodes void   ) 
 

const char* low_get_f_name int  n,
struct program p
 


Variable Documentation

const struct keyword instr_names[]
 

struct instr instrs[F_MAX_INSTR-F_OFFSET]
 


Generated on Fri Jul 22 23:44:30 2005 for Pike by  doxygen 1.3.9.1