annotate runtime/rhopefuncs_prolog.c @ 177:e57c151f351e

Get bytecode engine working well enough for naive fib
author Mike Pavone <pavone@retrodev.com>
date Sun, 12 Jun 2011 03:49:51 -0700
parents 327bcf35e094
children ba35ab624ec2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
327bcf35e094 Add bytecode interpreter
Mike Pavone <pavone@retrodev.com>
parents: 162
diff changeset
15 uint32_t *bytecode, *cur_instruction, op1, op2, accum;
327bcf35e094 Add bytecode interpreter
Mike Pavone <pavone@retrodev.com>
parents: 162
diff changeset
16 object ** interp_consts;
327bcf35e094 Add bytecode interpreter
Mike Pavone <pavone@retrodev.com>
parents: 162
diff changeset
17 void * interp_dispatch[] = {
327bcf35e094 Add bytecode interpreter
Mike Pavone <pavone@retrodev.com>
parents: 162
diff changeset
18 &&interp_call,
327bcf35e094 Add bytecode interpreter
Mike Pavone <pavone@retrodev.com>
parents: 162
diff changeset
19 &&interp_param,
327bcf35e094 Add bytecode interpreter
Mike Pavone <pavone@retrodev.com>
parents: 162
diff changeset
20 &&interp_load,
327bcf35e094 Add bytecode interpreter
Mike Pavone <pavone@retrodev.com>
parents: 162
diff changeset
21 &&interp_and,
327bcf35e094 Add bytecode interpreter
Mike Pavone <pavone@retrodev.com>
parents: 162
diff changeset
22 &&interp_or,
327bcf35e094 Add bytecode interpreter
Mike Pavone <pavone@retrodev.com>
parents: 162
diff changeset
23 &&interp_not,
327bcf35e094 Add bytecode interpreter
Mike Pavone <pavone@retrodev.com>
parents: 162
diff changeset
24 &&interp_branch,
327bcf35e094 Add bytecode interpreter
Mike Pavone <pavone@retrodev.com>
parents: 162
diff changeset
25 &&interp_saveresult,
327bcf35e094 Add bytecode interpreter
Mike Pavone <pavone@retrodev.com>
parents: 162
diff changeset
26 &&interp_addref,
327bcf35e094 Add bytecode interpreter
Mike Pavone <pavone@retrodev.com>
parents: 162
diff changeset
27 &&interp_release,
177
e57c151f351e Get bytecode engine working well enough for naive fib
Mike Pavone <pavone@retrodev.com>
parents: 176
diff changeset
28 &&interp_move,
176
327bcf35e094 Add bytecode interpreter
Mike Pavone <pavone@retrodev.com>
parents: 162
diff changeset
29 &&interp_return,
327bcf35e094 Add bytecode interpreter
Mike Pavone <pavone@retrodev.com>
parents: 162
diff changeset
30 &&interp_nop,
327bcf35e094 Add bytecode interpreter
Mike Pavone <pavone@retrodev.com>
parents: 162
diff changeset
31 &&interp_nop,
327bcf35e094 Add bytecode interpreter
Mike Pavone <pavone@retrodev.com>
parents: 162
diff changeset
32 &&interp_nop,
327bcf35e094 Add bytecode interpreter
Mike Pavone <pavone@retrodev.com>
parents: 162
diff changeset
33 &&interp_nop,
327bcf35e094 Add bytecode interpreter
Mike Pavone <pavone@retrodev.com>
parents: 162
diff changeset
34 &&interp_nop
327bcf35e094 Add bytecode interpreter
Mike Pavone <pavone@retrodev.com>
parents: 162
diff changeset
35 };
327bcf35e094 Add bytecode interpreter
Mike Pavone <pavone@retrodev.com>
parents: 162
diff changeset
36
162
bac2c74801f0 Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
37 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
38 void *tmp;
bac2c74801f0 Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
39 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
40 DispatchVar
bac2c74801f0 Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
41 FuncDef(Build)
bac2c74801f0 Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
42 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
43 FuncDef(ID)
bac2c74801f0 Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
44 FuncDef(BlueprintSP_FromSP_ID)
176
327bcf35e094 Add bytecode interpreter
Mike Pavone <pavone@retrodev.com>
parents: 162
diff changeset
45 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
46