aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2010-01-25 02:27:39 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2010-01-25 02:27:39 +0000
commitf166ed7324d3708a74231f9f86fd148f811038a7 (patch)
tree368eae0a419d77bd498b34dec5f3b9eb575bf843
parent34b6ea6cef6e45e084dbbeffec8b2221e8cc812f (diff)
Fix PR6134.
We are not emitting alignments on Darwin for "bar". Not sure what is the correct way to do it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94400 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/ARM/ARMMCAsmInfo.cpp4
-rw-r--r--test/CodeGen/ARM/align.ll42
-rw-r--r--test/CodeGen/ARM/globals.ll4
3 files changed, 38 insertions, 12 deletions
diff --git a/lib/Target/ARM/ARMMCAsmInfo.cpp b/lib/Target/ARM/ARMMCAsmInfo.cpp
index 3dd87c0723..6c7f752cfd 100644
--- a/lib/Target/ARM/ARMMCAsmInfo.cpp
+++ b/lib/Target/ARM/ARMMCAsmInfo.cpp
@@ -53,11 +53,9 @@ ARMMCAsmInfoDarwin::ARMMCAsmInfoDarwin() {
}
ARMELFMCAsmInfo::ARMELFMCAsmInfo() {
- AlignmentIsInBytes = false;
Data64bitsDirective = 0;
CommentString = "@";
- COMMDirectiveTakesAlignment = false;
-
+
NeedsSet = false;
HasLEB128 = true;
AbsoluteDebugSectionOffsets = true;
diff --git a/test/CodeGen/ARM/align.ll b/test/CodeGen/ARM/align.ll
index d73abe6a56..f795cf61bf 100644
--- a/test/CodeGen/ARM/align.ll
+++ b/test/CodeGen/ARM/align.ll
@@ -1,15 +1,43 @@
-; RUN: llc < %s -march=arm | grep align.*1 | count 1
-; RUN: llc < %s -mtriple=arm-linux-gnueabi | \
-; RUN: grep align.*2 | count 2
-; RUN: llc < %s -mtriple=arm-linux-gnueabi | \
-; RUN: grep align.*3 | count 2
-; RUN: llc < %s -mtriple=arm-apple-darwin | \
-; RUN: grep align.*2 | count 4
+; RUN: llc < %s -mtriple=arm-linux-gnueabi | FileCheck %s -check-prefix=ELF
+; RUN: llc < %s -mtriple=arm-apple-darwin | FileCheck %s -check-prefix=DARWIN
@a = global i1 true
+; no alignment
+
@b = global i8 1
+; no alignment
+
@c = global i16 2
+;ELF: .align 2
+;ELF: c:
+;DARWIN: .align 1
+;DARWIN: _c:
+
@d = global i32 3
+;ELF: .align 4
+;ELF: d:
+;DARWIN: .align 2
+;DARWIN: _d:
+
@e = global i64 4
+;ELF: .align 8
+;ELF: e
+;DARWIN: .align 2
+;DARWIN: _e:
+
@f = global float 5.0
+;ELF: .align 4
+;ELF: f:
+;DARWIN: .align 2
+;DARWIN: _f:
+
@g = global double 6.0
+;ELF: .align 8
+;ELF: g:
+;DARWIN: .align 2
+;DARWIN: _g:
+
+@bar = common global [75 x i8] zeroinitializer, align 128
+;ELF: .comm bar,75,128
+; no alignment on darwin?
+;DARWIN: .comm _bar,75
diff --git a/test/CodeGen/ARM/globals.ll b/test/CodeGen/ARM/globals.ll
index 886c0d55cf..83849f4232 100644
--- a/test/CodeGen/ARM/globals.ll
+++ b/test/CodeGen/ARM/globals.ll
@@ -67,9 +67,9 @@ define i32 @test1() {
; LinuxPIC: ldr r0, [r0]
; LinuxPIC: bx lr
-; LinuxPIC: .align 2
+; LinuxPIC: .align 4
; LinuxPIC: .LCPI1_0:
; LinuxPIC: .long _GLOBAL_OFFSET_TABLE_-(.LPC1_0+8)
-; LinuxPIC: .align 2
+; LinuxPIC: .align 4
; LinuxPIC: .LCPI1_1:
; LinuxPIC: .long G(GOT)