]> git.sesse.net Git - interpreter_trials/blob - interpreter.h
Add a tail-call variant with state as global variables in locked registers.
[interpreter_trials] / interpreter.h
1 #ifndef INTERPRETER_H
2 #define INTERPRETER_H
3
4 #include <utility>
5 #include <cstdint>
6
7 namespace interpreter1
8 {
9     std::pair<int32_t, uint32_t> interpreter_run(uint8_t *program, int32_t param);
10 }
11
12 namespace interpreter2
13 {
14     std::pair<int32_t, uint32_t> interpreter_run(uint8_t *program, int32_t param);
15 }
16
17 namespace interpreter3
18 {
19     std::pair<int32_t, uint32_t> interpreter_run(uint8_t *program, int32_t param);
20 }
21
22 namespace interpreter4
23 {
24     std::pair<int32_t, uint32_t> interpreter_run(uint8_t *program, int32_t param);
25 }
26
27 namespace interpreter5
28 {
29     std::pair<int32_t, uint32_t> interpreter_run(uint8_t *program, int32_t param);
30 }
31
32 namespace interpreter6
33 {
34     std::pair<int32_t, uint32_t> interpreter_run(uint8_t *program, int32_t param);
35 }
36
37 namespace interpreter7
38 {
39     std::pair<int32_t, uint32_t> interpreter_run(uint8_t *program, int32_t param);
40 }
41
42 namespace interpreter8
43 {
44     std::pair<int32_t, uint32_t> interpreter_run(uint8_t *program, int32_t param);
45 }
46
47 namespace interpreter9
48 {
49     std::pair<int32_t, uint32_t> interpreter_run(uint8_t *program, int32_t param);
50 }
51
52 namespace interpreter10
53 {
54     std::pair<int32_t, uint32_t> interpreter_run(uint8_t *program, int32_t param);
55 }
56
57 namespace interpreter11
58 {
59     std::pair<int32_t, uint32_t> interpreter_run(uint8_t *program, int32_t param);
60 }
61
62 namespace interpreter12
63 {
64     std::pair<int32_t, uint32_t> interpreter_run(uint8_t *program, int32_t param);
65 }
66
67 #endif