diff options
| author | Drahflow <drahflow@gmx.de> | 2013-09-24 10:40:37 +0200 |
|---|---|---|
| committer | Drahflow <drahflow@gmx.de> | 2013-09-24 10:40:37 +0200 |
| commit | c2182784d2237b15dddebec66473a5726faa07a4 (patch) | |
| tree | 02943cc1fb8d8886d2a0abb00e1d3769e92beb25 /compiler/standardClient.ey | |
| parent | bd4fe14e2a77ceac5c8c234de05c514fdd6d7bf4 (diff) | |
Saner patching of static loads
Diffstat (limited to 'compiler/standardClient.ey')
| -rw-r--r-- | compiler/standardClient.ey | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/compiler/standardClient.ey b/compiler/standardClient.ey index 643a805..e00279f 100644 --- a/compiler/standardClient.ey +++ b/compiler/standardClient.ey @@ -220,17 +220,20 @@ }" /cloneThread deffd { #==thread ==newpc + 0 -1201 =[] + }" /updateThread deffd + + { #==thread ==newpc [ -0201 threadGetCaptures _ len dearray ] ] }" /fullCloneThread deffd |add /origadd deffd + str .|bitTest /bitTest deffd + str .|bitSet /bitSet deffd + str .|zero /zero deffd # TODO think about implementation efficiency { ==maxSize - str .|bitTest /bitTest deffd - str .|bitSet /bitSet deffd - str .|zero /zero deffd - < 0 ==size [ maxSize { 0 }" rep ] =*get @@ -281,7 +284,7 @@ clist .clear }" { # TERM position maxPosition lt { - position string * 1 code * { pc 1 add thread cloneThread nlist .add }" rep + position string * 1 code * { pc 1 add thread updateThread nlist .add }" rep }" rep }" { # JUMP pc 1 code add thread cloneThread iPush @@ -302,6 +305,7 @@ 0 ==i { position maxPosition le }" { 0 =i + { i clist .size lt }" { i clist .get _ =thread threadGetPC _ =pc |
