mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 04:02:41 +01:00
EmitAlignment() also emits optional fill value.
llvm-svn: 40500
This commit is contained in:
parent
f34a0509c2
commit
4b747bb6a0
@ -251,7 +251,9 @@ namespace llvm {
|
||||
/// an explicit alignment requested, it will unconditionally override the
|
||||
/// alignment request. However, if ForcedAlignBits is specified, this value
|
||||
/// has final say: the ultimate alignment will be the max of ForcedAlignBits
|
||||
/// and the alignment computed with NumBits and the global.
|
||||
/// and the alignment computed with NumBits and the global. If UseFillExpr
|
||||
/// is true, it also emits an optional second value FillValue which the
|
||||
/// assembler uses to fill gaps to match alignment.
|
||||
///
|
||||
/// The algorithm is:
|
||||
/// Align = NumBits;
|
||||
@ -259,7 +261,8 @@ namespace llvm {
|
||||
/// Align = std::max(Align, ForcedAlignBits);
|
||||
///
|
||||
void EmitAlignment(unsigned NumBits, const GlobalValue *GV = 0,
|
||||
unsigned ForcedAlignBits = 0) const;
|
||||
unsigned ForcedAlignBits = 0, bool UseFillExpr = false,
|
||||
unsigned FillValue = 0) const;
|
||||
|
||||
protected:
|
||||
/// EmitZeros - Emit a block of zeros.
|
||||
|
@ -621,14 +621,17 @@ void AsmPrinter::EmitString(const std::string &String) const {
|
||||
// Align = std::max(Align, ForcedAlignBits);
|
||||
//
|
||||
void AsmPrinter::EmitAlignment(unsigned NumBits, const GlobalValue *GV,
|
||||
unsigned ForcedAlignBits) const {
|
||||
unsigned ForcedAlignBits, bool UseFillExpr,
|
||||
unsigned FillValue) const {
|
||||
if (GV && GV->getAlignment())
|
||||
NumBits = Log2_32(GV->getAlignment());
|
||||
NumBits = std::max(NumBits, ForcedAlignBits);
|
||||
|
||||
if (NumBits == 0) return; // No need to emit alignment.
|
||||
if (TAI->getAlignmentIsInBytes()) NumBits = 1 << NumBits;
|
||||
O << TAI->getAlignDirective() << NumBits << "\n";
|
||||
O << TAI->getAlignDirective() << NumBits;
|
||||
if (UseFillExpr) O << ",0x" << std::hex << FillValue << std::dec;
|
||||
O << "\n";
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user