mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
[COFF, ARM64] Use '//' as comment character in assembly files in GNU environments
This allows using semicolons for bundling up more than one statement per line. This is used within the mingw-w64 project in some assembly files that contain code for multiple architectures. Differential Revision: https://reviews.llvm.org/D36366 llvm-svn: 310797
This commit is contained in:
parent
861b2b3298
commit
0a00e5ecac
@ -102,10 +102,17 @@ AArch64MCAsmInfoELF::AArch64MCAsmInfoELF(const Triple &T) {
|
||||
}
|
||||
|
||||
AArch64MCAsmInfoCOFF::AArch64MCAsmInfoCOFF() {
|
||||
CommentString = ";";
|
||||
PrivateGlobalPrefix = ".L";
|
||||
PrivateLabelPrefix = ".L";
|
||||
AlignmentIsInBytes = false;
|
||||
SupportsDebugInformation = true;
|
||||
ExceptionsType = ExceptionHandling::WinEH;
|
||||
}
|
||||
|
||||
AArch64MCAsmInfoMicrosoftCOFF::AArch64MCAsmInfoMicrosoftCOFF() {
|
||||
CommentString = ";";
|
||||
}
|
||||
|
||||
AArch64MCAsmInfoGNUCOFF::AArch64MCAsmInfoGNUCOFF() {
|
||||
CommentString = "//";
|
||||
}
|
||||
|
@ -38,6 +38,14 @@ struct AArch64MCAsmInfoCOFF : public MCAsmInfoCOFF {
|
||||
explicit AArch64MCAsmInfoCOFF();
|
||||
};
|
||||
|
||||
struct AArch64MCAsmInfoMicrosoftCOFF : public AArch64MCAsmInfoCOFF {
|
||||
explicit AArch64MCAsmInfoMicrosoftCOFF();
|
||||
};
|
||||
|
||||
struct AArch64MCAsmInfoGNUCOFF : public AArch64MCAsmInfoCOFF {
|
||||
explicit AArch64MCAsmInfoGNUCOFF();
|
||||
};
|
||||
|
||||
} // namespace llvm
|
||||
|
||||
#endif
|
||||
|
@ -69,8 +69,10 @@ static MCAsmInfo *createAArch64MCAsmInfo(const MCRegisterInfo &MRI,
|
||||
MCAsmInfo *MAI;
|
||||
if (TheTriple.isOSBinFormatMachO())
|
||||
MAI = new AArch64MCAsmInfoDarwin();
|
||||
else if (TheTriple.isWindowsMSVCEnvironment())
|
||||
MAI = new AArch64MCAsmInfoMicrosoftCOFF();
|
||||
else if (TheTriple.isOSBinFormatCOFF())
|
||||
MAI = new AArch64MCAsmInfoCOFF();
|
||||
MAI = new AArch64MCAsmInfoGNUCOFF();
|
||||
else {
|
||||
assert(TheTriple.isOSBinFormatELF() && "Invalid target");
|
||||
MAI = new AArch64MCAsmInfoELF(TheTriple);
|
||||
|
11
test/MC/AArch64/coff-gnu.s
Normal file
11
test/MC/AArch64/coff-gnu.s
Normal file
@ -0,0 +1,11 @@
|
||||
// RUN: llvm-mc -triple aarch64-windows-gnu -filetype obj -o %t.obj %s
|
||||
// RUN: llvm-objdump -d %t.obj | FileCheck %s
|
||||
|
||||
func:
|
||||
// Check that the nop instruction after the semicolon also is handled
|
||||
nop; nop
|
||||
add x0, x0, #42
|
||||
|
||||
// CHECK: 0: 1f 20 03 d5 nop
|
||||
// CHECK: 4: 1f 20 03 d5 nop
|
||||
// CHECK: 8: 00 a8 00 91 add x0, x0, #42
|
Loading…
Reference in New Issue
Block a user