[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 02/19] host-utils: move abs64() to host-utils as uabs64()
From: |
Luis Pires |
Subject: |
[PATCH v2 02/19] host-utils: move abs64() to host-utils as uabs64() |
Date: |
Tue, 31 Aug 2021 13:39:50 -0300 |
Move abs64 to host-utils as uabs64, so it can be used elsewhere.
The function was renamed to uabs64 and modified to return an
unsigned value. This avoids the undefined behavior for common
abs implementations, where abs of the most negative value is
undefined.
Signed-off-by: Luis Pires <luis.pires@eldorado.org.br>
---
hw/i386/kvm/i8254.c | 7 +------
include/qemu/host-utils.h | 8 ++++++++
2 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/hw/i386/kvm/i8254.c b/hw/i386/kvm/i8254.c
index fa68669e8a..191a26fa57 100644
--- a/hw/i386/kvm/i8254.c
+++ b/hw/i386/kvm/i8254.c
@@ -59,11 +59,6 @@ struct KVMPITClass {
DeviceRealize parent_realize;
};
-static int64_t abs64(int64_t v)
-{
- return v < 0 ? -v : v;
-}
-
static void kvm_pit_update_clock_offset(KVMPITState *s)
{
int64_t offset, clock_offset;
@@ -81,7 +76,7 @@ static void kvm_pit_update_clock_offset(KVMPITState *s)
clock_gettime(CLOCK_MONOTONIC, &ts);
offset -= ts.tv_nsec;
offset -= (int64_t)ts.tv_sec * 1000000000;
- if (abs64(offset) < abs64(clock_offset)) {
+ if (uabs64(offset) < uabs64(clock_offset)) {
clock_offset = offset;
}
}
diff --git a/include/qemu/host-utils.h b/include/qemu/host-utils.h
index 711b221704..0c6715774c 100644
--- a/include/qemu/host-utils.h
+++ b/include/qemu/host-utils.h
@@ -357,6 +357,14 @@ static inline uint64_t revbit64(uint64_t x)
#endif
}
+/**
+ * Return the absolute value of a 64-bit integer as an unsigned 64-bit value
+ */
+static inline uint64_t uabs64(int64_t v)
+{
+ return v < 0 ? -v : v;
+}
+
/**
* sadd32_overflow - addition with overflow indication
* @x, @y: addends
--
2.25.1
- [PATCH v2 00/19] target/ppc: DFP instructions using decodetree, Luis Pires, 2021/08/31
- [PATCH v2 01/19] host-utils: Fix overflow detection in divu128(), Luis Pires, 2021/08/31
- [PATCH v2 02/19] host-utils: move abs64() to host-utils as uabs64(),
Luis Pires <=
- [PATCH v2 03/19] host-utils: move checks out of divu128/divs128, Luis Pires, 2021/08/31
- [PATCH v2 04/19] host-utils: add 128-bit quotient support to divu128/divs128, Luis Pires, 2021/08/31
- [PATCH v2 05/19] host-utils: add unit tests for divu128/divs128, Luis Pires, 2021/08/31
- [PATCH v2 06/19] libdecnumber: introduce decNumberFrom[U]Int128, Luis Pires, 2021/08/31
- [PATCH v2 07/19] target/ppc: Move REQUIRE_ALTIVEC/VECTOR to translate.c, Luis Pires, 2021/08/31