diff options
| author | Rich Felker <dalias@aerifal.cx> | 2012-03-18 17:09:34 -0400 | 
|---|---|---|
| committer | Rich Felker <dalias@aerifal.cx> | 2012-03-18 17:09:34 -0400 | 
| commit | b935147761d1770bb115f09f8c28ddb4d36e1236 (patch) | |
| tree | b96d46d662c717fffb0f0364e3cd07f009a06af1 | |
| parent | 8d9e948652eb8381f1f376cbd0c9bc5e2947d150 (diff) | |
| download | musl-b935147761d1770bb115f09f8c28ddb4d36e1236.tar.gz | |
assembly optimizations for fmod/remainder functions
| -rw-r--r-- | src/math/i386/fmod.s | 11 | ||||
| -rw-r--r-- | src/math/i386/fmodf.s | 11 | ||||
| -rw-r--r-- | src/math/i386/fmodl.s | 11 | ||||
| -rw-r--r-- | src/math/i386/remainder.s | 11 | ||||
| -rw-r--r-- | src/math/i386/remainderf.s | 11 | ||||
| -rw-r--r-- | src/math/i386/remainderl.s | 11 | ||||
| -rw-r--r-- | src/math/x86_64/fmodl.s | 11 | ||||
| -rw-r--r-- | src/math/x86_64/remainderl.s | 11 | 
8 files changed, 88 insertions, 0 deletions
| diff --git a/src/math/i386/fmod.s b/src/math/i386/fmod.s new file mode 100644 index 00000000..069fbfe7 --- /dev/null +++ b/src/math/i386/fmod.s @@ -0,0 +1,11 @@ +.global fmod +.type fmod,@function +fmod: +	fldl 12(%esp) +	fldl 4(%esp) +1:	fprem +	fstsw %ax +	sahf +	jp 1b +	fstp %st(1) +	ret diff --git a/src/math/i386/fmodf.s b/src/math/i386/fmodf.s new file mode 100644 index 00000000..d99c80f2 --- /dev/null +++ b/src/math/i386/fmodf.s @@ -0,0 +1,11 @@ +.global fmodf +.type fmodf,@function +fmodf: +	flds 8(%esp) +	flds 4(%esp) +1:	fprem +	fstsw %ax +	sahf +	jp 1b +	fstp %st(1) +	ret diff --git a/src/math/i386/fmodl.s b/src/math/i386/fmodl.s new file mode 100644 index 00000000..7e07e7b5 --- /dev/null +++ b/src/math/i386/fmodl.s @@ -0,0 +1,11 @@ +.global fmodl +.type fmodl,@function +fmodl: +	fldt 16(%esp) +	fldt 4(%esp) +1:	fprem +	fstsw %ax +	sahf +	jp 1b +	fstp %st(1) +	ret diff --git a/src/math/i386/remainder.s b/src/math/i386/remainder.s new file mode 100644 index 00000000..47ee3402 --- /dev/null +++ b/src/math/i386/remainder.s @@ -0,0 +1,11 @@ +.global remainder +.type remainder,@function +remainder: +	fldl 12(%esp) +	fldl 4(%esp) +1:	fprem1 +	fstsw %ax +	sahf +	jp 1b +	fstp %st(1) +	ret diff --git a/src/math/i386/remainderf.s b/src/math/i386/remainderf.s new file mode 100644 index 00000000..5b5fc235 --- /dev/null +++ b/src/math/i386/remainderf.s @@ -0,0 +1,11 @@ +.global remainderf +.type remainderf,@function +remainderf: +	flds 8(%esp) +	flds 4(%esp) +1:	fprem1 +	fstsw %ax +	sahf +	jp 1b +	fstp %st(1) +	ret diff --git a/src/math/i386/remainderl.s b/src/math/i386/remainderl.s new file mode 100644 index 00000000..00978729 --- /dev/null +++ b/src/math/i386/remainderl.s @@ -0,0 +1,11 @@ +.global remainderl +.type remainderl,@function +remainderl: +	fldt 16(%esp) +	fldt 4(%esp) +1:	fprem1 +	fstsw %ax +	sahf +	jp 1b +	fstp %st(1) +	ret diff --git a/src/math/x86_64/fmodl.s b/src/math/x86_64/fmodl.s new file mode 100644 index 00000000..ca81e60c --- /dev/null +++ b/src/math/x86_64/fmodl.s @@ -0,0 +1,11 @@ +.global fmodl +.type fmodl,@function +fmodl: +	fldt 24(%rsp) +	fldt 8(%rsp) +1:	fprem +	fstsw %ax +	sahf +	jp 1b +	fstp %st(1) +	ret diff --git a/src/math/x86_64/remainderl.s b/src/math/x86_64/remainderl.s new file mode 100644 index 00000000..75c12374 --- /dev/null +++ b/src/math/x86_64/remainderl.s @@ -0,0 +1,11 @@ +.global remainderl +.type remainderl,@function +remainderl: +	fldt 24(%rsp) +	fldt 8(%rsp) +1:	fprem1 +	fstsw %ax +	sahf +	jp 1b +	fstp %st(1) +	ret | 
