summaryrefslogtreecommitdiff
path: root/lib/MC/MCWin64EH.cpp
diff options
context:
space:
mode:
authorCharles Davis <cdavis@mines.edu>2011-05-27 02:43:19 +0000
committerCharles Davis <cdavis@mines.edu>2011-05-27 02:43:19 +0000
commitef60724ddc7726da8044d711c2a126197f4a0965 (patch)
tree23ffe159cd3ce72e8d103d8bd97808a33a799696 /lib/MC/MCWin64EH.cpp
parent4eeb7b662b78f5c520fb258b3f9df18b1227cde5 (diff)
downloadllvm-ef60724ddc7726da8044d711c2a126197f4a0965.tar.gz
llvm-ef60724ddc7726da8044d711c2a126197f4a0965.tar.bz2
llvm-ef60724ddc7726da8044d711c2a126197f4a0965.tar.xz
Add missing break statements. Align UNWIND_INFO and RUNTIME_FUNCTION structs
to 4 bytes. I'm surprised no one caught the missing break statements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132176 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/MC/MCWin64EH.cpp')
-rw-r--r--lib/MC/MCWin64EH.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/MC/MCWin64EH.cpp b/lib/MC/MCWin64EH.cpp
index fc394504bf..2511e91b85 100644
--- a/lib/MC/MCWin64EH.cpp
+++ b/lib/MC/MCWin64EH.cpp
@@ -27,17 +27,21 @@ static uint8_t CountOfUnwindCodes(std::vector<MCWin64EHInstruction> &instArray){
case Win64EH::UOP_SetFPReg:
case Win64EH::UOP_PushMachFrame:
count += 1;
+ break;
case Win64EH::UOP_SaveNonVol:
case Win64EH::UOP_SaveXMM128:
count += 2;
+ break;
case Win64EH::UOP_SaveNonVolBig:
case Win64EH::UOP_SaveXMM128Big:
count += 3;
+ break;
case Win64EH::UOP_AllocLarge:
if (I->getSize() > 512*1024-8)
count += 3;
else
count += 2;
+ break;
}
}
return count;
@@ -113,6 +117,7 @@ static void EmitRuntimeFunction(MCStreamer &streamer,
const MCWin64EHUnwindInfo *info) {
MCContext &context = streamer.getContext();
+ streamer.EmitValueToAlignment(4);
streamer.EmitValue(MCSymbolRefExpr::Create(info->Begin, context), 4);
streamer.EmitValue(MCSymbolRefExpr::Create(info->End, context), 4);
streamer.EmitValue(MCSymbolRefExpr::Create(info->Symbol, context), 4);
@@ -123,6 +128,7 @@ static void EmitUnwindInfo(MCStreamer &streamer, MCWin64EHUnwindInfo *info) {
if (info->Symbol) return;
MCContext &context = streamer.getContext();
+ streamer.EmitValueToAlignment(4);
// Upper 3 bits are the version number (currently 1).
uint8_t flags = 0x20;
info->Symbol = context.CreateTempSymbol();