aboutsummaryrefslogtreecommitdiff
path: root/elymas/lib/sys/opt.ey
diff options
context:
space:
mode:
authorDrahflow <drahflow@gmx.de>2015-06-16 16:45:09 +0200
committerDrahflow <drahflow@gmx.de>2015-06-16 16:45:09 +0200
commit87b60ff694de44bbf7a91cd408d675cad681be76 (patch)
tree8a5ab041baba6fe02ef26721664605c6daaf5503 /elymas/lib/sys/opt.ey
parent7f5b57f1f6e6ba311c24f6b38c27cf2bff31d190 (diff)
Some performance improvements
Diffstat (limited to 'elymas/lib/sys/opt.ey')
-rw-r--r--elymas/lib/sys/opt.ey13
1 files changed, 11 insertions, 2 deletions
diff --git a/elymas/lib/sys/opt.ey b/elymas/lib/sys/opt.ey
index 6a8f0c1..2ad40b8 100644
--- a/elymas/lib/sys/opt.ey
+++ b/elymas/lib/sys/opt.ey
@@ -495,10 +495,14 @@
{ action CALL eq
{ 1 entry * "." | ::rawCodeAddress eq }' andif
{ 0 last * PUSH eq }' andif
- { 0 secondLast * STATICTYPED eq }' andif
+ { 0 secondLast * STATICTYPED eq 0 secondLast * PUSH eq or }' andif
}' {
1 last * ::rawObject ==constant
- 4 secondLast * ==relevantScope
+ 0 secondLast * STATICTYPED eq {
+ 4 secondLast *
+ } {
+ 1 secondLast * ::rawObject
+ } ? * ==relevantScope
constant relevantScope sys .resolveInfo _ ==loadedObject {
==mode -- ==parentCount 32 add ==offsetInScope ==inExtensionArea
@@ -1789,6 +1793,11 @@
} ? *
} ? *
}
+ { action CALL eq { 1 entry * "[" | ::rawCodeAddress eq }' andif }' {
+ [ NATIVENOSCOPE [
+ ARRAYMARKER :pushqImm32
+ ] ] =entry
+ }
] conds
last