brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.7 KiB · 19655b5 Raw
289 lines · plain
1// RUN: llvm-mc -triple i386-apple-darwin9 -mcpu=pentiumpro %s -filetype=obj -o - | llvm-readobj --file-headers -S --sd -r --symbols --macho-segment --macho-dysymtab --macho-indirect-symbols - | FileCheck %s2 3# 1 byte nop test4        .align 4, 0 # start with 16 byte alignment filled with zeros5        ret6        # nop7        # 0x908        .align 19        ret10# 2 byte nop test11        .align 4, 0 # start with 16 byte alignment filled with zeros12        ret13        ret14        # xchg %ax,%ax15        # 0x66, 0x9016        .align 217        ret18# 3 byte nop test19        .align 4, 0 # start with 16 byte alignment filled with zeros20        ret21        # nopl (%[re]ax)22        # 0x0f, 0x1f, 0x0023        .align 224        ret25# 4 byte nop test26        .align 4, 0 # start with 16 byte alignment filled with zeros27        ret28        ret29        ret30        ret31        # nopl 0(%[re]ax)32        # 0x0f, 0x1f, 0x40, 0x0033        .align 334        ret35# 5 byte nop test36        .align 4, 0 # start with 16 byte alignment filled with zeros37        ret38        ret39        ret40        # nopl 0(%[re]ax,%[re]ax,1)41        # 0x0f, 0x1f, 0x44, 0x00, 0x0042        .align 343        ret44# 6 byte nop test45        .align 4, 0 # start with 16 byte alignment filled with zeros46        ret47        ret48        # nopw 0(%[re]ax,%[re]ax,1)49        # 0x66, 0x0f, 0x1f, 0x44, 0x00, 0x0050        .align 351        ret52# 7 byte nop test53        .align 4, 0 # start with 16 byte alignment filled with zeros54        ret55        # nopl 0L(%[re]ax)56        # 0x0f, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x0057        .align 358        ret59# 8 byte nop test60        .align 4, 0 # start with 16 byte alignment filled with zeros61        ret62        ret63        ret64        ret65        ret66        ret67        ret68        ret69        # nopl 0L(%[re]ax,%[re]ax,1)70        # 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x0071        .align 372        ret73# 9 byte nop test74        .align 4, 0 # start with 16 byte alignment filled with zeros75        ret76        ret77        ret78        ret79        ret80        ret81        ret82        # nopw 0L(%[re]ax,%[re]ax,1)83        # 0x66, 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x0084        .align 485        ret86# 10 byte nop test87        .align 4, 0 # start with 16 byte alignment filled with zeros88        ret89        ret90        ret91        ret92        ret93        ret94        ret95        # nopw %cs:0L(%[re]ax,%[re]ax,1)96        # 0x66, 0x2e, 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x0097        .align 498        ret99# 11 byte nop test100        .align 4, 0 # start with 16 byte alignment filled with zeros101        ret102        ret103        ret104        ret105        ret106        # nopw %cs:0L(%[re]ax,%[re]ax,1)107        # 0x66, 0x66, 0x2e, 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00108        .align 4109        ret110# 12 byte nop test111        .align 4, 0 # start with 16 byte alignment filled with zeros112        ret113        ret114        ret115        ret116        # nopw 0(%[re]ax,%[re]ax,1)117        # nopw 0(%[re]ax,%[re]ax,1)118        # 0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00,119        # 0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00120        .align 4121        ret122# 13 byte nop test123        .align 4, 0 # start with 16 byte alignment filled with zeros124        ret125        ret126        ret127        # nopw 0(%[re]ax,%[re]ax,1)128        # nopl 0L(%[re]ax)129        # 0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00,130        # 0x0f, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x00131        .align 4132        ret133# 14 byte nop test134        .align 4, 0 # start with 16 byte alignment filled with zeros135        ret136        ret137        # nopl 0L(%[re]ax)138        # nopl 0L(%[re]ax)139        # 0x0f, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x00,140        # 0x0f, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x00141        .align 4142        ret143# 15 byte nop test144        .align 4, 0 # start with 16 byte alignment filled with zeros145        ret146        # nopl 0L(%[re]ax)147        # nopl 0L(%[re]ax,%[re]ax,1)148        # 0x0f, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x00,149        # 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00150        .align 4151        ret152 153        # Only the .text sections gets optimal nops.154	.section	__TEXT,__const155f0:156        .byte 0157	.align	4, 0x90158        .long 0159 160// CHECK: File: <stdin>161// CHECK: Format: Mach-O 32-bit i386162// CHECK: Arch: i386163// CHECK: AddressSize: 32bit164// CHECK: MachHeader {165// CHECK:   Magic: Magic (0xFEEDFACE)166// CHECK:   CpuType: X86 (0x7)167// CHECK:   CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)168// CHECK:   FileType: Relocatable (0x1)169// CHECK:   NumOfLoadCommands: 4170// CHECK:   SizeOfLoadCommands: 312171// CHECK:   Flags [ (0x0)172// CHECK:   ]173// CHECK: }174// CHECK: Sections [175// CHECK:   Section {176// CHECK:     Index: 0177// CHECK:     Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)178// CHECK:     Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)179// CHECK:     Address: 0x0180// CHECK:     Size: 0x151181// CHECK:     Offset: 340182// CHECK:     Alignment: 4183// CHECK:     RelocationOffset: 0x0184// CHECK:     RelocationCount: 0185// CHECK:     Type: Regular (0x0)186// CHECK:     Attributes [ (0x800004)187// CHECK:       PureInstructions (0x800000)188// CHECK:       SomeInstructions (0x4)189// CHECK:     ]190// CHECK:     Reserved1: 0x0191// CHECK:     Reserved2: 0x0192// CHECK:     SectionData (193// CHECK:       0000: C390C300 00000000 00000000 00000000  |................|194// CHECK:       0010: C3C36690 C3000000 00000000 00000000  |..f.............|195// CHECK:       0020: C30F1F00 C3000000 00000000 00000000  |................|196// CHECK:       0030: C3C3C3C3 0F1F4000 C3000000 00000000  |......@.........|197// CHECK:       0040: C3C3C30F 1F440000 C3000000 00000000  |.....D..........|198// CHECK:       0050: C3C3660F 1F440000 C3000000 00000000  |..f..D..........|199// CHECK:       0060: C30F1F80 00000000 C3000000 00000000  |................|200// CHECK:       0070: C3C3C3C3 C3C3C3C3 C3000000 00000000  |................|201// CHECK:       0080: C3C3C3C3 C3C3C366 0F1F8400 00000000  |.......f........|202// CHECK:       0090: C3000000 00000000 00000000 00000000  |................|203// CHECK:       00A0: C3C3C3C3 C3C3C366 0F1F8400 00000000  |.......f........|204// CHECK:       00B0: C3000000 00000000 00000000 00000000  |................|205// CHECK:       00C0: C3C3C3C3 C3662E0F 1F840000 00000090  |.....f..........|206// CHECK:       00D0: C3000000 00000000 00000000 00000000  |................|207// CHECK:       00E0: C3C3C3C3 662E0F1F 84000000 00006690  |....f.........f.|208// CHECK:       00F0: C3000000 00000000 00000000 00000000  |................|209// CHECK:       0100: C3C3C366 2E0F1F84 00000000 000F1F00  |...f............|210// CHECK:       0110: C3000000 00000000 00000000 00000000  |................|211// CHECK:       0120: C3C3662E 0F1F8400 00000000 0F1F4000  |..f...........@.|212// CHECK:       0130: C3000000 00000000 00000000 00000000  |................|213// CHECK:       0140: C3662E0F 1F840000 0000000F 1F440000  |.f...........D..|214// CHECK:       0150: C3                                   |.|215// CHECK:     )216// CHECK:   }217// CHECK:   Section {218// CHECK:     Index: 1219// CHECK:     Name: __const (5F 5F 63 6F 6E 73 74 00 00 00 00 00 00 00 00 00)220// CHECK:     Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)221// CHECK:     Address: 0x160222// CHECK:     Size: 0x14223// CHECK:     Offset: 692224// CHECK:     Alignment: 4225// CHECK:     RelocationOffset: 0x0226// CHECK:     RelocationCount: 0227// CHECK:     Type: Regular (0x0)228// CHECK:     Attributes [ (0x0)229// CHECK:     ]230// CHECK:     Reserved1: 0x0231// CHECK:     Reserved2: 0x0232// CHECK:     SectionData (233// CHECK:       0000: 00909090 90909090 90909090 90909090  |................|234// CHECK:       0010: 00000000                             |....|235// CHECK:     )236// CHECK:   }237// CHECK: ]238// CHECK: Relocations [239// CHECK: ]240// CHECK: Symbols [241// CHECK:   Symbol {242// CHECK:     Name: f0 (1)243// CHECK:     Type: Section (0xE)244// CHECK:     Section: __const (0x2)245// CHECK:     RefType: UndefinedNonLazy (0x0)246// CHECK:     Flags [ (0x0)247// CHECK:     ]248// CHECK:     Value: 0x160249// CHECK:   }250// CHECK: ]251// CHECK: Indirect Symbols {252// CHECK:   Number: 0253// CHECK:   Symbols [254// CHECK:   ]255// CHECK: }256// CHECK: Segment {257// CHECK:   Cmd: LC_SEGMENT258// CHECK:   Name:259// CHECK:   Size: 192260// CHECK:   vmaddr: 0x0261// CHECK:   vmsize: 0x174262// CHECK:   fileoff: 340263// CHECK:   filesize: 372264// CHECK:   maxprot: rwx265// CHECK:   initprot: rwx266// CHECK:   nsects: 2267// CHECK:   flags: 0x0268// CHECK: }269// CHECK: Dysymtab {270// CHECK:   ilocalsym: 0271// CHECK:   nlocalsym: 1272// CHECK:   iextdefsym: 1273// CHECK:   nextdefsym: 0274// CHECK:   iundefsym: 1275// CHECK:   nundefsym: 0276// CHECK:   tocoff: 0277// CHECK:   ntoc: 0278// CHECK:   modtaboff: 0279// CHECK:   nmodtab: 0280// CHECK:   extrefsymoff: 0281// CHECK:   nextrefsyms: 0282// CHECK:   indirectsymoff: 0283// CHECK:   nindirectsyms: 0284// CHECK:   extreloff: 0285// CHECK:   nextrel: 0286// CHECK:   locreloff: 0287// CHECK:   nlocrel: 0288// CHECK: }289