From 2d53a375732b044a3ec44bd41f17feed0eb8f064 Mon Sep 17 00:00:00 2001 From: David Woodhouse Date: Sat, 1 Feb 2014 16:52:33 +0000 Subject: MC: Fix .octa output for APInts with BitWidth > 128 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200615 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/MC/MCParser/AsmParser.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/MC/MCParser/AsmParser.cpp b/lib/MC/MCParser/AsmParser.cpp index 37b759e64f..63a00fedfa 100644 --- a/lib/MC/MCParser/AsmParser.cpp +++ b/lib/MC/MCParser/AsmParser.cpp @@ -2335,7 +2335,8 @@ bool AsmParser::parseDirectiveOctaValue() { hi = 0; lo = IntValue.getZExtValue(); } else if (IntValue.isIntN(128)) { - hi = IntValue.getHiBits(64).getZExtValue(); + // It might actually have more than 128 bits, but the top ones are zero. + hi = IntValue.getHiBits(IntValue.getBitWidth() - 64).getZExtValue(); lo = IntValue.getLoBits(64).getZExtValue(); } else return Error(ExprLoc, "literal value out of range for directive"); -- cgit v1.2.3