summaryrefslogtreecommitdiff
path: root/test/ragel.d/atoi5.rl
diff options
context:
space:
mode:
Diffstat (limited to 'test/ragel.d/atoi5.rl')
-rw-r--r--test/ragel.d/atoi5.rl266
1 files changed, 0 insertions, 266 deletions
diff --git a/test/ragel.d/atoi5.rl b/test/ragel.d/atoi5.rl
deleted file mode 100644
index c2928967..00000000
--- a/test/ragel.d/atoi5.rl
+++ /dev/null
@@ -1,266 +0,0 @@
-#
-# @LANG: asm
-#
-
-%%{
- machine AtoI;
-
- action begin {
- # neg = 0;
- # val = 0;
- movl $0, neg(%rip)
- movl $0, val(%rip)
- }
-
- action see_neg {
- # neg = 1;
- movl $1, neg(%rip)
- }
-
- action add_digit {
- # val = val * 10 + (fc - 48);
- movl val(%rip), %eax
- imul $10, %eax
- movsbl (%r12), %ecx
- subl $48, %ecx
- add %ecx, %eax
- movl %eax, val(%rip)
- }
-
- action finish {
- #if (neg)
- #{
- # val = - 1 * val;
- #}
-
- movl neg(%rip), %eax
- cmpl $0, %eax
- je .finish_L
- movl val(%rip), %eax
- negl %eax
- movl %eax, val(%rip)
- .finish_L:
- }
-
- action print {
- #printf ("%i", val);
- #fputs ("\n", stdout);
- movl $.L_fmt_i_nl, %edi
- movl val(%rip), %esi
- movl $0, %eax
- call printf
- }
-
- atoi =
- (('-' @ see_neg | '+') ?
- (digit @ add_digit) +) > begin %finish;
-
- main := atoi '\n' @ print;
-
-}%%
- .file "tmp.c"
- .comm neg,4,4
- .comm val,4,4
- .comm cs,4,4
- .section .rodata
-
-%% write data;
-
-.L_fmt_i_nl:
- .string "%i\n"
-.L_marker:
- .string "marker\n"
-
- .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
- movl $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 cs(%rip), %r11
- movq %rdi, %r12
- movq %rsi, %r13
-
-%% write exec;
-
- movq %r11, cs(%rip)
-
- popq %r13
- popq %r12
-
-.LRET:
- leave
- .cfi_def_cfa 7, 8
- ret
- .cfi_endproc
-.LFE1:
- .size exec, .-exec
- .section .rodata
-.LC1:
- .string "-> ACCEPT"
-.LC2:
- .string "-> FAIL"
- .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
- movq cs@GOTPCREL (%rip), %rdx
- movl (%rdx), %edx
- movl $4, %eax
- cmpl %eax, %edx
- jl .L36
- movl $.LC1, %edi
-# call puts
- jmp .L35
-.L36:
- movl $.LC2, %edi
- call puts
-.L35:
- popq %rbp
- .cfi_def_cfa 7, 8
- ret
- .cfi_endproc
-.LFE2:
- .size finish, .-finish
- .globl inp
-
- .section .rodata
-.LC3:
- .string "1\n"
-.LC4:
- .string "12\n"
-.LC5:
- .string "222222\n"
-.LC6:
- .string "+2123\n"
-.LC7:
- .string "-99\n"
-.LC8:
- .string "-12321\n"
-.LC9:
- .string "213 3213\n"
-.LC10:
- .string "--123\n"
-.LC11:
- .string " -3000\n"
- .data
- .align 32
- .type inp, @object
- .size inp, 72
-inp:
- .quad .LC3
- .quad .LC4
- .quad .LC5
- .quad .LC6
- .quad .LC7
- .quad .LC8
- .quad .LC9
- .quad .LC10
- .quad .LC11
- .globl inplen
- .align 4
- .type inplen, @object
- .size inplen, 4
-inplen:
- .long 9
- .text
- .globl main
- .type main, @function
-main:
-.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)
- jmp .L39
-.L40:
- movl $0, %eax
- call init
- movl -4(%rbp), %eax
- cltq
- movq inp(,%rax,8), %rax
- movq %rax, %rdi
- call strlen
- movl %eax, %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 main, .-main
- .ident "GCC: (Ubuntu 4.8.2-19ubuntu1) 4.8.2"
- .section .note.GNU-stack,"",@progbits
-
-##### OUTPUT #####
-1
-12
-222222
-2123
--99
--12321
--> FAIL
--> FAIL
--> FAIL