brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.7 KiB · 76ab834 Raw
180 lines · plain
1# RUN: llvm-mc -filetype=asm < %s -triple i686-windows-msvc | FileCheck %s --check-prefix=ASM2# RUN: llvm-mc -filetype=obj < %s -triple i686-windows-msvc | llvm-readobj --codeview - | FileCheck %s --check-prefix=OBJ3 4.globl _foo5_foo:6	.cv_fpo_proc _foo 47	pushl	%ebp8	.cv_fpo_pushreg ebp # Test without %9	pushl	%ebx10	.cv_fpo_pushreg %ebx11	pushl	%edi12	.cv_fpo_pushreg %edi13	pushl	%esi14	.cv_fpo_pushreg esi15	subl $20, %esp16	.cv_fpo_stackalloc 2017	.cv_fpo_endprologue18 19	# ASM: .cv_fpo_proc _foo 420	# ASM: pushl	%ebp21	# ASM: .cv_fpo_pushreg %ebp22	# ASM: pushl	%ebx23	# ASM: .cv_fpo_pushreg %ebx24	# ASM: pushl	%edi25	# ASM: .cv_fpo_pushreg %edi26	# ASM: pushl	%esi27	# ASM: .cv_fpo_pushreg %esi28	# ASM: subl $20, %esp29	# ASM: .cv_fpo_stackalloc 2030	# ASM: .cv_fpo_endprologue31 32	# Clobbers33	xorl %ebp, %ebp34	xorl %ebx, %ebx35	xorl %edi, %edi36	xorl %esi, %esi37	# Use that stack memory38	leal 4(%esp), %eax39	movl %eax, (%esp)40	calll _bar41 42	# ASM: calll _bar43 44	# Epilogue45	# FIXME: Get FPO data for this once we get it for DWARF.46	addl $20, %esp47	popl %esi48	popl %edi49	popl %ebx50	popl %ebp51	retl52	.cv_fpo_endproc53 54	# ASM: .cv_fpo_endproc55 56	.section	.debug$S,"dr"57	.p2align	258	.long	4                       # Debug section magic59	.cv_fpo_data _foo60	.cv_stringtable61 62	# ASM: .cv_fpo_data63 64# OBJ:       Subsection [65# OBJ-NEXT:    SubSectionType: FrameData (0xF5)66# OBJ-NEXT:    SubSectionSize: 0xC467# OBJ-NEXT:    LinkageName: _foo68# OBJ-NEXT:    FrameData {69# OBJ-NEXT:      RvaStart: 0x070# OBJ-NEXT:      CodeSize: 0x2371# OBJ-NEXT:      LocalSize: 0x072# OBJ-NEXT:      ParamsSize: 0x473# OBJ-NEXT:      MaxStackSize: 0x074# OBJ-NEXT:      PrologSize: 0x775# OBJ-NEXT:      SavedRegsSize: 0x076# OBJ-NEXT:      Flags [ (0x4)77# OBJ-NEXT:        IsFunctionStart (0x4)78# OBJ-NEXT:      ]79# OBJ-NEXT:      FrameFunc [80# OBJ-NEXT:        $T0 .raSearch =81# OBJ-NEXT:        $eip $T0 ^ =82# OBJ-NEXT:        $esp $T0 4 + =83# OBJ-NEXT:      ]84# OBJ-NEXT:    }85# OBJ-NEXT:    FrameData {86# OBJ-NEXT:      RvaStart: 0x187# OBJ-NEXT:      CodeSize: 0x2288# OBJ-NEXT:      LocalSize: 0x089# OBJ-NEXT:      ParamsSize: 0x490# OBJ-NEXT:      MaxStackSize: 0x091# OBJ-NEXT:      PrologSize: 0x692# OBJ-NEXT:      SavedRegsSize: 0x493# OBJ-NEXT:      Flags [ (0x0)94# OBJ-NEXT:      ]95# OBJ-NEXT:      FrameFunc [96# OBJ-NEXT:        $T0 .raSearch =97# OBJ-NEXT:        $eip $T0 ^ =98# OBJ-NEXT:        $esp $T0 4 + =99# OBJ-NEXT:        $ebp $T0 4 - ^ =100# OBJ-NEXT:      ]101# OBJ-NEXT:    }102# OBJ-NEXT:    FrameData {103# OBJ-NEXT:      RvaStart: 0x2104# OBJ-NEXT:      CodeSize: 0x21105# OBJ-NEXT:      LocalSize: 0x0106# OBJ-NEXT:      ParamsSize: 0x4107# OBJ-NEXT:      MaxStackSize: 0x0108# OBJ-NEXT:      PrologSize: 0x5109# OBJ-NEXT:      SavedRegsSize: 0x8110# OBJ-NEXT:      Flags [ (0x0)111# OBJ-NEXT:      ]112# OBJ-NEXT:      FrameFunc [113# OBJ-NEXT:        $T0 .raSearch =114# OBJ-NEXT:        $eip $T0 ^ =115# OBJ-NEXT:        $esp $T0 4 + =116# OBJ-NEXT:        $ebp $T0 4 - ^ =117# OBJ-NEXT:        $ebx $T0 8 - ^ =118# OBJ-NEXT:      ]119# OBJ-NEXT:    }120# OBJ-NEXT:    FrameData {121# OBJ-NEXT:      RvaStart: 0x3122# OBJ-NEXT:      CodeSize: 0x20123# OBJ-NEXT:      LocalSize: 0x0124# OBJ-NEXT:      ParamsSize: 0x4125# OBJ-NEXT:      MaxStackSize: 0x0126# OBJ-NEXT:      PrologSize: 0x4127# OBJ-NEXT:      SavedRegsSize: 0xC128# OBJ-NEXT:      Flags [ (0x0)129# OBJ-NEXT:      ]130# OBJ-NEXT:      FrameFunc [131# OBJ-NEXT:        $T0 .raSearch =132# OBJ-NEXT:        $eip $T0 ^ =133# OBJ-NEXT:        $esp $T0 4 + =134# OBJ-NEXT:        $ebp $T0 4 - ^ =135# OBJ-NEXT:        $ebx $T0 8 - ^ =136# OBJ-NEXT:        $edi $T0 12 - ^ =137# OBJ-NEXT:      ]138# OBJ-NEXT:    }139# OBJ-NEXT:    FrameData {140# OBJ-NEXT:      RvaStart: 0x4141# OBJ-NEXT:      CodeSize: 0x1F142# OBJ-NEXT:      LocalSize: 0x0143# OBJ-NEXT:      ParamsSize: 0x4144# OBJ-NEXT:      MaxStackSize: 0x0145# OBJ-NEXT:      PrologSize: 0x3146# OBJ-NEXT:      SavedRegsSize: 0x10147# OBJ-NEXT:      Flags [ (0x0)148# OBJ-NEXT:      ]149# OBJ-NEXT:      FrameFunc [150# OBJ-NEXT:        $T0 .raSearch =151# OBJ-NEXT:        $eip $T0 ^ =152# OBJ-NEXT:        $esp $T0 4 + =153# OBJ-NEXT:        $ebp $T0 4 - ^ =154# OBJ-NEXT:        $ebx $T0 8 - ^ =155# OBJ-NEXT:        $edi $T0 12 - ^ =156# OBJ-NEXT:        $esi $T0 16 - ^ =157# OBJ-NEXT:      ]158# OBJ-NEXT:    }159# OBJ-NEXT:    FrameData {160# OBJ-NEXT:      RvaStart: 0x7161# OBJ-NEXT:      CodeSize: 0x1C162# OBJ-NEXT:      LocalSize: 0x14163# OBJ-NEXT:      ParamsSize: 0x4164# OBJ-NEXT:      MaxStackSize: 0x0165# OBJ-NEXT:      PrologSize: 0x0166# OBJ-NEXT:      SavedRegsSize: 0x10167# OBJ-NEXT:      Flags [ (0x0)168# OBJ-NEXT:      ]169# OBJ-NEXT:      FrameFunc [170# OBJ-NEXT:        $T0 .raSearch =171# OBJ-NEXT:        $eip $T0 ^ =172# OBJ-NEXT:        $esp $T0 4 + =173# OBJ-NEXT:        $ebp $T0 4 - ^ =174# OBJ-NEXT:        $ebx $T0 8 - ^ =175# OBJ-NEXT:        $edi $T0 12 - ^ =176# OBJ-NEXT:        $esi $T0 16 - ^ =177# OBJ-NEXT:      ]178# OBJ-NEXT:    }179# OBJ-NOT: FrameData180