mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-19 02:52:53 +02:00
[AArch64] Use MCAsmInfoMicrosoft and MCAsmInfoGNUCOFF as base classes
This matches the structure used on X86 and ARM. This requires a little bit of duplication of the parts that are equal in both AArch64 COFF variants though. Before SVN r335286, these classes didn't add anything that MCAsmInfoCOFF didn't, but now they do. This makes AArch64 match X86 in how comdat is used for float constants for MinGW. Differential Revision: https://reviews.llvm.org/D49637 llvm-svn: 337755
This commit is contained in:
parent
90dde3eaff
commit
6c4898b15a
@ -101,7 +101,7 @@ AArch64MCAsmInfoELF::AArch64MCAsmInfoELF(const Triple &T) {
|
||||
HasIdentDirective = true;
|
||||
}
|
||||
|
||||
AArch64MCAsmInfoCOFF::AArch64MCAsmInfoCOFF() {
|
||||
AArch64MCAsmInfoMicrosoftCOFF::AArch64MCAsmInfoMicrosoftCOFF() {
|
||||
PrivateGlobalPrefix = ".L";
|
||||
PrivateLabelPrefix = ".L";
|
||||
|
||||
@ -112,14 +112,23 @@ AArch64MCAsmInfoCOFF::AArch64MCAsmInfoCOFF() {
|
||||
AlignmentIsInBytes = false;
|
||||
SupportsDebugInformation = true;
|
||||
CodePointerSize = 8;
|
||||
}
|
||||
|
||||
AArch64MCAsmInfoMicrosoftCOFF::AArch64MCAsmInfoMicrosoftCOFF() {
|
||||
CommentString = ";";
|
||||
ExceptionsType = ExceptionHandling::WinEH;
|
||||
}
|
||||
|
||||
AArch64MCAsmInfoGNUCOFF::AArch64MCAsmInfoGNUCOFF() {
|
||||
PrivateGlobalPrefix = ".L";
|
||||
PrivateLabelPrefix = ".L";
|
||||
|
||||
Data16bitsDirective = "\t.hword\t";
|
||||
Data32bitsDirective = "\t.word\t";
|
||||
Data64bitsDirective = "\t.xword\t";
|
||||
|
||||
AlignmentIsInBytes = false;
|
||||
SupportsDebugInformation = true;
|
||||
CodePointerSize = 8;
|
||||
|
||||
CommentString = "//";
|
||||
ExceptionsType = ExceptionHandling::DwarfCFI;
|
||||
}
|
||||
|
@ -34,15 +34,11 @@ struct AArch64MCAsmInfoELF : public MCAsmInfoELF {
|
||||
explicit AArch64MCAsmInfoELF(const Triple &T);
|
||||
};
|
||||
|
||||
struct AArch64MCAsmInfoCOFF : public MCAsmInfoCOFF {
|
||||
explicit AArch64MCAsmInfoCOFF();
|
||||
};
|
||||
|
||||
struct AArch64MCAsmInfoMicrosoftCOFF : public AArch64MCAsmInfoCOFF {
|
||||
struct AArch64MCAsmInfoMicrosoftCOFF : public MCAsmInfoMicrosoft {
|
||||
explicit AArch64MCAsmInfoMicrosoftCOFF();
|
||||
};
|
||||
|
||||
struct AArch64MCAsmInfoGNUCOFF : public AArch64MCAsmInfoCOFF {
|
||||
struct AArch64MCAsmInfoGNUCOFF : public MCAsmInfoGNUCOFF {
|
||||
explicit AArch64MCAsmInfoGNUCOFF();
|
||||
};
|
||||
|
||||
|
13
test/CodeGen/AArch64/win_cst_pool.ll
Normal file
13
test/CodeGen/AArch64/win_cst_pool.ll
Normal file
@ -0,0 +1,13 @@
|
||||
; RUN: llc < %s -mtriple=aarch64-win32-gnu | FileCheck -check-prefix=MINGW %s
|
||||
|
||||
define double @double() {
|
||||
ret double 0x0000000000800000
|
||||
}
|
||||
; MINGW: .section .rdata,"dr"
|
||||
; MINGW-NEXT: .p2align 3
|
||||
; MINGW-NEXT: [[LABEL:\.LC.*]]:
|
||||
; MINGW-NEXT: .xword 8388608
|
||||
; MINGW: double:
|
||||
; MINGW: adrp x8, [[LABEL]]
|
||||
; MINGW-NEXT: ldr d0, [x8, [[LABEL]]]
|
||||
; MINGW-NEXT: ret
|
Loading…
Reference in New Issue
Block a user