mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 03:33:20 +01:00
1f76d4c2b7
We already do this for shstrtab, so might as well do it for strtab. This extracts the string table building code into a separate class. The idea is to use it for other object formats too. I mostly wanted to do this for the general principle, but it does save a little bit on object file size. I tried this on a clang bootstrap and saved 0.54% on the sum of object file sizes (1.14 MB out of 212 MB for a release build). Differential Revision: http://reviews.llvm.org/D3533 llvm-svn: 207670
37 lines
956 B
ArmAsm
37 lines
956 B
ArmAsm
// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -t | FileCheck %s
|
|
|
|
// Test that we emit the correct value.
|
|
|
|
.set kernbase,0xffffffff80000000
|
|
|
|
// CHECK: Symbol {
|
|
// CHECK: Name: kernbase
|
|
// CHECK-NEXT: Value: 0xFFFFFFFF80000000
|
|
// CHECK-NEXT: Size: 0
|
|
// CHECK-NEXT: Binding: Local
|
|
// CHECK-NEXT: Type: None
|
|
// CHECK-NEXT: Other: 0
|
|
// CHECK-NEXT: Section: Absolute (0xFFF1)
|
|
// CHECK-NEXT: }
|
|
|
|
// Test that we accept .set of a symbol after it has been used in a statement.
|
|
|
|
jmp foo
|
|
.set foo, bar
|
|
|
|
// or a .quad
|
|
|
|
.quad foo2
|
|
.set foo2,bar2
|
|
|
|
// Test that there is an undefined reference to bar
|
|
// CHECK: Symbol {
|
|
// CHECK: Name: bar
|
|
// CHECK-NEXT: Value: 0x0
|
|
// CHECK-NEXT: Size: 0
|
|
// CHECK-NEXT: Binding: Global
|
|
// CHECK-NEXT: Type: None
|
|
// CHECK-NEXT: Other: 0
|
|
// CHECK-NEXT: Section: Undefined (0x0)
|
|
// CHECK-NEXT: }
|