summaryrefslogtreecommitdiff
path: root/test/CodeGen/ARM/build-attributes-encoding.s
blob: 5ad51b284113d1bd84881a1f132492b0db934169 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
// This tests that ARM attributes are properly encoded.

// RUN: llvm-mc < %s -triple=arm-linux-gnueabi -filetype=obj -o - \
// RUN:   | llvm-readobj -s -sd | FileCheck %s

// Tag_CPU_name (=5)
.cpu Cortex-A8

// Tag_CPU_arch (=6)
.eabi_attribute 6, 10

// Tag_arch_profile (=7)
.eabi_attribute 7, 'A'

// Tag_ARM_ISA_use (=8)
.eabi_attribute 8, 1

// Tag_THUMB_ISA_use (=9)
.eabi_attribute 9, 2

// Tag_FP_arch (=10)
.fpu vfpv3

// Tag_Advanced_SIMD_arch (=12)
.eabi_attribute 12, 2

// Tag_ABI_FP_denormal (=20)
.eabi_attribute 20, 1

// Tag_ABI_FP_exceptions (=21)
.eabi_attribute 21, 1

// Tag_ABI_FP_number_model (=23)
.eabi_attribute 23, 1

// Tag_ABI_align_needed (=24)
.eabi_attribute 24, 1

// Tag_ABI_align_preserved (=25)
.eabi_attribute 25, 1

// Tag_ABI_HardFP_use (=27)
.eabi_attribute 27, 0

// Tag_ABI_VFP_args (=28)
.eabi_attribute 28, 1

// Tag_FP_HP_extension (=36)
.eabi_attribute 36, 1

// Tag_MPextension_use (=42)
.eabi_attribute 42, 1

// Tag_DIV_use (=44)
.eabi_attribute 44, 2

// Tag_Virtualization_use (=68)
.eabi_attribute 68, 3

// Check that values > 128 are encoded properly
.eabi_attribute 110, 160

// Check that tags > 128 are encoded properly
.eabi_attribute 129, 1
.eabi_attribute 250, 1

// CHECK:        Section {
// CHECK:          Name: .ARM.attributes
// CHECK-NEXT:     Type: SHT_ARM_ATTRIBUTES
// CHECK-NEXT:     Flags [ (0x0)
// CHECK-NEXT:     ]
// CHECK-NEXT:     Address: 0x0
// CHECK-NEXT:     Offset: 0x34
// CHECK-NEXT:     Size: 70
// CHECK-NEXT:     Link: 0
// CHECK-NEXT:     Info: 0
// CHECK-NEXT:     AddressAlignment: 1
// CHECK-NEXT:     EntrySize: 0
// CHECK-NEXT:     SectionData (
// CHECK-NEXT:       0000: 41450000 00616561 62690001 3B000000
// CHECK-NEXT:       0010: 05434F52 5445582D 41380006 0A074108
// CHECK-NEXT:       0020: 0109020A 030C0214 01150117 01180119
// CHECK-NEXT:       0030: 011B001C 0124012A 012C0244 036EA001
// CHECK-NEXT:       0040: 810101FA 0101
// CHECK-NEXT:     )