aboutsummaryrefslogtreecommitdiff
path: root/elymas/lib/sys/opt.ey
diff options
context:
space:
mode:
authorDrahflow <drahflow@gmx.de>2015-06-11 17:26:54 +0200
committerDrahflow <drahflow@gmx.de>2015-06-11 17:26:54 +0200
commitd5522af2a968f5745feed83e60cc93f6bf65bdbc (patch)
treee05b48f523cd167f9b11522b7168af5b32964980 /elymas/lib/sys/opt.ey
parent21c4c6c58892bf2c6fc9211de2120980c11bf1f3 (diff)
Omit trace tests if useless
Diffstat (limited to 'elymas/lib/sys/opt.ey')
-rw-r--r--elymas/lib/sys/opt.ey24
1 files changed, 14 insertions, 10 deletions
diff --git a/elymas/lib/sys/opt.ey b/elymas/lib/sys/opt.ey
index 35345b4..a2c7f71 100644
--- a/elymas/lib/sys/opt.ey
+++ b/elymas/lib/sys/opt.ey
@@ -2102,16 +2102,20 @@
}
{ action CONDITIONALTAIL eq }' {
- [
- 1 /rax :movqImmReg
- ] emitOpcodes
- 1 entry emitOpcodes
- [
- /rax /rax :testqRegReg
- 2 entry len newFooter len add :jzRel32
- ] emitOpcodes
- 2 entry emitOpcodes
- newFooter emitOpcodes
+ 1 entry len {
+ [
+ 1 /rax :movqImmReg
+ ] emitOpcodes
+ 1 entry emitOpcodes
+ [
+ /rax /rax :testqRegReg
+ 2 entry len newFooter len add :jzRel32
+ ] emitOpcodes
+ 2 entry emitOpcodes
+ newFooter emitOpcodes
+ } {
+ 2 entry emitOpcodes # test would always succeed, footer will follow immediately
+ } ? *
}
{ 1 }' {