Home | History | Annotate | Download | only in x86
      1 #include "tests/asm.h"
      2 
      3 	.version	"01.01"
      4 gcc2_compiled.:
      5 .text
      6 	.align 4
      7 .globl VG_SYM_ASM(fooble)
      8 #if defined(VGO_linux)
      9 	.type	VG_SYM_ASM(fooble),@function
     10 #endif
     11 VG_SYM_ASM(fooble):
     12 	pushl	%ebp
     13 	movl	%esp, %ebp
     14 	movl	8(%ebp), %eax
     15 
     16 	subl	12(%ebp), %eax
     17 	# flags are now undef if either operand is
     18 	# save possibly undef flags on stack
     19 	pushfl
     20 
     21 	movl	$0, %eax
     22 	addl	$0, %eax
     23 	# flags are now definitely defined
     24 
     25 	popfl
     26 	# resulting flag definedness depends on outcome of sub above
     27 	# should override that created by 0 + 0 above
     28 	# because Vex does an emulation-warning check on the popfl,
     29 	# an error should be reported for the popfl
     30 
     31 	# now use the condition codes to generate a value
     32 	# in a way which will cause undefinedness to get reported
     33 	# (a second time)
     34 	jz	labelz
     35 	movl	$22, %eax
     36 	jmp	theend
     37 labelz:
     38 	movl	$33, %eax
     39 theend:
     40 	popl	%ebp
     41 	ret
     42 .Lfe1:
     43 #if defined(VGO_linux)
     44 	.size	VG_SYM_ASM(fooble),.Lfe1-VG_SYM_ASM(fooble)
     45 #endif
     46 	.ident	"GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)"
     47