summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Thurston <thurston@complang.org>2015-04-28 17:16:10 -0400
committerAdrian Thurston <thurston@complang.org>2015-04-28 17:16:10 -0400
commit8590a69c8ed31a04b24b59d69b7c0e94f8d93157 (patch)
tree5634eb38b19d6613e6346b0875dd4a9f809e693c
parenta8468f23fc35a03923a7719265726cb3d89fea9b (diff)
downloadragel-8590a69c8ed31a04b24b59d69b7c0e94f8d93157.tar.gz
try the current state in the ASM code generator
refs #15
-rw-r--r--src/asm.cc8
-rw-r--r--test/nfa2.rl2
2 files changed, 2 insertions, 8 deletions
diff --git a/src/asm.cc b/src/asm.cc
index 7e5c7fa7..bad63c98 100644
--- a/src/asm.cc
+++ b/src/asm.cc
@@ -1129,9 +1129,7 @@ std::ostream &AsmCodeGen::STATE_GOTOS()
GOTO_HEADER( st );
if ( st->nfaTargs != 0 && st->nfaTargs->length() > 0 ) {
- RedNfaTargs::Iter s = *st->nfaTargs;
- s.increment();
- for ( ; s.lte(); s++ ) {
+ for ( RedNfaTargs::Iter s = *st->nfaTargs; s.lte(); s++ ) {
out <<
" movq " << NFA_STACK() << ", %rax\n"
" movq " << NFA_TOP() << ", %rcx\n"
@@ -1142,10 +1140,6 @@ std::ostream &AsmCodeGen::STATE_GOTOS()
" addq $1, %rcx\n"
" movq %rcx, " << NFA_TOP() << "\n";
}
-
- RedStateAp *targ = st->nfaTargs->data[0].state;
- out <<
- " jmp " << LABEL( "en", targ->id ) << "\n";
}
/* Load *p. */
diff --git a/test/nfa2.rl b/test/nfa2.rl
index 556b8902..1726e02b 100644
--- a/test/nfa2.rl
+++ b/test/nfa2.rl
@@ -283,8 +283,8 @@ nfa_len:
##### OUTPUT #####
1
12
-1002000000002
saw 80808080
+1002000000002
222222
2123
-99