Align function starts to target-specific bundle alignment.

BUG=none
R=stichnot@chromium.org

Review URL: https://codereview.chromium.org/515993002
diff --git a/src/IceCfg.cpp b/src/IceCfg.cpp
index 6fe7eb0..d699ef5 100644
--- a/src/IceCfg.cpp
+++ b/src/IceCfg.cpp
@@ -314,6 +314,13 @@
     Str << "\t.globl\t" << MangledName << "\n";
     Str << "\t.type\t" << MangledName << ",@function\n";
   }
+  Str << "\t.p2align " << getTarget()->getBundleAlignLog2Bytes() << ",0x";
+  llvm::ArrayRef<uint8_t> Pad = getTarget()->getNonExecBundlePadding();
+  for (llvm::ArrayRef<uint8_t>::iterator I = Pad.begin(), E = Pad.end();
+       I != E; ++I) {
+    Str.write_hex(*I);
+  }
+  Str << "\n";
   for (NodeList::const_iterator I = Nodes.begin(), E = Nodes.end(); I != E;
        ++I) {
     (*I)->emit(this);