forked from llvm-mirror/llvm
-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add support for assigning to . in AsmParser.
This is implemented by handling assignments to the '.' pseudo symbol as ".org" directives. Differential Revision: http://llvm-reviews.chandlerc.com/D2625 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201530 91177308-0d34-0410-b5e6-96231b3b80d8
- Loading branch information
Showing
6 changed files
with
81 additions
and
12 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
# RUN: not llvm-mc -filetype=obj -triple i386-unknown-unknown %s 2> %t | ||
# RUN: FileCheck -input-file %t %s | ||
|
||
. = 0x10 | ||
.byte 1 | ||
|
||
. = . + 10 | ||
.byte 2 | ||
|
||
# CHECK: LLVM ERROR: invalid .org offset '24' (at offset '28') | ||
. = 0x18 | ||
.byte 3 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s | ||
|
||
.extern start | ||
|
||
# CHECK: .org 1024, 0 | ||
. = 0x400 | ||
lgdt 0x400 + 0x100 | ||
|
||
ljmpl $0x08, $(0x400 + 0x150) | ||
|
||
|
||
# CHECK: .org 1280, 0 | ||
. = 0x400 + 0x100 | ||
.word (3*8)-1 | ||
.quad (0x400 + 0x110) | ||
|
||
# CHECK: .org 1296, 0 | ||
. = 0x400 + 0x110 | ||
.quad 0x0 | ||
.quad 0x0020980000000000 | ||
.quad 0x0000900000000000 | ||
|
||
.code64 | ||
|
||
# CHECK: .org 1360, 0 | ||
. = 0x400 + 0x150 | ||
movabsq $start, %rcx | ||
jmp *%rcx | ||
|
||
|
||
. = 0x300 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
# RUN: not llvm-mc -filetype=obj -triple i386-unknown-unknown %s 2> %t | ||
# RUN: FileCheck -input-file %t %s | ||
|
||
|
||
.extern foo | ||
|
||
# CHECK: error: expected absolute expression | ||
. = foo + 10 | ||
.byte 1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,9 @@ | ||
# Historically 'as' treats '.' as a reference to the current location in | ||
# arbitrary contects. We don't support this in general. | ||
# arbitrary contexts. We don't support this in general. | ||
|
||
# RUN: not llvm-mc -triple i386-unknown-unknown %s 2> %t | ||
# RUN: FileCheck -input-file %t %s | ||
|
||
# CHECK: assignment to pseudo-symbol '.' is unsupported (use '.space' or '.org'). | ||
. = . + 8 | ||
|
||
# CHECK: invalid use of pseudo-symbol '.' as a label | ||
.: | ||
.long 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -sections -section-data | FileCheck %s | ||
|
||
one: | ||
.quad 0xffffffffffffffff | ||
|
||
. = . + 16 | ||
two: | ||
.quad 0xeeeeeeeeeeeeeeee | ||
|
||
. = 0x20 | ||
three: | ||
.quad 0xdddddddddddddddd | ||
|
||
// CHECK: Section { | ||
// CHECK: Name: .text | ||
// CHECK-NEXT: Type: | ||
// CHECK-NEXT: Flags [ | ||
// CHECK: SectionData ( | ||
// CHECK-NEXT: 0000: FFFFFFFF FFFFFFFF 00000000 00000000 | ||
// CHECK-NEXT: 0010: 00000000 00000000 EEEEEEEE EEEEEEEE | ||
// CHECK-NEXT: 0020: DDDDDDDD DDDDDDDD | ||
// CHECK-NEXT: ) |