1ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown		# many thanks to David Fang
2ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown		# for providing an OSX 10.5 machine to test on
3ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
4ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     	     # count for 1 million instructions
5ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	     #   total is 1 + 1 + 499997*2 + 4
6ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
7ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	.globl _start
8ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown_start:
9ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	xor	%ecx,%ecx		# not needed, pads total to 1M
10ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	mov	$499997,%ecx		# load counter
11ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Browntest_loop:
12ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	dec	%ecx			# repeat count times
13ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	jnz	test_loop
14ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
15ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	#================================
16ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	# Exit
17ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	#================================
18ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
19ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	# syscall numbers in /usr/include/sys/syscall.h on OSX
20ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	#                 in arc/x86/include/asm/unistd_32.h on Linux
21ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	# disassemble on OSX otool -tV
22ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownexit:
23ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#ifdef VGO_darwin
24ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	pushl   $0			# we return 0
25ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	xor	%eax,%eax
26ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	inc	%eax	 		# put exit syscall number (1) in eax
27ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	int     $0x80             	# and exit
28ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#else
29ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	xor     %ebx,%ebx		# we return 0
30ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	xor	%eax,%eax
31ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	inc	%eax	 		# put exit syscall number (1) in eax
32ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	int     $0x80             	# and exit
33ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#endif
34