diff mbox series

[31/55] include/qemu/int128.h: Add function to create Int128 from int64_t

Message ID 20210607165821.9892-32-peter.maydell@linaro.org
State Superseded
Headers show
Series target/arm: First slice of MVE implementation | expand

Commit Message

Peter Maydell June 7, 2021, 4:57 p.m. UTC
int128_make64() creates an Int128 from an unsigned 64 bit value; add
a function int128_makes64() creating an Int128 from a signed 64 bit
value.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

---
 include/qemu/int128.h | 10 ++++++++++
 1 file changed, 10 insertions(+)

-- 
2.20.1

Comments

Philippe Mathieu-Daudé June 8, 2021, 6:45 a.m. UTC | #1
On 6/7/21 6:57 PM, Peter Maydell wrote:
> int128_make64() creates an Int128 from an unsigned 64 bit value; add

> a function int128_makes64() creating an Int128 from a signed 64 bit

> value.

> 

> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

> ---

>  include/qemu/int128.h | 10 ++++++++++

>  1 file changed, 10 insertions(+)

> 

> diff --git a/include/qemu/int128.h b/include/qemu/int128.h

> index 52fc2384211..64500385e37 100644

> --- a/include/qemu/int128.h

> +++ b/include/qemu/int128.h

> @@ -11,6 +11,11 @@ static inline Int128 int128_make64(uint64_t a)

>      return a;

>  }


> +static inline Int128 int128_makes64(int64_t a)

> +{

> +    return (Int128) { a, a >> 63 };


This file would be easier to review using explicit field names:

       return (Int128) { .lo = a, .hi = a >> 63 };

Also, maybe we could rename int128_makeX -> int128_make_uX
before introducing int128_make_sX.

Regardless:
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


> +}

> +

>  static inline Int128 int128_make128(uint64_t lo, uint64_t hi)

>  {

>      return (Int128) { lo, hi };

>
Richard Henderson June 9, 2021, 12:51 a.m. UTC | #2
On 6/7/21 9:57 AM, Peter Maydell wrote:
> int128_make64() creates an Int128 from an unsigned 64 bit value; add

> a function int128_makes64() creating an Int128 from a signed 64 bit

> value.

> 

> Signed-off-by: Peter Maydell<peter.maydell@linaro.org>

> ---

>   include/qemu/int128.h | 10 ++++++++++

>   1 file changed, 10 insertions(+)


Reviewed-by: Richard Henderson <richard.henderson@linaro.org>


r~
diff mbox series

Patch

diff --git a/include/qemu/int128.h b/include/qemu/int128.h
index 52fc2384211..64500385e37 100644
--- a/include/qemu/int128.h
+++ b/include/qemu/int128.h
@@ -11,6 +11,11 @@  static inline Int128 int128_make64(uint64_t a)
     return a;
 }
 
+static inline Int128 int128_makes64(int64_t a)
+{
+    return a;
+}
+
 static inline Int128 int128_make128(uint64_t lo, uint64_t hi)
 {
     return (__uint128_t)hi << 64 | lo;
@@ -167,6 +172,11 @@  static inline Int128 int128_make64(uint64_t a)
     return (Int128) { a, 0 };
 }
 
+static inline Int128 int128_makes64(int64_t a)
+{
+    return (Int128) { a, a >> 63 };
+}
+
 static inline Int128 int128_make128(uint64_t lo, uint64_t hi)
 {
     return (Int128) { lo, hi };