blob: 7b219f618ee84db2e0cd8ffa52043e38d4d5d348 [file] [log] [blame]
#include "tests/asm.h"
#if defined(VGO_linux) || defined(VGO_solaris)
.version "01.01"
#endif
gcc2_compiled.:
.text
.align 4
.globl VG_SYM_ASM(fooble)
#if defined(VGO_linux) || defined(VGO_solaris)
.type VG_SYM_ASM(fooble),@function
#endif
VG_SYM_ASM(fooble):
pushl %ebp
movl %esp, %ebp
movl 8(%ebp), %eax
subl 12(%ebp), %eax
# flags are now undef if either operand is
# save possibly undef flags on stack
pushfl
movl $0, %eax
addl $0, %eax
# flags are now definitely defined
popfl
# resulting flag definedness depends on outcome of sub above
# should override that created by 0 + 0 above
# because Vex does an emulation-warning check on the popfl,
# an error should be reported for the popfl
# now use the condition codes to generate a value
# in a way which will cause undefinedness to get reported
# (a second time)
jz labelz
movl $22, %eax
jmp theend
labelz:
movl $33, %eax
theend:
popl %ebp
ret
.Lfe1:
#if defined(VGO_linux) || defined(VGO_solaris)
.size VG_SYM_ASM(fooble),.Lfe1-VG_SYM_ASM(fooble)
#endif
.ident "GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)"