xref: /wasmtime-44.0.1/tests/disas/trunc.wat (revision df579907)
1;;! target = "x86_64-unknown-linux-gnu"
2;;! test = "compile"
3;;! flags = "-Ccompiler=cranelift -Ccranelift-has_sse41=false  -Osignals-based-traps=n"
4
5(module
6  (func (export "i64.trunc_f64_u") (param f64) (result i64)
7    (i64.trunc_f64_u (local.get 0))
8  )
9)
10;; wasm[0]::function[0]:
11;;       pushq   %rbp
12;;       movq    %rsp, %rbp
13;;       subq    $0x20, %rsp
14;;       movq    %rbx, 0x10(%rsp)
15;;       movq    8(%rdi), %rax
16;;       movq    %rdi, %rbx
17;;       movq    0x18(%rax), %rax
18;;       movq    %rsp, %rcx
19;;       cmpq    %rax, %rcx
20;;       jb      0x118
21;;   24: ucomisd %xmm0, %xmm0
22;;       movdqu  %xmm0, (%rsp)
23;;       jp      0x101
24;;       jne     0x101
25;;   39: movq    %rbx, %rdi
26;;       movdqu  (%rsp), %xmm0
27;;       callq   0x244
28;;       movabsq $13830554455654793216, %rax
29;;       movq    %rax, %xmm1
30;;       ucomisd %xmm0, %xmm1
31;;       jae     0xea
32;;   5f: ucomisd 0xc9(%rip), %xmm0
33;;       jae     0xd3
34;;   6d: movdqu  (%rsp), %xmm2
35;;       movabsq $0x43e0000000000000, %rcx
36;;       movq    %rcx, %xmm1
37;;       ucomisd %xmm1, %xmm2
38;;       jae     0xa2
39;;       jp      0x12c
40;;   91: cvttsd2si %xmm2, %rax
41;;       cmpq    $0, %rax
42;;       jge     0xc5
43;;   a0: ud2
44;;       movaps  %xmm2, %xmm0
45;;       subsd   %xmm1, %xmm0
46;;       cvttsd2si %xmm0, %rax
47;;       cmpq    $0, %rax
48;;       jl      0x12e
49;;   b8: movabsq $9223372036854775808, %rcx
50;;       addq    %rcx, %rax
51;;       movq    0x10(%rsp), %rbx
52;;       addq    $0x20, %rsp
53;;       movq    %rbp, %rsp
54;;       popq    %rbp
55;;       retq
56;;   d3: movl    $6, %esi
57;;   d8: movq    %rbx, %rdi
58;;   db: callq   0x271
59;;   e0: movq    %rbx, %rdi
60;;   e3: callq   0x2a2
61;;   e8: ud2
62;;   ea: movl    $6, %esi
63;;   ef: movq    %rbx, %rdi
64;;   f2: callq   0x271
65;;   f7: movq    %rbx, %rdi
66;;   fa: callq   0x2a2
67;;   ff: ud2
68;;  101: movl    $8, %esi
69;;  106: movq    %rbx, %rdi
70;;  109: callq   0x271
71;;  10e: movq    %rbx, %rdi
72;;  111: callq   0x2a2
73;;  116: ud2
74;;  118: xorl    %esi, %esi
75;;  11a: movq    %rbx, %rdi
76;;  11d: callq   0x271
77;;  122: movq    %rbx, %rdi
78;;  125: callq   0x2a2
79;;  12a: ud2
80;;  12c: ud2
81;;  12e: ud2
82;;  130: addb    %al, (%rax)
83;;  132: addb    %al, (%rax)
84;;  134: addb    %al, (%rax)
85;;  136: lock addb %al, (%r8)
86;;  13a: addb    %al, (%rax)
87;;  13c: addb    %al, (%rax)
88;;  13e: addb    %al, (%rax)
89