brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.7 KiB · 10ac9d6 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 %ebp9	movl	%ebp, %esp10	.cv_fpo_setframe %ebp11	pushl	%ebx12	.cv_fpo_pushreg %ebx13	pushl	%edi14	.cv_fpo_pushreg %edi15	pushl	%esi16	.cv_fpo_pushreg esi17	subl $20, %esp18	.cv_fpo_stackalloc 2019	.cv_fpo_endprologue20 21	# ASM: .cv_fpo_proc _foo 422	# ASM: pushl	%ebp23	# ASM: .cv_fpo_pushreg %ebp24	# ASM: movl	%ebp, %esp25	# ASM: .cv_fpo_setframe %ebp26	# ASM: pushl	%ebx27	# ASM: .cv_fpo_pushreg %ebx28	# ASM: pushl	%edi29	# ASM: .cv_fpo_pushreg %edi30	# ASM: pushl	%esi31	# ASM: .cv_fpo_pushreg %esi32	# ASM: subl $20, %esp33	# ASM: .cv_fpo_stackalloc 2034	# ASM: .cv_fpo_endprologue35 36	# Clobbers37	xorl %ebx, %ebx38	xorl %edi, %edi39	xorl %esi, %esi40	# Use that stack memory41	leal 4(%esp), %eax42	movl %eax, (%esp)43	calll _bar44 45	# ASM: calll _bar46 47	# Epilogue48	# FIXME: Get FPO data for this once we get it for DWARF.49	addl $20, %esp50	popl %esi51	popl %edi52	popl %ebx53	popl %ebp54	retl55	.cv_fpo_endproc56 57	# ASM: .cv_fpo_endproc58 59	.section	.debug$S,"dr"60	.p2align	261	.long	4                       # Debug section magic62	.cv_fpo_data _foo63	.cv_stringtable64 65	# ASM: .cv_fpo_data66 67# OBJ:       Subsection [68# OBJ-NEXT:    SubSectionType: FrameData (0xF5)69# OBJ-NEXT:    SubSectionSize:70# OBJ-NEXT:    LinkageName: _foo71# OBJ-NEXT:    FrameData {72# OBJ-NEXT:      RvaStart: 0x073# OBJ-NEXT:      CodeSize: 0x2374# OBJ-NEXT:      LocalSize: 0x075# OBJ-NEXT:      ParamsSize: 0x476# OBJ-NEXT:      MaxStackSize: 0x077# OBJ-NEXT:      PrologSize: 0x978# OBJ-NEXT:      SavedRegsSize: 0x079# OBJ-NEXT:      Flags [ (0x4)80# OBJ-NEXT:        IsFunctionStart (0x4)81# OBJ-NEXT:      ]82# OBJ-NEXT:      FrameFunc [83# OBJ-NEXT:        $T0 .raSearch =84# OBJ-NEXT:        $eip $T0 ^ =85# OBJ-NEXT:        $esp $T0 4 + =86# OBJ-NEXT:      ]87# OBJ-NEXT:    }88# OBJ-NEXT:    FrameData {89# OBJ-NEXT:      RvaStart: 0x190# OBJ-NEXT:      CodeSize: 0x2291# OBJ-NEXT:      LocalSize: 0x092# OBJ-NEXT:      ParamsSize: 0x493# OBJ-NEXT:      MaxStackSize: 0x094# OBJ-NEXT:      PrologSize: 0x895# OBJ-NEXT:      SavedRegsSize: 0x496# OBJ-NEXT:      Flags [ (0x0)97# OBJ-NEXT:      ]98# OBJ-NEXT:      FrameFunc [99# OBJ-NEXT:        $T0 .raSearch =100# OBJ-NEXT:        $eip $T0 ^ =101# OBJ-NEXT:        $esp $T0 4 + =102# OBJ-NEXT:        $ebp $T0 4 - ^ =103# OBJ-NEXT:      ]104# OBJ-NEXT:    }105# OBJ-NEXT:    FrameData {106# OBJ-NEXT:      RvaStart: 0x3107# OBJ-NEXT:      CodeSize: 0x20108# OBJ-NEXT:      LocalSize: 0x0109# OBJ-NEXT:      ParamsSize: 0x4110# OBJ-NEXT:      MaxStackSize: 0x0111# OBJ-NEXT:      PrologSize: 0x6112# OBJ-NEXT:      SavedRegsSize: 0x4113# OBJ-NEXT:      Flags [ (0x0)114# OBJ-NEXT:      ]115# OBJ-NEXT:      FrameFunc [116# OBJ-NEXT:        $T0 $ebp 4 + =117# OBJ-NEXT:        $eip $T0 ^ =118# OBJ-NEXT:        $esp $T0 4 + =119# OBJ-NEXT:        $ebp $T0 4 - ^ =120# OBJ-NEXT:      ]121# OBJ-NEXT:    }122# OBJ-NEXT:    FrameData {123# OBJ-NEXT:      RvaStart: 0x4124# OBJ-NEXT:      CodeSize: 0x1F125# OBJ-NEXT:      LocalSize: 0x0126# OBJ-NEXT:      ParamsSize: 0x4127# OBJ-NEXT:      MaxStackSize: 0x0128# OBJ-NEXT:      PrologSize: 0x5129# OBJ-NEXT:      SavedRegsSize: 0x8130# OBJ-NEXT:      Flags [ (0x0)131# OBJ-NEXT:      ]132# OBJ-NEXT:      FrameFunc [133# OBJ-NEXT:        $T0 $ebp 4 + =134# OBJ-NEXT:        $eip $T0 ^ =135# OBJ-NEXT:        $esp $T0 4 + =136# OBJ-NEXT:        $ebp $T0 4 - ^ =137# OBJ-NEXT:        $ebx $T0 8 - ^ =138# OBJ-NEXT:      ]139# OBJ-NEXT:    }140# OBJ-NEXT:    FrameData {141# OBJ-NEXT:      RvaStart: 0x5142# OBJ-NEXT:      CodeSize: 0x1E143# OBJ-NEXT:      LocalSize: 0x0144# OBJ-NEXT:      ParamsSize: 0x4145# OBJ-NEXT:      MaxStackSize: 0x0146# OBJ-NEXT:      PrologSize: 0x4147# OBJ-NEXT:      SavedRegsSize: 0xC148# OBJ-NEXT:      Flags [ (0x0)149# OBJ-NEXT:      ]150# OBJ-NEXT:      FrameFunc [151# OBJ-NEXT:        $T0 $ebp 4 + =152# OBJ-NEXT:        $eip $T0 ^ =153# OBJ-NEXT:        $esp $T0 4 + =154# OBJ-NEXT:        $ebp $T0 4 - ^ =155# OBJ-NEXT:        $ebx $T0 8 - ^ =156# OBJ-NEXT:        $edi $T0 12 - ^ =157# OBJ-NEXT:      ]158# OBJ-NEXT:    }159# OBJ-NEXT:    FrameData {160# OBJ-NEXT:      RvaStart: 0x6161# OBJ-NEXT:      CodeSize: 0x1D162# OBJ-NEXT:      LocalSize: 0x0163# OBJ-NEXT:      ParamsSize: 0x4164# OBJ-NEXT:      MaxStackSize: 0x0165# OBJ-NEXT:      PrologSize: 0x3166# OBJ-NEXT:      SavedRegsSize: 0x10167# OBJ-NEXT:      Flags [ (0x0)168# OBJ-NEXT:      ]169# OBJ-NEXT:      FrameFunc [170# OBJ-NEXT:        $T0 $ebp 4 + =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