• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#include "tests/asm.h"
2
3	.version	"01.01"
4gcc2_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
11VG_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
37labelz:
38	movl	$33, %eax
39theend:
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