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