summaryrefslogtreecommitdiff
path: root/arch/x64/linux/math/abs.S
blob: 6635273bab0f34972ba30ab6829ba6c7f086a799 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
	.text


// fabsf.
	.globl _D5tanya4math8nbtheory4fabsFNaNbNiNffZf
	.type _D5tanya4math8nbtheory4fabsFNaNbNiNffZf, @function

_D5tanya4math8nbtheory4fabsFNaNbNiNffZf:
	mov $0x7fffffff, %eax
	movq %rax, %xmm1
	andpd %xmm1, %xmm0
	ret


// fabs.
	.globl _D5tanya4math8nbtheory4fabsFNaNbNiNfdZd
	.type _D5tanya4math8nbtheory4fabsFNaNbNiNfdZd, @function

_D5tanya4math8nbtheory4fabsFNaNbNiNfdZd:
	mov $0x7fffffffffffffff, %rax
	movq %rax, %xmm1
	andpd %xmm1, %xmm0
	ret


// fabsl.
	.globl _D5tanya4math8nbtheory4fabsFNaNbNiNfeZe
	.type _D5tanya4math8nbtheory4fabsFNaNbNiNfeZe, @function

// Load the parameter from the stack onto FP stack, execute 'fabs' instruction
// The result is returned in ST0.
_D5tanya4math8nbtheory4fabsFNaNbNiNfeZe:
	fldt 0x8(%rsp)
	fabs
	ret