diff options
author | vanhauser-thc <vh@thc.org> | 2021-03-05 19:55:20 +0100 |
---|---|---|
committer | vanhauser-thc <vh@thc.org> | 2021-03-05 19:55:29 +0100 |
commit | 7b907e45ada18020da03b69a24bc68b64a11d1e7 (patch) | |
tree | cb1ee8838f60a7d5fc8dcc78399ad6e5715f89d1 | |
parent | e8d580f54d0ba4cc096f084ed7c52e772b66039c (diff) | |
download | afl++-7b907e45ada18020da03b69a24bc68b64a11d1e7.tar.gz |
we do not support 80 + 128 bit FP in laf
-rw-r--r-- | instrumentation/split-compares-pass.so.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/instrumentation/split-compares-pass.so.cc b/instrumentation/split-compares-pass.so.cc index d03944df..b02a89fb 100644 --- a/instrumentation/split-compares-pass.so.cc +++ b/instrumentation/split-compares-pass.so.cc @@ -612,6 +612,10 @@ size_t SplitComparesTransform::splitFPCompares(Module &M) { if (op_size != op1->getType()->getPrimitiveSizeInBits()) { continue; } const unsigned int sizeInBits = op0->getType()->getPrimitiveSizeInBits(); + + // BUG FIXME TODO: u64 does not work for > 64 bit ... e.g. 80 and 128 bit + if (sizeInBits > 64) { continue; } + const unsigned int precision = sizeInBits == 32 ? 24 : sizeInBits == 64 ? 53 : sizeInBits == 128 ? 113 @@ -619,8 +623,7 @@ size_t SplitComparesTransform::splitFPCompares(Module &M) { : sizeInBits == 80 ? 65 : sizeInBits - 8; - const unsigned shiftR_exponent = precision - 1; - // BUG FIXME TODO: u64 does not work for > 64 bit ... e.g. 80 and 128 bit + const unsigned shiftR_exponent = precision - 1; const unsigned long long mask_fraction = (1ULL << (shiftR_exponent - 1)) | ((1ULL << (shiftR_exponent - 1)) - 1); const unsigned long long mask_exponent = |