aboutsummaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
authorDrahflow <drahflow@gmx.de>2013-09-10 10:55:54 +0200
committerDrahflow <drahflow@gmx.de>2013-09-10 10:55:54 +0200
commit7af5d9f1f7c7746fb10b8e26eda693625f871883 (patch)
treeda48e69d8821406c21b2e24639e70e2f0a729abb /compiler
parentb7b2ef2c65a4b6e3d97c1e835ca82484f33f037c (diff)
Using new bitfield ops in regex
Diffstat (limited to 'compiler')
-rw-r--r--compiler/standardClient.ey14
1 files changed, 8 insertions, 6 deletions
diff --git a/compiler/standardClient.ey b/compiler/standardClient.ey
index 7c7415f..dffbbb3 100644
--- a/compiler/standardClient.ey
+++ b/compiler/standardClient.ey
@@ -227,19 +227,21 @@
# TODO think about implementation efficiency
{ ==maxSize
- [ maxSize { 1 }" rep ] ==fullOne
+ str .|bitTest /bitTest deffd
+ str .|bitSet /bitSet deffd
+ str .|zero /zero deffd
<
0 ==size
[ maxSize { 0 }" rep ] =*get
- [ fullOne _ len dearray ] =*pcFree
+ maxSize 1 sub 8 div 1 add 8 mul str .alloc _ zero ==pcUsed
{ # ==thread
- _ threadGetPC pcFree {
+ _ threadGetPC pcUsed bitTest { -- }" {
_ size |get =[]
- 0 -01 threadGetPC |pcFree =[]
+ threadGetPC pcUsed bitSet
size 1 origadd =size
- }" { -- }" ? *
+ }" ? *
}' /add deffst
{
@@ -249,7 +251,7 @@
{
0 =size
- [ fullOne _ len dearray ] =pcFree
+ pcUsed zero
}' /clear deffst
> } /threadList deffd