File: stub.c

package info (click to toggle)
chicken 2.3-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 26,000 kB
  • ctags: 36,462
  • sloc: ansic: 393,078; lisp: 41,654; sh: 7,989; makefile: 403
file content (166 lines) | stat: -rw-r--r-- 5,043 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
/* Generated from stub.scm by the Chicken compiler
   2005-11-02 20:06
   Version 2, Build 207 - linux-unix-gnu-x86 - [ libffi dload ptables ]
   command line: stub.scm -quiet -no-trace -optimize-level 2 -include-path . -output-file stub.c -explicit-use
   unit: default_stub
*/

#include "chicken.h"

static C_PTABLE_ENTRY *create_ptable(void);
C_externimport void C_library_toplevel(C_word c,C_word d,C_word k) C_noret;
C_externimport void C_eval_toplevel(C_word c,C_word d,C_word k) C_noret;
C_externimport void C_extras_toplevel(C_word c,C_word d,C_word k) C_noret;

static C_TLS C_word lf[3];


C_externexport void C_default_stub_toplevel(C_word c,C_word t0,C_word t1) C_noret;
static void f_14(C_word c,C_word t0,C_word t1) C_noret;
static void f_17(C_word c,C_word t0,C_word t1) C_noret;
static void f_20(C_word c,C_word t0,C_word t1) C_noret;
static void C_fcall f_25(C_word t0,C_word t1) C_noret;
static void f_29(C_word c,C_word t0,C_word t1) C_noret;
static void f_23(C_word c,C_word t0,C_word t1) C_noret;

static void C_fcall trf_25(void *dummy) C_regparm C_noret;
C_regparm static void C_fcall trf_25(void *dummy){
C_word t1=C_pick(0);
C_word t0=C_pick(1);
C_adjust_stack(-2);
f_25(t0,t1);}

static void C_fcall tr2(C_proc2 k) C_regparm C_noret;
C_regparm static void C_fcall tr2(C_proc2 k){
C_word t1=C_pick(0);
C_word t0=C_pick(1);
C_adjust_stack(-2);
(k)(2,t0,t1);}

/* toplevel */
static C_TLS int toplevel_initialized=0;
static void C_fcall toplevel_trampoline(void *dummy) C_regparm C_noret;
C_regparm static void C_fcall toplevel_trampoline(void *dummy){
C_default_stub_toplevel(2,C_SCHEME_UNDEFINED,C_restore);}

void C_default_stub_toplevel(C_word c,C_word t0,C_word t1){
C_word tmp;
C_word t2;
C_word t3;
C_word *a;
if(toplevel_initialized) C_kontinue(t1,C_SCHEME_UNDEFINED);
else C_toplevel_entry(C_text("default_stub_toplevel"));
C_check_nursery_minimum(3);
if(!C_demand(3)){
C_save(t1);
C_reclaim((void*)toplevel_trampoline,NULL);}
toplevel_initialized=1;
if(!C_demand_2(9)){
C_save(t1);
C_rereclaim2(9*sizeof(C_word), 1);
t1=C_restore;}
a=C_alloc(3);
C_initialize_lf(lf,3);
lf[0]=C_h_intern(&lf[0],14,"return-to-host");
lf[1]=C_static_lambda_info(C_heaptop,6,"(loop)");
lf[2]=C_static_lambda_info(C_heaptop,10,"(toplevel)");
C_register_lf2(lf,3,create_ptable());
t2=(*a=C_CLOSURE_TYPE|2,a[1]=(C_word)f_14,a[2]=t1,tmp=(C_word)a,a+=3,tmp);
C_library_toplevel(2,C_SCHEME_UNDEFINED,t2);}

/* k12 */
static void f_14(C_word c,C_word t0,C_word t1){
C_word tmp;
C_word t2;
C_word t3;
C_word ab[3],*a=ab;
C_check_for_interrupt;
if(!C_stack_probe(&a)){
C_save_and_reclaim((void*)tr2,(void*)f_14,2,t0,t1);}
t2=(*a=C_CLOSURE_TYPE|2,a[1]=(C_word)f_17,a[2]=((C_word*)t0)[2],tmp=(C_word)a,a+=3,tmp);
C_eval_toplevel(2,C_SCHEME_UNDEFINED,t2);}

/* k15 in k12 */
static void f_17(C_word c,C_word t0,C_word t1){
C_word tmp;
C_word t2;
C_word t3;
C_word ab[3],*a=ab;
C_check_for_interrupt;
if(!C_stack_probe(&a)){
C_save_and_reclaim((void*)tr2,(void*)f_17,2,t0,t1);}
t2=(*a=C_CLOSURE_TYPE|2,a[1]=(C_word)f_20,a[2]=((C_word*)t0)[2],tmp=(C_word)a,a+=3,tmp);
C_extras_toplevel(2,C_SCHEME_UNDEFINED,t2);}

/* k18 in k15 in k12 */
static void f_20(C_word c,C_word t0,C_word t1){
C_word tmp;
C_word t2;
C_word t3;
C_word t4;
C_word t5;
C_word t6;
C_word ab[9],*a=ab;
C_check_for_interrupt;
if(!C_stack_probe(&a)){
C_save_and_reclaim((void*)tr2,(void*)f_20,2,t0,t1);}
t2=(*a=C_CLOSURE_TYPE|2,a[1]=(C_word)f_23,a[2]=((C_word*)t0)[2],tmp=(C_word)a,a+=3,tmp);
t3=C_SCHEME_UNDEFINED;
t4=(*a=C_VECTOR_TYPE|1,a[1]=t3,tmp=(C_word)a,a+=2,tmp);
t5=C_set_block_item(t4,0,(*a=C_CLOSURE_TYPE|3,a[1]=(C_word)f_25,a[2]=t4,a[3]=lf[1],tmp=(C_word)a,a+=4,tmp));
t6=((C_word*)t4)[1];
f_25(t6,t2);}

/* loop in k18 in k15 in k12 */
static void C_fcall f_25(C_word t0,C_word t1){
C_word tmp;
C_word t2;
C_word t3;
C_word ab[4],*a=ab;
C_check_for_interrupt;
if(!C_stack_probe(&a)){
C_save_and_reclaim((void*)trf_25,NULL,2,t0,t1);}
t2=(*a=C_CLOSURE_TYPE|3,a[1]=(C_word)f_29,a[2]=t1,a[3]=((C_word*)t0)[2],tmp=(C_word)a,a+=4,tmp);
/* stub.scm: 41   return-to-host */
t3=*((C_word*)lf[0]+1);
((C_proc2)(void*)(*((C_word*)t3+1)))(2,t3,t2);}

/* k27 in loop in k18 in k15 in k12 */
static void f_29(C_word c,C_word t0,C_word t1){
C_word tmp;
C_word t2;
C_word *a;
/* stub.scm: 41   loop */
t2=((C_word*)((C_word*)t0)[3])[1];
f_25(t2,((C_word*)t0)[2]);}

/* k21 in k18 in k15 in k12 */
static void f_23(C_word c,C_word t0,C_word t1){
C_word tmp;
C_word t2;
C_word *a;
t2=((C_word*)t0)[2];
((C_proc2)(void*)(*((C_word*)t2+1)))(2,t2,C_SCHEME_UNDEFINED);}

static C_PTABLE_ENTRY *create_ptable(void){
C_PTABLE_ENTRY *pt=NULL;
#ifdef C_ENABLE_PTABLES
pt=(C_PTABLE_ENTRY *)C_malloc(sizeof(C_PTABLE_ENTRY) * 8);
pt[0].id="toplevelstub.scm";
pt[0].ptr=C_default_stub_toplevel;
pt[1].id="f_14stub.scm";
pt[1].ptr=f_14;
pt[2].id="f_17stub.scm";
pt[2].ptr=f_17;
pt[3].id="f_20stub.scm";
pt[3].ptr=f_20;
pt[4].id="f_25stub.scm";
pt[4].ptr=f_25;
pt[5].id="f_29stub.scm";
pt[5].ptr=f_29;
pt[6].id="f_23stub.scm";
pt[6].ptr=f_23;
pt[7].id=NULL;
#endif
return pt;}
/* end of file */