qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PULL 08/17] libvixl: Avoid std::abs() of 64-bit type


From: Peter Maydell
Subject: [Qemu-devel] [PULL 08/17] libvixl: Avoid std::abs() of 64-bit type
Date: Wed, 3 Feb 2016 18:59:11 +0000

The std::abs() function did not get a version that works on
'long long' until C++11. Avoid it, so that we can compile on
32-bit platforms (where int64_t is 'long long') with older
compilers (which don't support C++11).

Reported-by: Franz-Josef Haider <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>
Message-id: address@hidden
---
 disas/libvixl/vixl/a64/disasm-a64.cc | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/disas/libvixl/vixl/a64/disasm-a64.cc 
b/disas/libvixl/vixl/a64/disasm-a64.cc
index 20caba4..7a58a5c 100644
--- a/disas/libvixl/vixl/a64/disasm-a64.cc
+++ b/disas/libvixl/vixl/a64/disasm-a64.cc
@@ -2688,8 +2688,12 @@ void Disassembler::AppendRegisterNameToOutput(const 
Instruction* instr,
 void Disassembler::AppendPCRelativeOffsetToOutput(const Instruction* instr,
                                                   int64_t offset) {
   USE(instr);
+  uint64_t abs_offset = offset;
   char sign = (offset < 0) ? '-' : '+';
-  AppendToOutput("#%c0x%" PRIx64, sign, std::abs(offset));
+  if (offset < 0) {
+    abs_offset = -abs_offset;
+  }
+  AppendToOutput("#%c0x%" PRIx64, sign, abs_offset);
 }
 
 
-- 
1.9.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]