233 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
			
		
		
	
	
			233 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
# RUN: llvm-mc %s -filetype obj -triple armv7a-- -o %t.o
 | 
						|
# RUN: not llvm-cfi-verify %t.o 2>&1 | FileCheck %s
 | 
						|
 | 
						|
# CHECK: Could not initialise disassembler: Unsupported architecture.
 | 
						|
 | 
						|
# Source (tiny.cc):
 | 
						|
#   int a() { return 42; }
 | 
						|
#   int b() { return 137; }
 | 
						|
#   int main(int argc, char** argv) {
 | 
						|
#     int(*ptr)();
 | 
						|
#     if (argc == 1)
 | 
						|
#       ptr = &a;
 | 
						|
#     else
 | 
						|
#       ptr = &b;
 | 
						|
#     return ptr();
 | 
						|
#   }
 | 
						|
	.text
 | 
						|
	.syntax unified
 | 
						|
	.eabi_attribute	67, "2.09"
 | 
						|
	.eabi_attribute	6, 2
 | 
						|
	.eabi_attribute	8, 1
 | 
						|
	.eabi_attribute	9, 1
 | 
						|
	.eabi_attribute	34, 1
 | 
						|
	.eabi_attribute	15, 1
 | 
						|
	.eabi_attribute	16, 1
 | 
						|
	.eabi_attribute	17, 2
 | 
						|
	.eabi_attribute	20, 1
 | 
						|
	.eabi_attribute	21, 1
 | 
						|
	.eabi_attribute	23, 3
 | 
						|
	.eabi_attribute	24, 1
 | 
						|
	.eabi_attribute	25, 1
 | 
						|
	.eabi_attribute	38, 1
 | 
						|
	.eabi_attribute	18, 4
 | 
						|
	.eabi_attribute	26, 2
 | 
						|
	.eabi_attribute	14, 0
 | 
						|
	.file	"ld-temp.o"
 | 
						|
	.p2align	2
 | 
						|
	.type	_Z1av.cfi,%function
 | 
						|
	.code	32
 | 
						|
_Z1av.cfi:
 | 
						|
.Lfunc_begin0:
 | 
						|
	.file	1 "tiny.cc"
 | 
						|
	.loc	1 1 0
 | 
						|
	.fnstart
 | 
						|
	.cfi_sections .debug_frame
 | 
						|
	.cfi_startproc
 | 
						|
	.loc	1 1 11 prologue_end
 | 
						|
	mov	r0, #42
 | 
						|
	bx	lr
 | 
						|
.Ltmp0:
 | 
						|
.Lfunc_end0:
 | 
						|
	.size	_Z1av.cfi, .Lfunc_end0-_Z1av.cfi
 | 
						|
	.cfi_endproc
 | 
						|
	.cantunwind
 | 
						|
	.fnend
 | 
						|
 | 
						|
	.p2align	2
 | 
						|
	.type	_Z1bv.cfi,%function
 | 
						|
	.code	32
 | 
						|
_Z1bv.cfi:
 | 
						|
.Lfunc_begin1:
 | 
						|
	.loc	1 2 0
 | 
						|
	.fnstart
 | 
						|
	.cfi_startproc
 | 
						|
	.loc	1 2 11 prologue_end
 | 
						|
	mov	r0, #137
 | 
						|
	bx	lr
 | 
						|
.Ltmp1:
 | 
						|
.Lfunc_end1:
 | 
						|
	.size	_Z1bv.cfi, .Lfunc_end1-_Z1bv.cfi
 | 
						|
	.cfi_endproc
 | 
						|
	.cantunwind
 | 
						|
	.fnend
 | 
						|
 | 
						|
	.p2align	2
 | 
						|
	.type	main,%function
 | 
						|
	.code	32
 | 
						|
main:
 | 
						|
.Lfunc_begin2:
 | 
						|
	.loc	1 3 0
 | 
						|
	.fnstart
 | 
						|
	.cfi_startproc
 | 
						|
	.save	{r11, lr}
 | 
						|
	push	{r11, lr}
 | 
						|
	.cfi_def_cfa_offset 8
 | 
						|
	.cfi_offset lr, -4
 | 
						|
	.cfi_offset r11, -8
 | 
						|
	.setfp	r11, sp
 | 
						|
	mov	r11, sp
 | 
						|
	.cfi_def_cfa_register r11
 | 
						|
	.pad	#16
 | 
						|
	sub	sp, sp, #16
 | 
						|
	mov	r2, #0
 | 
						|
	str	r2, [r11, #-4]
 | 
						|
	str	r0, [sp, #8]
 | 
						|
	str	r1, [sp, #4]
 | 
						|
.Ltmp2:
 | 
						|
	.loc	1 5 7 prologue_end
 | 
						|
	ldr	r0, [sp, #8]
 | 
						|
	cmp	r0, #1
 | 
						|
	bne	.LBB2_2
 | 
						|
	b	.LBB2_1
 | 
						|
.LBB2_1:
 | 
						|
	.loc	1 6 9
 | 
						|
	ldr	r0, .LCPI2_0
 | 
						|
.LPC2_0:
 | 
						|
	add	r0, pc, r0
 | 
						|
	str	r0, [sp]
 | 
						|
	.loc	1 6 5 is_stmt 0
 | 
						|
	b	.LBB2_3
 | 
						|
.LBB2_2:
 | 
						|
	.loc	1 8 9 is_stmt 1
 | 
						|
	ldr	r0, .LCPI2_1
 | 
						|
.LPC2_1:
 | 
						|
	add	r0, pc, r0
 | 
						|
	str	r0, [sp]
 | 
						|
	b	.LBB2_3
 | 
						|
.LBB2_3:
 | 
						|
	.loc	1 9 10
 | 
						|
	ldr	r1, [sp]
 | 
						|
	ldr	r0, .LCPI2_2
 | 
						|
.LPC2_2:
 | 
						|
	add	r0, pc, r0
 | 
						|
	sub	r0, r1, r0
 | 
						|
	ror	r0, r0, #2
 | 
						|
	cmp	r0, #2
 | 
						|
	blo	.LBB2_5
 | 
						|
	b	.LBB2_4
 | 
						|
.LBB2_4:
 | 
						|
	.inst	0xe7ffdefe
 | 
						|
.LBB2_5:
 | 
						|
	mov	lr, pc
 | 
						|
	bx	r1
 | 
						|
	.loc	1 9 3 is_stmt 0
 | 
						|
	mov	sp, r11
 | 
						|
	pop	{r11, lr}
 | 
						|
	bx	lr
 | 
						|
.Ltmp3:
 | 
						|
	.p2align	2
 | 
						|
	.loc	1 0 3
 | 
						|
.LCPI2_0:
 | 
						|
	.long	_Z1av-(.LPC2_0+8)
 | 
						|
.LCPI2_1:
 | 
						|
	.long	_Z1bv-(.LPC2_1+8)
 | 
						|
.LCPI2_2:
 | 
						|
	.long	.L.cfi.jumptable-(.LPC2_2+8)
 | 
						|
.Lfunc_end2:
 | 
						|
	.size	main, .Lfunc_end2-main
 | 
						|
	.cfi_endproc
 | 
						|
	.fnend
 | 
						|
 | 
						|
	.p2align	2
 | 
						|
	.type	.L.cfi.jumptable,%function
 | 
						|
	.code	32
 | 
						|
.L.cfi.jumptable:
 | 
						|
.Lfunc_begin3:
 | 
						|
	.fnstart
 | 
						|
	.cfi_startproc
 | 
						|
	@APP
 | 
						|
	b	_Z1av.cfi
 | 
						|
	b	_Z1bv.cfi
 | 
						|
 | 
						|
	@NO_APP
 | 
						|
.Lfunc_end3:
 | 
						|
	.size	.L.cfi.jumptable, .Lfunc_end3-.L.cfi.jumptable
 | 
						|
	.cfi_endproc
 | 
						|
	.cantunwind
 | 
						|
	.fnend
 | 
						|
 | 
						|
	.type	.L__unnamed_1,%object
 | 
						|
	.section	.rodata,"a",%progbits
 | 
						|
.L__unnamed_1:
 | 
						|
	.size	.L__unnamed_1, 0
 | 
						|
 | 
						|
	.section	.debug_str,"MS",%progbits,1
 | 
						|
.Linfo_string0:
 | 
						|
	.asciz	"clang version 7.0.0 (trunk 336681) (llvm/trunk 336683)"
 | 
						|
.Linfo_string1:
 | 
						|
	.asciz	"tiny.cc"
 | 
						|
.Linfo_string2:
 | 
						|
	.asciz	""
 | 
						|
	.section	.debug_abbrev,"",%progbits
 | 
						|
	.byte	1
 | 
						|
	.byte	17
 | 
						|
	.byte	0
 | 
						|
	.byte	37
 | 
						|
	.byte	14
 | 
						|
	.byte	19
 | 
						|
	.byte	5
 | 
						|
	.byte	3
 | 
						|
	.byte	14
 | 
						|
	.byte	16
 | 
						|
	.byte	23
 | 
						|
	.byte	27
 | 
						|
	.byte	14
 | 
						|
	.byte	17
 | 
						|
	.byte	1
 | 
						|
	.byte	18
 | 
						|
	.byte	6
 | 
						|
	.byte	0
 | 
						|
	.byte	0
 | 
						|
	.byte	0
 | 
						|
	.section	.debug_info,"",%progbits
 | 
						|
.Lcu_begin0:
 | 
						|
	.long	34
 | 
						|
	.short	4
 | 
						|
	.long	.debug_abbrev
 | 
						|
	.byte	4
 | 
						|
	.byte	1
 | 
						|
	.long	.Linfo_string0
 | 
						|
	.short	4
 | 
						|
	.long	.Linfo_string1
 | 
						|
	.long	.Lline_table_start0
 | 
						|
	.long	.Linfo_string2
 | 
						|
	.long	.Lfunc_begin0
 | 
						|
	.long	.Lfunc_end2-.Lfunc_begin0
 | 
						|
	.section	.debug_ranges,"",%progbits
 | 
						|
	.section	.debug_macinfo,"",%progbits
 | 
						|
	.byte	0
 | 
						|
 | 
						|
	.globl	__typeid__ZTSFivE_global_addr
 | 
						|
	.hidden	__typeid__ZTSFivE_global_addr
 | 
						|
.set __typeid__ZTSFivE_global_addr, .L.cfi.jumptable
 | 
						|
	.size	__typeid__ZTSFivE_global_addr, 1
 | 
						|
	.type	_Z1av,%function
 | 
						|
.set _Z1av, .L.cfi.jumptable
 | 
						|
	.type	_Z1bv,%function
 | 
						|
.set _Z1bv, .L.cfi.jumptable+4
 | 
						|
	.ident	"clang version 7.0.0 (trunk 336681) (llvm/trunk 336683)"
 | 
						|
	.section	".note.GNU-stack","",%progbits
 | 
						|
	.section	.debug_line,"",%progbits
 | 
						|
.Lline_table_start0:
 |