Mercurial > repos > rhope
annotate runtime/rhopefuncs_prolog.c @ 189:d0e3a13c1bd9 default tip
Remove old calculator example
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Fri, 07 Oct 2011 00:24:04 -0700 |
parents | ba35ab624ec2 |
children |
rev | line source |
---|---|
186
ba35ab624ec2
Add support for raw C function output from C backend as well as an option to use Boehm-GC instead of reference counting
Mike Pavone <pavone@retrodev.com>
parents:
177
diff
changeset
|
1 #ifdef RAW_FUNC |
ba35ab624ec2
Add support for raw C function output from C backend as well as an option to use Boehm-GC instead of reference counting
Mike Pavone <pavone@retrodev.com>
parents:
177
diff
changeset
|
2 FuncDef(Build) |
ba35ab624ec2
Add support for raw C function output from C backend as well as an option to use Boehm-GC instead of reference counting
Mike Pavone <pavone@retrodev.com>
parents:
177
diff
changeset
|
3 FuncDef(BlueprintSP_Of) |
ba35ab624ec2
Add support for raw C function output from C backend as well as an option to use Boehm-GC instead of reference counting
Mike Pavone <pavone@retrodev.com>
parents:
177
diff
changeset
|
4 FuncDef(ID) |
ba35ab624ec2
Add support for raw C function output from C backend as well as an option to use Boehm-GC instead of reference counting
Mike Pavone <pavone@retrodev.com>
parents:
177
diff
changeset
|
5 FuncDef(BlueprintSP_FromSP_ID) |
ba35ab624ec2
Add support for raw C function output from C backend as well as an option to use Boehm-GC instead of reference counting
Mike Pavone <pavone@retrodev.com>
parents:
177
diff
changeset
|
6 |
ba35ab624ec2
Add support for raw C function output from C backend as well as an option to use Boehm-GC instead of reference counting
Mike Pavone <pavone@retrodev.com>
parents:
177
diff
changeset
|
7 object * tmp; |
ba35ab624ec2
Add support for raw C function output from C backend as well as an option to use Boehm-GC instead of reference counting
Mike Pavone <pavone@retrodev.com>
parents:
177
diff
changeset
|
8 #else |
ba35ab624ec2
Add support for raw C function output from C backend as well as an option to use Boehm-GC instead of reference counting
Mike Pavone <pavone@retrodev.com>
parents:
177
diff
changeset
|
9 |
162
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
10 #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
|
11 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
|
12 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
|
13 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
|
14 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
|
15 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
|
16 #endif |
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
17 |
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
18 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
|
19 { |
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
20 #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
|
21 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
|
22 #endif |
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
23 uint16_t resume,idx, vcparam_offset, last_vcparam; |
176 | 24 uint32_t *bytecode, *cur_instruction, op1, op2, accum; |
25 object ** interp_consts; | |
26 void * interp_dispatch[] = { | |
27 &&interp_call, | |
28 &&interp_param, | |
29 &&interp_load, | |
30 &&interp_and, | |
31 &&interp_or, | |
32 &&interp_not, | |
33 &&interp_branch, | |
34 &&interp_saveresult, | |
35 &&interp_addref, | |
36 &&interp_release, | |
177
e57c151f351e
Get bytecode engine working well enough for naive fib
Mike Pavone <pavone@retrodev.com>
parents:
176
diff
changeset
|
37 &&interp_move, |
176 | 38 &&interp_return, |
39 &&interp_nop, | |
40 &&interp_nop, | |
41 &&interp_nop, | |
42 &&interp_nop, | |
43 &&interp_nop | |
44 }; | |
45 | |
162
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
46 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
|
47 void *tmp; |
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
48 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
|
49 DispatchVar |
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
50 FuncDef(Build) |
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
51 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
|
52 FuncDef(ID) |
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
53 FuncDef(BlueprintSP_FromSP_ID) |
176 | 54 void ** lv_RunSP_Bytecode; |
186
ba35ab624ec2
Add support for raw C function output from C backend as well as an option to use Boehm-GC instead of reference counting
Mike Pavone <pavone@retrodev.com>
parents:
177
diff
changeset
|
55 #endif //RAW_FUNC |
162
bac2c74801f0
Move some C code out of cbackend_c.rhope into separate include files
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
56 |