brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.3 KiB · 8b400df Raw
227 lines · plain
1@ RUN: llvm-mc %s -triple=armv7-unknown-linux-gnueabi -filetype=obj -o - \2@ RUN:   | llvm-readobj -S --sd - | FileCheck %s3 4@ Check for different stack pointer offsets.5 6@ The .pad directive will track the stack pointer offsets.  There are several7@ ways to encode the stack offsets.  We have to test:8@9@              offset <  0x0010@              offset == 0x0011@     0x04  <= offset <= 0x10012@     0x104 <= offset <= 0x20013@     0x204 <= offset14 15 16	.syntax unified17 18@-------------------------------------------------------------------------------19@ TEST120@-------------------------------------------------------------------------------21	.section	.TEST122	.globl	func123	.align	224	.type	func1,%function25	.fnstart26func1:27	.pad	#028	sub	sp, sp, #029	add	sp, sp, #030	bx	lr31	.personality __gxx_personality_v032	.handlerdata33	.fnend34 35@-------------------------------------------------------------------------------36@ The assembler should emit nothing (will be filled up with finish opcode).37@-------------------------------------------------------------------------------38@ CHECK: Section {39@ CHECK:   Name: .ARM.extab.TEST140@ CHECK:   SectionData (41@ CHECK:     0000: 00000000 B0B0B000                    |........|42@ CHECK:   )43@ CHECK: }44 45 46 47@-------------------------------------------------------------------------------48@ TEST249@-------------------------------------------------------------------------------50	.section	.TEST251	.globl	func2a52	.align	253	.type	func2a,%function54	.fnstart55func2a:56	.pad	#0x457	sub	sp, sp, #0x458	add	sp, sp, #0x459	bx	lr60	.personality __gxx_personality_v061	.handlerdata62	.fnend63 64	.globl	func2b65	.align	266	.type	func2b,%function67	.fnstart68func2b:69	.pad	#0x10070	sub	sp, sp, #0x10071	add	sp, sp, #0x10072	bx	lr73	.personality __gxx_personality_v074	.handlerdata75	.fnend76 77@-------------------------------------------------------------------------------78@ The assembler should emit ((offset - 4) >> 2).79@-------------------------------------------------------------------------------80@ CHECK: Section {81@ CHECK:   Name: .ARM.extab.TEST282@ CHECK:   SectionData (83@ CHECK:     0000: 00000000 B0B00000 00000000 B0B03F00  |..............?.|84@ CHECK:   )85@ CHECK: }86 87 88@-------------------------------------------------------------------------------89@ TEST390@-------------------------------------------------------------------------------91	.section	.TEST392	.globl	func3a93	.align	294	.type	func3a,%function95	.fnstart96func3a:97	.pad	#0x10498	sub	sp, sp, #0x10499	add	sp, sp, #0x104100	bx	lr101	.personality __gxx_personality_v0102	.handlerdata103	.fnend104 105	.globl	func3b106	.align	2107	.type	func3b,%function108	.fnstart109func3b:110	.pad	#0x200111	sub	sp, sp, #0x200112	add	sp, sp, #0x200113	bx	lr114	.personality __gxx_personality_v0115	.handlerdata116	.fnend117 118@-------------------------------------------------------------------------------119@ The assembler should emit 0x3F and ((offset - 0x104) >> 2).120@-------------------------------------------------------------------------------121@ CHECK: Section {122@ CHECK:   Name: .ARM.extab.TEST3123@ CHECK:   SectionData (124@ CHECK:     0000: 00000000 B03F0000 00000000 B03F3F00  |.....?.......??.|125@ CHECK:   )126@ CHECK: }127 128 129 130@-------------------------------------------------------------------------------131@ TEST4132@-------------------------------------------------------------------------------133	.section	.TEST4134	.globl	func4a135	.align	2136	.type	func4a,%function137	.fnstart138func4a:139	.pad	#0x204140	sub	sp, sp, #0x204141	add	sp, sp, #0x204142	bx	lr143	.personality __gxx_personality_v0144	.handlerdata145	.fnend146 147	.globl	func4b148	.align	2149	.type	func4b,%function150	.fnstart151func4b:152	.pad	#0x580153	sub	sp, sp, #0x580154	add	sp, sp, #0x580155	bx	lr156	.personality __gxx_personality_v0157	.handlerdata158	.fnend159 160@-------------------------------------------------------------------------------161@ The assembler should emit 0xB2 and the ULEB128 encoding of162@ ((offset - 0x204) >> 2).163@-------------------------------------------------------------------------------164@ CHECK: Section {165@ CHECK:   Name: .ARM.extab.TEST4166@ CHECK:   SectionData (167@ CHECK:     0000: 00000000 B000B200 00000000 01DFB200  |................|168@ CHECK:   )169@ CHECK: }170 171 172 173@-------------------------------------------------------------------------------174@ TEST5175@-------------------------------------------------------------------------------176	.section	.TEST5177	.globl	func4a178	.align	2179	.type	func4a,%function180	.fnstart181func5a:182	.pad	#-0x4183	add	sp, sp, #0x4184	sub	sp, sp, #0x4185	bx	lr186	.personality __gxx_personality_v0187	.handlerdata188	.fnend189 190	.globl	func5b191	.align	2192	.type	func5b,%function193	.fnstart194func5b:195	.pad	#-0x104196	add	sp, sp, #0x104197	sub	sp, sp, #0x4198	bx	lr199	.personality __gxx_personality_v0200	.handlerdata201	.fnend202 203	.globl	func5c204	.align	2205	.type	func5c,%function206	.fnstart207func5c:208	.pad	#-0x204209	add	sp, sp, #0x204210	sub	sp, sp, #0x4211	bx	lr212	.personality __gxx_personality_v0213	.handlerdata214	.fnend215 216@-------------------------------------------------------------------------------217@ The assembler should emit (0x40 | (-offset - 4)) >> 2.  When (-offset - 4)218@ is greater than 0x3f, then multiple 0x7f should be emitted.219@-------------------------------------------------------------------------------220@ CHECK: Section {221@ CHECK:   Name: .ARM.extab.TEST5222@ CHECK:   SectionData (223@ CHECK:     0000: 00000000 B0B04000 00000000 B07F4000  |......@.......@.|224@ CHECK:     0010: 00000000 7F7F4000                    |......@.|225@ CHECK:   )226@ CHECK: }227