diff options
Diffstat (limited to 'zap/source/amd64/mth/abs.S')
-rw-r--r-- | zap/source/amd64/mth/abs.S | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/zap/source/amd64/mth/abs.S b/zap/source/amd64/mth/abs.S deleted file mode 100644 index 4c9ed01..0000000 --- a/zap/source/amd64/mth/abs.S +++ /dev/null @@ -1,70 +0,0 @@ -# Copyright 2022 Gabriel Jensen. -# This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. -# If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/. - -.globl zap_abs_c -.globl zap_abs_i -.globl zap_abs_l -.globl zap_abs_ll -.globl zap_abs_s -.globl zap_abs_sc - -zap_abs_i: -# The input value: -#define val %edi -# Inverted value of the input: -#define inv %eax - movl val,inv # inv = val - negl inv # inv = -inv // Invert the copy of the input value. This also tests the sign of the value. - # . if (inv > 0x0) - cmovsl val,inv # val = inv // If it was positive, just return the unmodified input. - ret # return val // Otherwise, return the inverted value. - -#undef val -#undef inv - -zap_abs_l: -zap_abs_ll: -# The input value: -#define val %rdi -# Inverted value of the input: -#define inv %rax - movq val,inv # inv = val - negq inv # inv = -inv - # . if (inv > 0x0) - cmovsq val,inv # val = inv - ret # return val - -#undef val -#undef inv - -zap_abs_s: -# The input value: -#define val %di -# Inverted value of the input: -#define inv %ax - movw val,inv # inv = val - negw inv # inv = -inv - # . if (inv > 0x0) - cmovsw val,inv # val = inv - ret # return val - -#undef val -#undef inv - -zap_abs_c: -zap_abs_sc: -# The input value: -#define val %dil -#define val2 %di -# Inverted value of the input: -#define inv %al -#define inv2 %ax - movb val,inv # inv = val - negb inv # inv = -inv - # . if (inv > 0x0) - cmovsw val2,inv2 # val = inv - ret # return val - -#undef val -#undef inv |