.file "epsilon.c"
.text
.section .rodata
.LC0:
.string "size of type: %lu bits\n"
.LC1:
.string "format: %%Lg\n"
.LC5:
.string "machine epsilon (\317\265): %Lg\n"
.LC6:
.string "unit roundoff (u): %Lg\n"
.LC7:
.string "subnormal limit: %Lg\n"
.align 8
.LC8:
.string "and just in case machine epsilon is displaying as zero above:"
.LC9:
.string "true"
.LC10:
.string "false"
.align 8
.LC11:
.string "epsilon < limit (should be false): %s\n"
.align 8
.LC12:
.string "epsilon == limit (should be false): %s\n"
.align 8
.LC13:
.string "epsilon > limit (should be true): %s\n"
.text
.globl main
.type main, @function
main:
.LFB9:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $48, %rsp
movl $256, %esi
leaq .LC0(%rip), %rdi
movl $0, %eax
call printf@PLT
leaq .LC1(%rip), %rdi
movl $0, %eax
call printf@PLT
fld1
fstpt -16(%rbp)
jmp .L2
.L21:
fstp %st(0)
.L3:
fldt -16(%rbp)
fstpt -32(%rbp)
fldt -16(%rbp)
fldt .LC3(%rip)
fdivrp %st, %st(1)
fstpt -16(%rbp)
.L2:
fldt -16(%rbp)
fld1
faddp %st, %st(1)
fld1
fucomip %st(1), %st
jp .L21
fld1
fcomip %st(1), %st
fstp %st(0)
jne .L3
fld1
fstpt -16(%rbp)
jmp .L4
.L5:
fldt -16(%rbp)
fstpt -48(%rbp)
fldt -16(%rbp)
fldt .LC3(%rip)
fdivrp %st, %st(1)
fstpt -16(%rbp)
.L4:
fldt -16(%rbp)
fldz
fucomip %st(1), %st
fstp %st(0)
jp .L5
fldt -16(%rbp)
fldz
fcomip %st(1), %st
fstp %st(0)
jne .L5
pushq -24(%rbp)
pushq -32(%rbp)
leaq .LC5(%rip), %rdi
movl $0, %eax
call printf@PLT
addq $16, %rsp
fldt -32(%rbp)
fldt .LC3(%rip)
fdivrp %st, %st(1)
leaq -16(%rsp), %rsp
fstpt (%rsp)
leaq .LC6(%rip), %rdi
movl $0, %eax
call printf@PLT
addq $16, %rsp
pushq -40(%rbp)
pushq -48(%rbp)
leaq .LC7(%rip), %rdi
movl $0, %eax
call printf@PLT
addq $16, %rsp
leaq .LC8(%rip), %rdi
call puts@PLT
fldt -32(%rbp)
fldt -48(%rbp)
fcomip %st(1), %st
fstp %st(0)
jbe .L19
leaq .LC9(%rip), %rax
jmp .L8
.L19:
leaq .LC10(%rip), %rax
.L8:
movq %rax, %rsi
leaq .LC11(%rip), %rdi
movl $0, %eax
call printf@PLT
fldt -32(%rbp)
fldt -48(%rbp)
fucomip %st(1), %st
fstp %st(0)
jp .L9
fldt -32(%rbp)
fldt -48(%rbp)
fucomip %st(1), %st
fstp %st(0)
jne .L9
leaq .LC9(%rip), %rax
jmp .L11
.L9:
leaq .LC10(%rip), %rax
.L11:
movq %rax, %rsi
leaq .LC12(%rip), %rdi
movl $0, %eax
call printf@PLT
fldt -48(%rbp)
fldt -32(%rbp)
fcomip %st(1), %st
fstp %st(0)
jbe .L20
leaq .LC9(%rip), %rax
jmp .L14
.L20:
leaq .LC10(%rip), %rax
.L14:
movq %rax, %rsi
leaq .LC13(%rip), %rdi
movl $0, %eax
call printf@PLT
movl $0, %eax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE9:
.size main, .-main
.section .rodata
.align 16
.LC3:
.long 0
.long -2147483648
.long 16384
.long 0
.ident "GCC: (GNU) 10.2.0"
.section .note.GNU-stack,"",@progbits