diff options
Diffstat (limited to 'test/ragel.d/genrep3.rl')
-rw-r--r-- | test/ragel.d/genrep3.rl | 623 |
1 files changed, 0 insertions, 623 deletions
diff --git a/test/ragel.d/genrep3.rl b/test/ragel.d/genrep3.rl deleted file mode 100644 index c3940e1e..00000000 --- a/test/ragel.d/genrep3.rl +++ /dev/null @@ -1,623 +0,0 @@ -# -# @LANG: asm -# - -%%{ - - machine gen_rep; - - action eol { - # p+1 == eof - - # Not the most efficient - movq $0, %rax - movq %r12, %rcx - addq $1, %rcx - movq -8(%rbp), %rdx - cmpq %rcx, %rdx - jne 1f - movq $1, %rax - 1: - } - - eol = '' %when eol; - - - action ini { - # ini - movl $0, c(%rip) - movq $1, %rax - } - - action stay { - # stay - movq $1, %rax - } - - action repeat { - # repeat - - movl c(%rip), %eax - addl $1, %eax - movl %eax, c(%rip) - - cmpl $3, %eax - setl %al - movzbl %al, %eax - } - - action exit { - # exit - - movl c(%rip), %eax - addl $1, %eax - movl %eax, c(%rip) - - cmpl $2, %eax - setge %al - movzbl %al, %eax - } - - action psh - { - # PUSH - movq nfa_s@GOTPCREL(%rip), %rax - movq -88(%rbp), %rcx - sal $3, %rcx - movl c(%rip), %edx - movq %rdx, 0(%rax,%rcx,) - - # movl $.L_push, %edi - # call puts - } - - action pop - { - # POP - movq nfa_s@GOTPCREL(%rip), %rax - movq -88(%rbp), %rcx - sal $3, %rcx - movq 0(%rax,%rcx,), %rdx - movl %edx, c(%rip) - movq $1, %rax - - # movl $.L_pop, %edi - # call puts - } - - action char - { - # movl $.L_char, %edi - # movq c(%rip), %rsi - # movl $0, %eax - # call printf - } - - action marker1 - { - movl $.L_marker, %edi - call puts - movl m1(%rip), %eax - } - - action marker2 - { - movl m2(%rip), %eax - } - - - main := - ( - ( ( '' %when marker1 | '' %when marker2 ) - :nfa( ( 'a' @char ) , - psh, pop, ini, stay, repeat, exit ): ' ' ) {2} - eol - ) - :> - any - @{ - # printf("----- MATCH\n"); - movl $.L_match, %edi - call puts - } - ; - -}%% - .file "tmp.c" - .comm neg,4,4 - .comm val,8,8 - .comm cs,4,4 - .comm c,4,4 - .comm m1,4,4 - .comm m2,4,4 - .section .rodata - -%% write data; - -.L_fmt_si_nl: - .string "set top: %ld\n" -.L_fmt_ci_nl: - .string "check top: %ld\n" -.L_fmt_s_nl: - .string "restart: %d\n" -.L_marker: - .string " marker" -.L_match: - .string "----- MATCH" - -.L_break: - .string "============" - -.L_push: - .string "push" -.L_pop: - .string "pop" -.L_char: - .string "char %d\n" -.L_ini: - .string "ini" -.L_min: - .string "min %d\n" -.L_max: - .string "max" - - .text - .globl init - .type init, @function -init: -.LFB0: - .cfi_startproc - pushq %rbp - .cfi_def_cfa_offset 16 - .cfi_offset 6, -16 - movq %rsp, %rbp - .cfi_def_cfa_register 6 - movq $0, val(%rip) - movl $0, neg(%rip) - -%% write init; - - movq %r11, cs(%rip) - - popq %rbp - .cfi_def_cfa 7, 8 - ret - .cfi_endproc -.LFE0: - .size init, .-init - .section .rodata -.LC0: - .string "%i" - .text - .globl exec - .type exec, @function -exec: -.LFB1: - .cfi_startproc - pushq %rbp - .cfi_def_cfa_offset 16 - .cfi_offset 6, -16 - movq %rsp, %rbp - .cfi_def_cfa_register 6 - subq $96, %rsp - - pushq %r12 - pushq %r13 - - movq nfa_bp@GOTPCREL(%rip), %rax - movq %rax, -80(%rbp) - movq $0, -88(%rbp) - - movq cs(%rip), %r11 - movq %rdi, %r12 - movq %rsi, %r13 - - movq %r13, -8(%rbp) - -%% write exec; - - movq %r11, cs(%rip) - - popq %r13 - popq %r12 - -.LRET: - leave - .cfi_def_cfa 7, 8 - ret - .cfi_endproc -.LFE1: - .size exec, .-exec - - .text - .globl finish - .type finish, @function -finish: -.LFB2: - .cfi_startproc - pushq %rbp - .cfi_def_cfa_offset 16 - .cfi_offset 6, -16 - movq %rsp, %rbp - .cfi_def_cfa_register 6 - - popq %rbp - .cfi_def_cfa 7, 8 - ret - .cfi_endproc -.LFE2: - .size finish, .-finish - .globl inp - - .section .rodata -.LC10: - .string "a " -.LC11: - .string "aa " -.LC12: - .string "aaa " -.LC13: - .string "aaaa " -.LC14: - .string "a a " -.LC15: - .string "aa aa " -.LC16: - .string "aaa aaa " -.LC17: - .string "aaaa aaaa " -.LC18: - .string "a a a " -.LC19: - .string "aa aa aa " -.LC20: - .string "aaa aaa aaa " -.LC21: - .string "aaaa aaaa aaaa " -.LC22: - .string "aa a " -.LC23: - .string "aa aaa " -.LC24: - .string "aa aaaa " -.LC25: - .string "aaa a " -.LC26: - .string "aaa aa " -.LC27: - .string "aaa aaaa " - - .data - .align 32 - .type inp, @object - .size inp, 72 -inp: - .quad .LC10 - .quad .LC11 - .quad .LC12 - .quad .LC13 - .quad .LC14 - .quad .LC15 - .quad .LC16 - .quad .LC17 - .quad .LC18 - .quad .LC19 - .quad .LC20 - .quad .LC21 - .quad .LC22 - .quad .LC23 - .quad .LC24 - .quad .LC25 - .quad .LC26 - .quad .LC27 - .globl inplen - .align 4 - .type inplen, @object - .size inplen, 4 -inplen: - .long 18 - .text - - .globl test_run - .type test_run, @function -test_run: -.LFB3: - .cfi_startproc - pushq %rbp - .cfi_def_cfa_offset 16 - .cfi_offset 6, -16 - movq %rsp, %rbp - .cfi_def_cfa_register 6 - subq $16, %rsp - movl $0, -4(%rbp) - - movl $.L_break, %edi - call puts - - jmp .L39 -.L40: - movl $0, %eax - call init - - movl -4(%rbp), %eax - cltq - movq inp(,%rax,8), %rax - movq %rax, %rdi - call puts - - movl -4(%rbp), %eax - cltq - movq inp(,%rax,8), %rax - movq %rax, %rdi - call strlen - movl %eax, %edx - addl $1, %edx - movl -4(%rbp), %eax - cltq - movq inp(,%rax,8), %rax - movslq %edx, %rsi - addq %rax, %rsi - movq %rax, %rdi - call exec - movl $0, %eax - call finish - addl $1, -4(%rbp) -.L39: - movl inplen(%rip), %eax - cmpl %eax, -4(%rbp) - jl .L40 - movl $0, %eax - leave - .cfi_def_cfa 7, 8 - ret - .cfi_endproc -.LFE3: - .size test_run, .-test_run - - - .globl main - .type main, @function -main: -.LFB4: - .cfi_startproc - pushq %rbp - .cfi_def_cfa_offset 16 - .cfi_offset 6, -16 - movq %rsp, %rbp - .cfi_def_cfa_register 6 - subq $16, %rsp - movl $0, -4(%rbp) - - movl $0, m1(%rip) - movl $0, m2(%rip) - call test_run - - movl $1, m1(%rip) - movl $0, m2(%rip) - call test_run - - movl $0, m1(%rip) - movl $1, m2(%rip) - call test_run - - movl $1, m1(%rip) - movl $1, m2(%rip) - call test_run - - movl $0, %eax - leave - .cfi_def_cfa 7, 8 - ret - .cfi_endproc -.LFE4: - .size main, .-main - - .bss - .align 16 - .type nfa_len, @object - .size nfa_len, 8 -nfa_len: - .zero 8 - .comm nfa_bp,16384,32 - .comm nfa_s,16384,32 - - .ident "GCC: (Ubuntu 4.8.2-19ubuntu1) 4.8.2" - .section .note.GNU-stack,"",@progbits - -##### OUTPUT ##### -============ -a - marker -aa - marker -aaa - marker -aaaa - marker -a a - marker -aa aa - marker -aaa aaa - marker -aaaa aaaa - marker -a a a - marker -aa aa aa - marker -aaa aaa aaa - marker -aaaa aaaa aaaa - marker -aa a - marker -aa aaa - marker -aa aaaa - marker -aaa a - marker -aaa aa - marker -aaa aaaa - marker -============ -a - marker -aa - marker - marker -aaa - marker - marker -aaaa - marker -a a - marker -aa aa - marker - marker ------ MATCH -aaa aaa - marker - marker ------ MATCH -aaaa aaaa - marker -a a a - marker -aa aa aa - marker - marker -aaa aaa aaa - marker - marker -aaaa aaaa aaaa - marker -aa a - marker - marker -aa aaa - marker - marker ------ MATCH -aa aaaa - marker - marker -aaa a - marker - marker -aaa aa - marker - marker ------ MATCH -aaa aaaa - marker - marker -============ -a - marker -aa - marker - marker -aaa - marker - marker -aaaa - marker -a a - marker -aa aa - marker - marker ------ MATCH -aaa aaa - marker - marker ------ MATCH -aaaa aaaa - marker -a a a - marker -aa aa aa - marker - marker -aaa aaa aaa - marker - marker -aaaa aaaa aaaa - marker -aa a - marker - marker -aa aaa - marker - marker ------ MATCH -aa aaaa - marker - marker -aaa a - marker - marker -aaa aa - marker - marker ------ MATCH -aaa aaaa - marker - marker -============ -a - marker -aa - marker - marker -aaa - marker - marker -aaaa - marker -a a - marker -aa aa - marker - marker ------ MATCH -aaa aaa - marker - marker ------ MATCH -aaaa aaaa - marker -a a a - marker -aa aa aa - marker - marker -aaa aaa aaa - marker - marker -aaaa aaaa aaaa - marker -aa a - marker - marker -aa aaa - marker - marker ------ MATCH -aa aaaa - marker - marker -aaa a - marker - marker -aaa aa - marker - marker ------ MATCH -aaa aaaa - marker - marker |