diff options
author | Charles Davis <cdavis@mines.edu> | 2011-05-27 02:43:19 +0000 |
---|---|---|
committer | Charles Davis <cdavis@mines.edu> | 2011-05-27 02:43:19 +0000 |
commit | ef60724ddc7726da8044d711c2a126197f4a0965 (patch) | |
tree | 23ffe159cd3ce72e8d103d8bd97808a33a799696 /lib/MC/MCWin64EH.cpp | |
parent | 4eeb7b662b78f5c520fb258b3f9df18b1227cde5 (diff) |
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.cpp | 6 |
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(); |