xref: /llvm-project/llvm/test/tools/llvm-objdump/MachO/universal-arm64.test (revision 1a3f88658a02be6be5224fca9d9123b79958f289)
1## This test checks that the CPUTypes are printed correctly for the subtypes of
2## ARM64.
3
4# RUN: yaml2obj %s -o %tarm.o
5# RUN: llvm-objdump %tarm.o --universal-headers --macho | \
6# RUN:   FileCheck %s --match-full-lines
7# RUN: llvm-otool -fv %tarm.o | FileCheck %s --match-full-lines
8# RUN: llvm-objdump %tarm.o --universal-headers --macho --non-verbose | \
9# RUN:   FileCheck %s --match-full-lines --check-prefix=NONVERBOSE
10# RUN: llvm-otool -f %tarm.o | FileCheck %s --match-full-lines --check-prefix=NONVERBOSE
11
12# CHECK:      Fat headers
13# CHECK-NEXT: fat_magic FAT_MAGIC
14# CHECK-NEXT: nfat_arch 3
15# CHECK-NEXT: architecture arm64
16# CHECK-NEXT:     cputype CPU_TYPE_ARM64
17# CHECK-NEXT:     cpusubtype CPU_SUBTYPE_ARM64_ALL
18# CHECK-NEXT:     capabilities 0x0
19# CHECK-NEXT:     offset 4096
20# CHECK-NEXT:     size 352
21# CHECK-NEXT:     align 2^12 (4096)
22# CHECK-NEXT: architecture
23# CHECK-NEXT:     cputype CPU_TYPE_ARM64
24# CHECK-NEXT:     cpusubtype CPU_SUBTYPE_ARM64_V8
25# CHECK-NEXT:     capabilities 0x0
26# CHECK-NEXT:     offset 16384
27# CHECK-NEXT:     size 384
28# CHECK-NEXT:     align 2^14 (16384)
29# CHECK-NEXT: architecture arm64e
30# CHECK-NEXT:     cputype CPU_TYPE_ARM64
31# CHECK-NEXT:     cpusubtype CPU_SUBTYPE_ARM64E
32# CHECK-NEXT:     capabilities 0x0
33# CHECK-NEXT:     offset 28672
34# CHECK-NEXT:     size 384
35# CHECK-NEXT:     align 2^12 (4096)
36# CHECK-NOT:{{.}}
37
38# NONVERBOSE:      Fat headers
39# NONVERBOSE-NEXT: fat_magic 0xcafebabe
40# NONVERBOSE-NEXT: nfat_arch 3
41# NONVERBOSE-NEXT: architecture 0
42# NONVERBOSE-NEXT:     cputype 16777228
43# NONVERBOSE-NEXT:     cpusubtype 0
44# NONVERBOSE-NEXT:     capabilities 0x0
45# NONVERBOSE-NEXT:     offset 4096
46# NONVERBOSE-NEXT:     size 352
47# NONVERBOSE-NEXT:     align 2^12 (4096)
48# NONVERBOSE-NEXT: architecture 1
49# NONVERBOSE-NEXT:     cputype 16777228
50# NONVERBOSE-NEXT:     cpusubtype 1
51# NONVERBOSE-NEXT:     capabilities 0x0
52# NONVERBOSE-NEXT:     offset 16384
53# NONVERBOSE-NEXT:     size 384
54# NONVERBOSE-NEXT:     align 2^14 (16384)
55# NONVERBOSE-NEXT: architecture 2
56# NONVERBOSE-NEXT:     cputype 16777228
57# NONVERBOSE-NEXT:     cpusubtype 2
58# NONVERBOSE-NEXT:     capabilities 0x0
59# NONVERBOSE-NEXT:     offset 28672
60# NONVERBOSE-NEXT:     size 384
61# NONVERBOSE-NEXT:     align 2^12 (4096)
62# NONVERBOSE-NOT:{{.}}
63
64
65--- !fat-mach-o
66FatHeader:
67  magic:           0xCAFEBABE
68  nfat_arch:       3
69FatArchs:
70  - cputype:         0x0100000C
71    cpusubtype:      0x00000000
72    offset:          0x0000000000001000
73    size:            352
74    align:           12
75  - cputype:         0x0100000C
76    cpusubtype:      0x00000001
77    offset:          0x0000000000004000
78    size:            384
79    align:           14
80  - cputype:         0x0100000C
81    cpusubtype:      0x00000002
82    offset:          0x0000000000007000
83    size:            384
84    align:           12
85Slices:
86  - !mach-o
87    FileHeader:
88      magic:           0xFEEDFACF
89      cputype:         0x0100000C
90      cpusubtype:      0x00000000
91      filetype:        0x00000001
92      ncmds:           0
93      sizeofcmds:      0
94      flags:           0x00000000
95      reserved:        0x00000000
96  - !mach-o
97    FileHeader:
98      magic:           0xFEEDFACF
99      cputype:         0x0100000C
100      cpusubtype:      0x00000001
101      filetype:        0x00000001
102      ncmds:           0
103      sizeofcmds:      0
104      flags:           0x00000000
105      reserved:        0x00000000
106  - !mach-o
107    FileHeader:
108      magic:           0xFEEDFACF
109      cputype:         0x0100000C
110      cpusubtype:      0x00000002
111      filetype:        0x00000001
112      ncmds:           0
113      sizeofcmds:      0
114      flags:           0x00000000
115      reserved:        0x00000000
116...
117