]> git.proxmox.com Git - mirror_qemu.git/commitdiff
libvixl: Avoid std::abs() of 64-bit type
authorPeter Maydell <peter.maydell@linaro.org>
Wed, 3 Feb 2016 13:46:34 +0000 (13:46 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Wed, 3 Feb 2016 13:46:34 +0000 (13:46 +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 <Franz-Josef.Haider@student.uibk.ac.at>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 1453739429-31477-1-git-send-email-peter.maydell@linaro.org

disas/libvixl/vixl/a64/disasm-a64.cc

index 20caba43176c51f65191ca652f7568557a60ec08..7a58a5c08766dddafcc5e599b28e2a970f9774ef 100644 (file)
@@ -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);
 }