mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-05-22 19:38:40 +00:00
[PowerPC] Support .llong and fix .word
This adds support for the .llong PowerPC-specifc assembler directive. In doing so, I notices that .word is currently incorrect: it is supposed to define a 2-byte data element, not a 4-byte one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185911 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
11c29bafd5
commit
ff16df71f5
@ -1177,7 +1177,9 @@ ParseInstruction(ParseInstructionInfo &Info, StringRef Name, SMLoc NameLoc,
|
|||||||
bool PPCAsmParser::ParseDirective(AsmToken DirectiveID) {
|
bool PPCAsmParser::ParseDirective(AsmToken DirectiveID) {
|
||||||
StringRef IDVal = DirectiveID.getIdentifier();
|
StringRef IDVal = DirectiveID.getIdentifier();
|
||||||
if (IDVal == ".word")
|
if (IDVal == ".word")
|
||||||
return ParseDirectiveWord(4, DirectiveID.getLoc());
|
return ParseDirectiveWord(2, DirectiveID.getLoc());
|
||||||
|
if (IDVal == ".llong")
|
||||||
|
return ParseDirectiveWord(8, DirectiveID.getLoc());
|
||||||
if (IDVal == ".tc")
|
if (IDVal == ".tc")
|
||||||
return ParseDirectiveTC(isPPC64()? 8 : 4, DirectiveID.getLoc());
|
return ParseDirectiveTC(isPPC64()? 8 : 4, DirectiveID.getLoc());
|
||||||
return true;
|
return true;
|
||||||
|
28
test/MC/PowerPC/ppc-llong.s
Normal file
28
test/MC/PowerPC/ppc-llong.s
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
|
||||||
|
# RUN: llvm-mc -triple powerpc-unknown-unknown -filetype=obj %s | \
|
||||||
|
# RUN: llvm-readobj -s -sd | FileCheck %s
|
||||||
|
# RUN: llvm-mc -triple powerpc64-unknown-unknown -filetype=obj %s | \
|
||||||
|
# RUN: llvm-readobj -s -sd | FileCheck %s
|
||||||
|
|
||||||
|
.data
|
||||||
|
.llong 0
|
||||||
|
|
||||||
|
# CHECK: Section {
|
||||||
|
# CHECK: Name: .data
|
||||||
|
# CHECK-NEXT: Type: SHT_PROGBITS
|
||||||
|
# CHECK-NEXT: Flags [
|
||||||
|
# CHECK-NEXT: SHF_ALLOC
|
||||||
|
# CHECK-NEXT: SHF_WRITE
|
||||||
|
# CHECK-NEXT: ]
|
||||||
|
# CHECK-NEXT: Address: 0x0
|
||||||
|
# CHECK-NEXT: Offset:
|
||||||
|
# CHECK-NEXT: Size: 8
|
||||||
|
# CHECK-NEXT: Link: 0
|
||||||
|
# CHECK-NEXT: Info: 0
|
||||||
|
# CHECK-NEXT: AddressAlignment: 4
|
||||||
|
# CHECK-NEXT: EntrySize: 0
|
||||||
|
# CHECK-NEXT: SectionData (
|
||||||
|
# CHECK-NEXT: 0000: 00000000 00000000
|
||||||
|
# CHECK-NEXT: )
|
||||||
|
# CHECK-NEXT: }
|
||||||
|
|
28
test/MC/PowerPC/ppc-word.s
Normal file
28
test/MC/PowerPC/ppc-word.s
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
|
||||||
|
# RUN: llvm-mc -triple powerpc-unknown-unknown -filetype=obj %s | \
|
||||||
|
# RUN: llvm-readobj -s -sd | FileCheck %s
|
||||||
|
# RUN: llvm-mc -triple powerpc64-unknown-unknown -filetype=obj %s | \
|
||||||
|
# RUN: llvm-readobj -s -sd | FileCheck %s
|
||||||
|
|
||||||
|
.data
|
||||||
|
.word 0
|
||||||
|
|
||||||
|
# CHECK: Section {
|
||||||
|
# CHECK: Name: .data
|
||||||
|
# CHECK-NEXT: Type: SHT_PROGBITS
|
||||||
|
# CHECK-NEXT: Flags [
|
||||||
|
# CHECK-NEXT: SHF_ALLOC
|
||||||
|
# CHECK-NEXT: SHF_WRITE
|
||||||
|
# CHECK-NEXT: ]
|
||||||
|
# CHECK-NEXT: Address: 0x0
|
||||||
|
# CHECK-NEXT: Offset:
|
||||||
|
# CHECK-NEXT: Size: 2
|
||||||
|
# CHECK-NEXT: Link: 0
|
||||||
|
# CHECK-NEXT: Info: 0
|
||||||
|
# CHECK-NEXT: AddressAlignment: 4
|
||||||
|
# CHECK-NEXT: EntrySize: 0
|
||||||
|
# CHECK-NEXT: SectionData (
|
||||||
|
# CHECK-NEXT: 0000: 0000
|
||||||
|
# CHECK-NEXT: )
|
||||||
|
# CHECK-NEXT: }
|
||||||
|
|
@ -48,7 +48,7 @@ addis 1, 1, target7@highesta
|
|||||||
.data
|
.data
|
||||||
|
|
||||||
.quad v1
|
.quad v1
|
||||||
.word v2
|
.long v2
|
||||||
.short v3
|
.short v3
|
||||||
.byte v4
|
.byte v4
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user