1 # RUN: yaml2obj -format=elf %s | llvm-objdump -d -yaml-cfg=%t - && FileCheck --check-prefix=CFG < %t %s 2 # REQUIRES: shell 3 # 4 # Generated from: 5 # main: 6 # movl $48, %eax 7 # cmpl $3, %edi 8 # jl .LBB0_2 9 # movq 8(%rsi), %rax 10 # movsbl (%rax), %eax 11 # .LBB0_2: 12 # ret 13 # 14 15 !ELF 16 FileHeader: 17 Class: ELFCLASS64 18 Data: ELFDATA2LSB 19 Type: ET_REL 20 Machine: EM_X86_64 21 Sections: 22 - Name: .text 23 Type: SHT_PROGBITS 24 Flags: [ SHF_ALLOC, SHF_EXECINSTR ] 25 Content: "B83000000083FF037C07488B46080FBE00C3" 26 27 ## 0000000000000000 <main>: 28 29 #CFG: Atoms: 30 #CFG: - StartAddress: 0x0000000000000000 31 #CFG: Size: 10 32 33 ## 0: b8 30 00 00 00 mov $0x30,%eax 34 #CFG: - Inst: MOV32ri 35 #CFG: Size: 5 36 #CFG: Ops: [ REAX, I48 ] 37 38 ## 5: 83 ff 03 cmp $0x3,%edi 39 #CFG: - Inst: CMP32ri8 40 #CFG: Size: 3 41 #CFG: Ops: [ REDI, I3 ] 42 43 ## 8: 7c 07 jl 11 <main+0x11> 44 #CFG: - Inst: JL_1 45 #CFG: Size: 2 46 #CFG: Ops: [ I7 ] 47 48 #CFG: - StartAddress: 0x000000000000000A 49 #CFG: Size: 7 50 51 ## a: 48 8b 46 08 mov 0x8(%rsi),%rax 52 #CFG: - Inst: MOV64rm 53 #CFG: Size: 4 54 #CFG: Ops: [ RRAX, RRSI, I1, R, I8, R ] 55 56 ## e: 0f be 00 movsbl (%rax),%eax 57 #CFG: - Inst: MOVSX32rm8 58 #CFG: Size: 3 59 #CFG: Ops: [ REAX, RRAX, I1, R, I0, R ] 60 #CFG: - StartAddress: 0x0000000000000011 61 #CFG: Size: 1 62 63 ## 11: c3 retq 64 #CFG: - Inst: RET 65 #CFG: Size: 1 66 #CFG: Ops: [ ] 67 68 Symbols: 69 Global: 70 - Name: main 71 Type: STT_FUNC 72 Section: .text 73 Value: 0x0 74 Size: 18 75 76 #CFG: Functions: 77 #CFG: BasicBlocks: 78 #CFG: - Address: 0x0000000000000000 79 #CFG: Preds: [ ] 80 #CFG: Succs: [ 0x0000000000000011, 0x000000000000000A ] 81 #CFG: - Address: 0x0000000000000011 82 #CFG: Preds: [ 0x0000000000000000, 0x000000000000000A ] 83 #CFG: Succs: [ ] 84 #CFG: - Address: 0x000000000000000A 85 #CFG: Preds: [ 0x0000000000000000 ] 86 #CFG: Succs: [ 0x0000000000000011 ] 87