mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-03 14:21:30 +00:00
[mips] [IAS] Implement the .asciiz directive.
Summary: This directive is exactly the same as .asciz, except it's only used by MIPS. It is used to store null terminated strings in object files. Reviewers: rafael, dsanders, echristo Reviewed By: dsanders, echristo Subscribers: echristo, llvm-commits Differential Revision: http://reviews.llvm.org/D7530 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235382 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -84,6 +84,8 @@ public:
|
||||
virtual void addDirectiveHandler(StringRef Directive,
|
||||
ExtensionDirectiveHandler Handler) = 0;
|
||||
|
||||
virtual void addAliasForDirective(StringRef Directive, StringRef Alias) = 0;
|
||||
|
||||
virtual SourceMgr &getSourceManager() = 0;
|
||||
|
||||
virtual MCAsmLexer &getLexer() = 0;
|
||||
|
||||
@@ -184,6 +184,10 @@ public:
|
||||
ExtensionDirectiveMap[Directive] = Handler;
|
||||
}
|
||||
|
||||
void addAliasForDirective(StringRef Directive, StringRef Alias) override {
|
||||
DirectiveKindMap[Directive] = DirectiveKindMap[Alias];
|
||||
}
|
||||
|
||||
public:
|
||||
/// @name MCAsmParser Interface
|
||||
/// {
|
||||
|
||||
@@ -349,6 +349,8 @@ public:
|
||||
sti.getCPU(), Options)) {
|
||||
MCAsmParserExtension::Initialize(parser);
|
||||
|
||||
parser.addAliasForDirective(".asciiz", ".asciz");
|
||||
|
||||
// Initialize the set of available features.
|
||||
setAvailableFeatures(ComputeAvailableFeatures(STI.getFeatureBits()));
|
||||
|
||||
|
||||
8
test/MC/Mips/asciiz-directive-bad.s
Normal file
8
test/MC/Mips/asciiz-directive-bad.s
Normal file
@@ -0,0 +1,8 @@
|
||||
# RUN: not llvm-mc -triple mips-unknown-linux %s 2>&1 | FileCheck %s
|
||||
|
||||
.asciiz 12
|
||||
# CHECK: :[[@LINE-1]]:11: error: expected string in '.asciiz' directive
|
||||
.asciiz "a"3
|
||||
# CHECK: :[[@LINE-1]]:14: error: unexpected token in '.asciiz' directive
|
||||
.asciiz "a",
|
||||
# CHECK: :[[@LINE-1]]:15: error: expected string in '.asciiz' directive
|
||||
28
test/MC/Mips/asciiz-directive.s
Normal file
28
test/MC/Mips/asciiz-directive.s
Normal file
@@ -0,0 +1,28 @@
|
||||
# RUN: llvm-mc -triple mips-unknown-linux %s | FileCheck %s
|
||||
# .asciiz is exactly the same as .asciz, except it's MIPS-specific.
|
||||
|
||||
t1:
|
||||
.asciiz
|
||||
# CHECK-LABEL: t1
|
||||
|
||||
t2:
|
||||
.asciiz "a"
|
||||
# CHECK-LABEL: t2
|
||||
# CHECK: .byte 97
|
||||
# CHECK: .byte 0
|
||||
|
||||
t3:
|
||||
.asciiz "a", "b", "c"
|
||||
# CHECK-LABEL: t3
|
||||
# CHECK: .byte 97
|
||||
# CHECK: .byte 0
|
||||
# CHECK: .byte 98
|
||||
# CHECK: .byte 0
|
||||
# CHECK: .byte 99
|
||||
# CHECK: .byte 0
|
||||
|
||||
t4:
|
||||
.asciiz "abcdefghijklmnop"
|
||||
# CHECK-LABEL: t4
|
||||
# CHECK: .ascii "abcdefghijklmnop"
|
||||
# CHECK: .byte 0
|
||||
Reference in New Issue
Block a user