int128: Add int128_exts64()
authorAlexey Kardashevskiy <aik@ozlabs.ru>
Fri, 30 May 2014 19:00:28 +0000 (13:00 -0600)
committerAlex Williamson <alex.williamson@redhat.com>
Fri, 30 May 2014 19:00:28 +0000 (13:00 -0600)
This adds macro to extend signed 64bit value to signed 128bit value.

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
include/qemu/int128.h

index f59703143ae6c45db90658c8fa103e89da63ad86..fb782aaddd4a84c3666ee67fe2f5d16ddd1bc12b 100644 (file)
@@ -38,6 +38,11 @@ static inline Int128 int128_2_64(void)
     return (Int128) { 0, 1 };
 }
 
+static inline Int128 int128_exts64(int64_t a)
+{
+    return (Int128) { .lo = a, .hi = (a < 0) ? -1 : 0 };
+}
+
 static inline Int128 int128_and(Int128 a, Int128 b)
 {
     return (Int128) { a.lo & b.lo, a.hi & b.hi };