Mercurial > repos > rhope
annotate runtime/rhopefuncs_prolog.c @ 176:327bcf35e094
Add bytecode interpreter
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 08 Jun 2011 23:24:29 -0700 |
parents | bac2c74801f0 |
children | e57c151f351e |
rev | line source |
---|---|
162
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
1 #ifdef ENABLE_PROFILING |
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
2 uint64_t profile_counts[END]; |
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
3 uint64_t profile_nestedcounts[END]; |
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
4 uint64_t profile_totals[END]; |
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
5 uint64_t profile_selftotals[END]; |
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
6 uint64_t profile_activationlevel[END]; |
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
7 #endif |
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
8 |
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
9 int32_t rhope(uint32_t func, object ** params, uint16_t numparams, uint16_t callspace) |
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
10 { |
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
11 #ifdef ENABLE_PROFILING |
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
12 struct timeval proftime; |
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
13 #endif |
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
14 uint16_t resume,idx, vcparam_offset, last_vcparam; |
176 | 15 uint32_t *bytecode, *cur_instruction, op1, op2, accum; |
16 object ** interp_consts; | |
17 void * interp_dispatch[] = { | |
18 &&interp_call, | |
19 &&interp_param, | |
20 &&interp_load, | |
21 &&interp_and, | |
22 &&interp_or, | |
23 &&interp_not, | |
24 &&interp_branch, | |
25 &&interp_saveresult, | |
26 &&interp_addref, | |
27 &&interp_release, | |
28 &&interp_return, | |
29 &&interp_nop, | |
30 &&interp_nop, | |
31 &&interp_nop, | |
32 &&interp_nop, | |
33 &&interp_nop | |
34 }; | |
35 | |
162
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
36 context *ct,*temp_ct; |
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
37 void *tmp; |
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
38 calldata * cdata, *temp_cdata, *my_cdata; |
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
39 DispatchVar |
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
40 FuncDef(Build) |
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
41 FuncDef(BlueprintSP_Of) |
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
42 FuncDef(ID) |
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
43 FuncDef(BlueprintSP_FromSP_ID) |
176 | 44 void ** lv_RunSP_Bytecode; |
162
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
45 |