[insert project logo here (125x200px max)]

Navigator

Mailinglists

Please report any errors or ommissions you find to our `Help' mailinglist, or post a message in the Forums.

Copyright and Licensing Information

Snap is (c) Jonathan T. Moore, 1999-2002 and licensed under the GNU General Public License (GPL).

All other parts of Splash are (c) Willem de Bruijn, 2002-2003 and licensed under the BSD Open Source License.

All sourcecode is made publicly available.

Acknowledgement

Splash and the Splash website are hosted by SourceForge.net

SourceForge.net Logo

osi-open source certified logo

Splash - Documentation

SNMP Plus a Lightweight API for SNAP Handling

Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

snap-1.1-wjdb/lib/bytecode.h File Reference

#include <stdio.h>
#include <limits.h>
#include "config.h"
#include "dyncheck.h"
#include "wassert.h"

Include dependency graph for bytecode.h:

Include dependency graph

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Go to the source code of this file.


Data Structures

struct  heap_obj

Defines

#define SMALL_INSTRS
#define SMALL_VALUES
#define DYNCHECK_TAG(v, tag)   ((void)0)
#define INTV   0
#define ADDRV   1
#define STRV   2
#define EXCV   3
#define TUPLEV   4
#define FLOATV   5
#define BOGUSV   6
#define TAG_T   int
#define LENTYPE   unsigned short
#define MAX_HEAPOBJ_SZ   (1 << ((sizeof(unsigned short) * 8)))
#define ZERO_VALUE_T   0
#define TAGSZ   7
#define MAX_VINT   (1 << ((sizeof(unsigned int) * 8-(TAGSZ+1))))
#define MIN_VINT   (- MAX_VINT - 1)
#define GET_TAG(v)   ((v) >> (sizeof(unsigned int)*8-TAGSZ))
#define SET_TAG(v, t)   ((v) = (((v) << TAGSZ) >> TAGSZ) | ((t) << (sizeof(unsigned int)*8-TAGSZ)))
#define GET_INT(v)   (((int)((v) << TAGSZ)) >> TAGSZ)
#define SET_INT(v, i)   ((v) = (((v) >> (sizeof(unsigned int)*8-TAGSZ)) << (sizeof(unsigned int)*8-TAGSZ)) | ((((unsigned int)(i)) << TAGSZ) >> TAGSZ))
#define GET_OFFS   GET_INT
#define SET_OFFS   SET_INT
#define COPY_VAL(val1, val2)   ((val1) = (val2))
#define GET_BOXED(res, heap, v, t)
#define GET_ADDR(res, h, v)   GET_BOXED(res,h,v,uint32_t)
#define GET_FLOAT(res, h, v)   GET_BOXED(res,h,v,float32)
#define GET_ADDR_VAL(h, v)   (*((uint32_t *)(((heap_obj *)((h) + GET_OFFS(v)))->s)))
#define GET_FLT_VAL(h, v)   (*((float32 *)(((heap_obj *)((h) + GET_OFFS(v)))->s)))
#define FLTINTPAIR(f)   (int)(f),(int)(((f) - (int)(f)) * 1000000)
#define SET_ADDR(val, a, p)
#define SET_FLOAT(val, a, p)
#define IS_HEAP_VAL(v)
#define EXIT   0
#define PUSH   1
#define POP   2
#define POPI   3
#define PULL   4
#define STORE   5
#define PAJ   6
#define TPAJ   7
#define JI   8
#define BEZ   9
#define BNE   10
#define MKTUP   11
#define NTH   12
#define LEN   13
#define ISTUP   14
#define EQ   15
#define EQI   16
#define NEQ   17
#define NEQI   18
#define GT   19
#define GTI   20
#define GEQ   21
#define GEQI   22
#define LEQ   23
#define LEQI   24
#define LT   25
#define LTI   26
#define ADD   27
#define ADDI   28
#define SUB   29
#define SUBI   30
#define MULT   31
#define MULTI   32
#define DIV   33
#define DIVI   34
#define MOD   35
#define MODI   36
#define NEG   37
#define NOT   38
#define LNOT   39
#define AND   40
#define ANDI   41
#define OR   42
#define ORI   43
#define LSHL   44
#define LSHLI   45
#define RSHL   46
#define RSHLI   47
#define RSHA   48
#define RSHAI   49
#define XOR   50
#define XORI   51
#define SNET   52
#define SNETI   53
#define BCAST   54
#define BCASTI   55
#define ISX   56
#define GETRB   57
#define GETSRC   58
#define GETDST   60
#define GETSPT   61
#define HERE   62
#define ISHERE   63
#define ROUTE   64
#define RTDEV   65
#define SEND   66
#define HOP   67
#define FORW   69
#define FORWTO   70
#define DEMUX   71
#define DEMUXI   72
#define PRINT   73
#define PINT   74
#define PADDR   75
#define PTUP   76
#define PEXC   77
#define PSTR   78
#define PFLT   79
#define EQINT   80
#define EQADR   81
#define EQTUP   82
#define EQEXC   83
#define EQSTR   84
#define EQFLT   85
#define NQINT   86
#define NQADR   87
#define NQTUP   88
#define NQEXC   89
#define NQSTR   90
#define NQFLT   91
#define SVCV   92
#define CALLS   93
#define FGTI   94
#define FGEQI   95
#define FLEQI   96
#define FLTI   97
#define FADDI   98
#define FSUBI   99
#define FMULI   100
#define FDIVI   101
#define GETLD   102
#define SETXH   103
#define RAISEX   104
#define DSEND   105
#define DFORW   106
#define DFORWTO   107
#define STACKEMPTY   108
#define STACKCOUNT   109
#define PULLSTACK   110
#define OPCODE_T   int
#define GET_OP(v)   ((v) >> (sizeof(unsigned int)*8-TAGSZ))
#define SET_OP(v, i)   ((v) = (((v) << TAGSZ) >> TAGSZ) | ((i) << (sizeof(unsigned int)*8-TAGSZ)))
#define GET_LIT(l, t, i)   ((l) = (((int)((i) << TAGSZ)) >> TAGSZ))
#define SET_LIT(i, t, l)   ((i) = (((i) >> (sizeof(unsigned int)*8-TAGSZ)) << (sizeof(unsigned int)*8-TAGSZ)) | ((((unsigned int)(l)) << TAGSZ) >> TAGSZ))
#define GET_LIT_VAL(i)   (((int)((i) << TAGSZ)) >> TAGSZ)
#define GET_STR_VAL(h, v)   (((heap_obj *)((h) + GET_OFFS(v)))->s)
#define NUM_OPS   87
#define COPY_LIT(d, t, s)

Typedefs

typedef unsigned int value_t
typedef unsigned int instr_t

Define Documentation

#define ADD   27
 

Definition at line 250 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define ADDI   28
 

Definition at line 251 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), refine_op(), and yyparse().

#define ADDRV   1
 

Definition at line 36 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_value_heap(), fprintf_value_tag(), refine_op(), snap_svc_convert_returnstruct2stack(), snap_svc_convert_stack2returnstruct(), and yyparse().

#define AND   40
 

Definition at line 263 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define ANDI   41
 

Definition at line 264 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), and yyparse().

#define BCAST   54
 

Definition at line 277 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define BCASTI   55
 

Definition at line 278 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), and yyparse().

#define BEZ   9
 

Definition at line 232 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), patch_jumps(), and yyparse().

#define BNE   10
 

Definition at line 233 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), patch_jumps(), and yyparse().

#define BOGUSV   6
 

Definition at line 41 of file bytecode.h.

Referenced by marshal_packet().

#define CALLS   93
 

Definition at line 320 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), and yyparse().

#define COPY_LIT d,
t,
 
 

Value:

{ int _lit;             \
  GET_LIT(_lit,t,(s));          \
  SET_INT((d),_lit);            \
  SET_TAG((d),t);           \
}

Definition at line 539 of file bytecode.h.

Referenced by fprintf_instr().

#define COPY_VAL val1,
val2       ((val1) = (val2))
 

Definition at line 97 of file bytecode.h.

Referenced by yyparse().

#define DEMUX   71
 

Definition at line 294 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define DEMUXI   72
 

Definition at line 295 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define DFORW   106
 

Definition at line 338 of file bytecode.h.

Referenced by yyparse().

#define DFORWTO   107
 

Definition at line 339 of file bytecode.h.

Referenced by yyparse().

#define DIV   33
 

Definition at line 256 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define DIVI   34
 

Definition at line 257 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), refine_op(), and yyparse().

#define DSEND   105
 

Definition at line 337 of file bytecode.h.

Referenced by yyparse().

#define DYNCHECK_TAG v,
tag       ((void)0)
 

Definition at line 22 of file bytecode.h.

#define EQ   15
 

Definition at line 238 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define EQADR   81
 

Definition at line 306 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), patch_jumps(), and refine_op().

#define EQEXC   83
 

Definition at line 308 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), patch_jumps(), and refine_op().

#define EQFLT   85
 

Definition at line 310 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), and refine_op().

#define EQI   16
 

Definition at line 239 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), refine_op(), and yyparse().

#define EQINT   80
 

Definition at line 305 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), patch_jumps(), and refine_op().

#define EQSTR   84
 

Definition at line 309 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), patch_jumps(), and refine_op().

#define EQTUP   82
 

Definition at line 307 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), patch_jumps(), and refine_op().

#define EXCV   3
 

Definition at line 38 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_value_heap(), fprintf_value_tag(), refine_op(), snap_svc_convert_stack2returnstruct(), and yyparse().

#define EXIT   0
 

Definition at line 223 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define FADDI   98
 

Definition at line 326 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), and refine_op().

#define FDIVI   101
 

Definition at line 329 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), and refine_op().

#define FGEQI   95
 

Definition at line 323 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), and refine_op().

#define FGTI   94
 

Definition at line 322 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), and refine_op().

#define FLEQI   96
 

Definition at line 324 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), and refine_op().

#define FLOATV   5
 

Definition at line 40 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_value_heap(), fprintf_value_tag(), refine_op(), snap_svc_convert_stack2returnstruct(), and yyparse().

#define FLTI   97
 

Definition at line 325 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), and refine_op().

#define FLTINTPAIR      (int)(f),(int)(((f) - (int)(f)) * 1000000)
 

Definition at line 115 of file bytecode.h.

#define FMULI   100
 

Definition at line 328 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), and refine_op().

#define FORW   69
 

Definition at line 292 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define FORWTO   70
 

Definition at line 293 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define FSUBI   99
 

Definition at line 327 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), and refine_op().

#define GEQ   21
 

Definition at line 244 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define GEQI   22
 

Definition at line 245 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), refine_op(), and yyparse().

#define GET_ADDR res,
h,
     GET_BOXED(res,h,v,uint32_t)
 

Definition at line 107 of file bytecode.h.

#define GET_ADDR_VAL h,
     (*((uint32_t *)(((heap_obj *)((h) + GET_OFFS(v)))->s)))
 

Definition at line 111 of file bytecode.h.

Referenced by fprintf_value_heap(), and snap_svc_convert_returnstruct2stack().

#define GET_BOXED res,
heap,
v,
 
 

Value:

{                               \
  heap_obj *ho1 = (heap_obj *)((heap) + GET_OFFS(v));       \
  DYNCHECK_ADDR_IN_HEAP(ho1);                   \
  wassert(ho1->len == sizeof(t));               \
  (res) = *((t *)ho1->s);                   \
}

Definition at line 99 of file bytecode.h.

#define GET_FLOAT res,
h,
     GET_BOXED(res,h,v,float32)
 

Definition at line 109 of file bytecode.h.

#define GET_FLT_VAL h,
     (*((float32 *)(((heap_obj *)((h) + GET_OFFS(v)))->s)))
 

Definition at line 113 of file bytecode.h.

#define GET_INT      (((int)((v) << TAGSZ)) >> TAGSZ)
 

Definition at line 91 of file bytecode.h.

Referenced by snap_svc_convert_returnstruct2stack(), snap_svc_convert_stack2returnstruct(), and yyparse().

#define GET_LIT l,
t,
     ((l) = (((int)((i) << TAGSZ)) >> TAGSZ))
 

Definition at line 353 of file bytecode.h.

Referenced by marshal_packet().

#define GET_LIT_VAL      (((int)((i) << TAGSZ)) >> TAGSZ)
 

Definition at line 356 of file bytecode.h.

#define GET_OFFS   GET_INT
 

Definition at line 94 of file bytecode.h.

Referenced by snap_svc_convert_returnstruct2stack(), and snap_svc_convert_stack2returnstruct().

#define GET_OP      ((v) >> (sizeof(unsigned int)*8-TAGSZ))
 

Definition at line 350 of file bytecode.h.

Referenced by fprintf_instr(), marshal_packet(), and patch_jumps().

#define GET_STR_VAL h,
     (((heap_obj *)((h) + GET_OFFS(v)))->s)
 

Definition at line 358 of file bytecode.h.

#define GET_TAG      ((v) >> (sizeof(unsigned int)*8-TAGSZ))
 

Definition at line 88 of file bytecode.h.

Referenced by fprintf_value_heap(), snap_svc_convert_stack2returnstruct(), and yyparse().

#define GETDST   60
 

Definition at line 282 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define GETLD   102
 

Definition at line 331 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define GETRB   57
 

Definition at line 280 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define GETSPT   61
 

Definition at line 283 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define GETSRC   58
 

Definition at line 281 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define GT   19
 

Definition at line 242 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define GTI   20
 

Definition at line 243 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), refine_op(), and yyparse().

#define HERE   62
 

Definition at line 284 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define HOP   67
 

Definition at line 289 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define INTV   0
 

Definition at line 35 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_value_heap(), fprintf_value_tag(), refine_op(), snap_svc_convert_returnstruct2stack(), snap_svc_convert_stack2returnstruct(), and yyparse().

#define IS_HEAP_VAL  
 

Value:

((GET_TAG(v) == ADDRV) || (GET_TAG(v) == STRV) || \
   (GET_TAG(v) == TUPLEV) || (GET_TAG(v) == FLOATV))

Definition at line 135 of file bytecode.h.

#define ISHERE   63
 

Definition at line 285 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define ISTUP   14
 

Definition at line 237 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define ISX   56
 

Definition at line 279 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define JI   8
 

Definition at line 231 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), patch_jumps(), and yyparse().

#define LEN   13
 

Definition at line 236 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define LENTYPE   unsigned short
 

Definition at line 63 of file bytecode.h.

#define LEQ   23
 

Definition at line 246 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define LEQI   24
 

Definition at line 247 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), refine_op(), and yyparse().

#define LNOT   39
 

Definition at line 262 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define LSHL   44
 

Definition at line 267 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define LSHLI   45
 

Definition at line 268 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), and yyparse().

#define LT   25
 

Definition at line 248 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define LTI   26
 

Definition at line 249 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), refine_op(), and yyparse().

#define MAX_HEAPOBJ_SZ   (1 << ((sizeof(unsigned short) * 8)))
 

Definition at line 64 of file bytecode.h.

Referenced by newho(), and newtup().

#define MAX_VINT   (1 << ((sizeof(unsigned int) * 8-(TAGSZ+1))))
 

Definition at line 85 of file bytecode.h.

Referenced by yyparse().

#define MIN_VINT   (- MAX_VINT - 1)
 

Definition at line 86 of file bytecode.h.

Referenced by yyparse().

#define MKTUP   11
 

Definition at line 234 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), and yyparse().

#define MOD   35
 

Definition at line 258 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define MODI   36
 

Definition at line 259 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), and yyparse().

#define MULT   31
 

Definition at line 254 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define MULTI   32
 

Definition at line 255 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), refine_op(), and yyparse().

#define NEG   37
 

Definition at line 260 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define NEQ   17
 

Definition at line 240 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define NEQI   18
 

Definition at line 241 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), refine_op(), and yyparse().

#define NOT   38
 

Definition at line 261 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define NQADR   87
 

Definition at line 313 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), patch_jumps(), and refine_op().

#define NQEXC   89
 

Definition at line 315 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), patch_jumps(), and refine_op().

#define NQFLT   91
 

Definition at line 317 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), and refine_op().

#define NQINT   86
 

Definition at line 312 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), patch_jumps(), and refine_op().

#define NQSTR   90
 

Definition at line 316 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), patch_jumps(), and refine_op().

#define NQTUP   88
 

Definition at line 314 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), patch_jumps(), and refine_op().

#define NTH   12
 

Definition at line 235 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), and yyparse().

#define NUM_OPS   87
 

Definition at line 360 of file bytecode.h.

#define OPCODE_T   int
 

Definition at line 345 of file bytecode.h.

Referenced by fprintf_opcode(), refine_op(), and yyparse().

#define OR   42
 

Definition at line 265 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define ORI   43
 

Definition at line 266 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), and yyparse().

#define PADDR   75
 

Definition at line 299 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), patch_jumps(), and refine_op().

#define PAJ   6
 

Definition at line 229 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), and yyparse().

#define PEXC   77
 

Definition at line 301 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), patch_jumps(), and refine_op().

#define PFLT   79
 

Definition at line 303 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), and refine_op().

#define PINT   74
 

Definition at line 298 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), patch_jumps(), and refine_op().

#define POP   2
 

Definition at line 225 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define POPI   3
 

Definition at line 226 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), and yyparse().

#define PRINT   73
 

Definition at line 296 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define PSTR   78
 

Definition at line 302 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), patch_jumps(), and refine_op().

#define PTUP   76
 

Definition at line 300 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), patch_jumps(), and refine_op().

#define PULL   4
 

Definition at line 227 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), and yyparse().

#define PULLSTACK   110
 

Definition at line 344 of file bytecode.h.

Referenced by yyparse().

#define PUSH   1
 

Definition at line 224 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), patch_jumps(), refine_op(), and yyparse().

#define RAISEX   104
 

Definition at line 333 of file bytecode.h.

Referenced by yyparse().

#define ROUTE   64
 

Definition at line 286 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define RSHA   48
 

Definition at line 271 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define RSHAI   49
 

Definition at line 272 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), and yyparse().

#define RSHL   46
 

Definition at line 269 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define RSHLI   47
 

Definition at line 270 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), and yyparse().

#define RTDEV   65
 

Definition at line 287 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define SEND   66
 

Definition at line 288 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define SET_ADDR val,
a,
p   
 

Value:

{ int hoffset;                      \
  heap_obj *ho;                     \
  if (!heap_alloc((p),sizeof(uint32_t),0,&ho,&hoffset)) {   \
    *((uint32_t *)ho->s) = (a);             \
    SET_OFFS(val,hoffset);              \
  }                         \
  else return -1;                   \
}

Definition at line 117 of file bytecode.h.

Referenced by snap_svc_convert_returnstruct2stack(), and yyparse().

#define SET_FLOAT val,
a,
p   
 

Value:

{ int hoffset;                      \
  heap_obj *ho;                     \
  if (!heap_alloc((p),sizeof(float32),0,&ho,&hoffset)) {\
    *((float32 *)ho->s) = (a);              \
    SET_OFFS(val,hoffset);              \
  }                         \
  else return -1;                   \
}

Definition at line 126 of file bytecode.h.

Referenced by yyparse().

#define SET_INT v,
     ((v) = (((v) >> (sizeof(unsigned int)*8-TAGSZ)) << (sizeof(unsigned int)*8-TAGSZ)) | ((((unsigned int)(i)) << TAGSZ) >> TAGSZ))
 

Definition at line 92 of file bytecode.h.

Referenced by snap_svc_convert_returnstruct2stack(), and yyparse().

#define SET_LIT i,
t,
l       ((i) = (((i) >> (sizeof(unsigned int)*8-TAGSZ)) << (sizeof(unsigned int)*8-TAGSZ)) | ((((unsigned int)(l)) << TAGSZ) >> TAGSZ))
 

Definition at line 354 of file bytecode.h.

Referenced by marshal_packet(), and yyparse().

#define SET_OFFS   SET_INT
 

Definition at line 95 of file bytecode.h.

Referenced by snap_svc_convert_returnstruct2stack(), and yyparse().

#define SET_OP v,
     ((v) = (((v) << TAGSZ) >> TAGSZ) | ((i) << (sizeof(unsigned int)*8-TAGSZ)))
 

Definition at line 351 of file bytecode.h.

Referenced by yyparse().

#define SET_TAG v,
     ((v) = (((v) << TAGSZ) >> TAGSZ) | ((t) << (sizeof(unsigned int)*8-TAGSZ)))
 

Definition at line 89 of file bytecode.h.

Referenced by snap_svc_convert_returnstruct2stack(), and yyparse().

#define SETXH   103
 

Definition at line 332 of file bytecode.h.

Referenced by yyparse().

#define SMALL_INSTRS
 

Definition at line 13 of file bytecode.h.

#define SMALL_VALUES
 

Definition at line 16 of file bytecode.h.

#define SNET   52
 

Definition at line 275 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define SNETI   53
 

Definition at line 276 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), and yyparse().

#define STACKCOUNT   109
 

Definition at line 342 of file bytecode.h.

Referenced by yyparse().

#define STACKEMPTY   108
 

Definition at line 341 of file bytecode.h.

Referenced by yyparse().

#define STORE   5
 

Definition at line 228 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), and yyparse().

#define STRV   2
 

Definition at line 37 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_value_heap(), fprintf_value_tag(), refine_op(), snap_svc_convert_returnstruct2stack(), snap_svc_convert_stack2returnstruct(), and yyparse().

#define SUB   29
 

Definition at line 252 of file bytecode.h.

Referenced by fprintf_opcode(), and yyparse().

#define SUBI   30
 

Definition at line 253 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), refine_op(), and yyparse().

#define SVCV   92
 

Definition at line 319 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), marshal_packet(), and yyparse().

#define TAG_T   int
 

Definition at line 42 of file bytecode.h.

Referenced by fprintf_value_tag(), and refine_op().

#define TAGSZ   7
 

Definition at line 80 of file bytecode.h.

#define TPAJ   7
 

Definition at line 230 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_opcode(), and yyparse().

#define TUPLEV   4
 

Definition at line 39 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_value_heap(), fprintf_value_tag(), refine_op(), snap_svc_convert_stack2returnstruct(), and yyparse().

#define XOR   50
 

Definition at line 273 of file bytecode.h.

Referenced by fprintf_opcode().

#define XORI   51
 

Definition at line 274 of file bytecode.h.

Referenced by fprintf_instr(), and fprintf_opcode().

#define ZERO_VALUE_T   0
 

Definition at line 77 of file bytecode.h.


Typedef Documentation

typedef unsigned int instr_t
 

Definition at line 362 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_packet(), main(), marshal_packet(), patch_jumps(), and unmarshal_packet().

typedef unsigned int value_t
 

Definition at line 76 of file bytecode.h.

Referenced by fprintf_instr(), fprintf_packet(), fprintf_value(), fprintf_value_heap(), main(), marshal_packet(), newtup(), patch_jumps(), snap_svc_convert_returnstruct2stack(), snap_svc_convert_stack2returnstruct(), unmarshal_packet(), and yyparse().