aboutsummaryrefslogtreecommitdiff
path: root/sim/riscv
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2021-05-01 15:58:09 -0400
committerMike Frysinger <vapier@gentoo.org>2021-05-01 16:26:31 -0400
commitbd12755bf409cb931682a13f08e41d87fac84ab5 (patch)
treed490e06dbec9c94129ede76bbc772821b0ef2201 /sim/riscv
parentf1ca32150cbc83e15a2002d3543f5dd7256ad248 (diff)
downloadgdb-bd12755bf409cb931682a13f08e41d87fac84ab5.zip
gdb-bd12755bf409cb931682a13f08e41d87fac84ab5.tar.gz
gdb-bd12755bf409cb931682a13f08e41d87fac84ab5.tar.bz2
sim: riscv: fix building on 32-bit hosts w/out int128
Check for __SIZEOF_INT128__ before trying to use the builtin type. This fixes building on some 32-bit systems like x86.
Diffstat (limited to 'sim/riscv')
-rw-r--r--sim/riscv/ChangeLog4
-rw-r--r--sim/riscv/sim-main.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/sim/riscv/ChangeLog b/sim/riscv/ChangeLog
index 37284a9..367faac 100644
--- a/sim/riscv/ChangeLog
+++ b/sim/riscv/ChangeLog
@@ -1,3 +1,7 @@
+2021-05-01 Mike Frysinger <vapier@gentoo.org>
+
+ * sim-main.c (mulhu): Check if __SIZEOF_INT128__ is defined.
+
2021-04-26 Mike Frysinger <vapier@gentoo.org>
* sim-main.c (MAX, MIN): Delete.
diff --git a/sim/riscv/sim-main.c b/sim/riscv/sim-main.c
index a80dc68..6a2904c 100644
--- a/sim/riscv/sim-main.c
+++ b/sim/riscv/sim-main.c
@@ -603,7 +603,7 @@ execute_i (SIM_CPU *cpu, unsigned_word iw, const struct riscv_opcode *op)
static unsigned64
mulhu (unsigned64 a, unsigned64 b)
{
-#ifdef __GNUC__
+#if defined(__GNUC__) && defined(__SIZEOF_INT128__)
return ((__int128)a * b) >> 64;
#else
uint64_t t;