[aarch64-port-dev ] The old bugs are the good ones
Andrew Haley
aph at redhat.com
Tue Nov 12 11:18:12 PST 2013
Oh dear. Here I go again, assuming that the labs() library function returns
a positive integer. It doesn't, as any fule kno, but I forgot.
Andrew.
# HG changeset patch
# User aph
# Date 1384283598 18000
# Tue Nov 12 14:13:18 2013 -0500
# Node ID feef9250f2feffe79db7939b5be389e8ecc8c5e0
# Parent 31a8727c3583744b28c9ac7da70bca4332b75967
Fix integer overflow with largest negative long
diff -r 31a8727c3583 -r feef9250f2fe src/cpu/aarch64/vm/assembler_aarch64.cpp
--- a/src/cpu/aarch64/vm/assembler_aarch64.cpp Tue Nov 12 14:08:03 2013 +0000
+++ b/src/cpu/aarch64/vm/assembler_aarch64.cpp Tue Nov 12 14:13:18 2013 -0500
@@ -1466,11 +1466,11 @@
bool Assembler::operand_valid_for_add_sub_immediate(long imm) {
bool shift = false;
- imm = labs(imm);
- if (imm < (1 << 12))
+ unsigned long uimm = labs(imm);
+ if (uimm < (1 << 12))
return true;
- if (imm < (1 << 24)
- && ((imm >> 12) << 12 == imm)) {
+ if (uimm < (1 << 24)
+ && ((uimm >> 12) << 12 == uimm)) {
return true;
}
return false;
More information about the aarch64-port-dev
mailing list