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