Files
ftmemsim-valgrind/exp-bbv/tests/x86/complex_rep.S
Nicholas Nethercote 9c040c96bf Add exp-bbv to the tool-suite. I'm seeing a couple of amd64-linux test
failures, but they can be fixed up in-repo.  This resolves bug 198395.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10444
2009-07-14 01:39:54 +00:00

63 lines
1.1 KiB
ArmAsm

# When trying (and failing) to instrument at the basic block level
# I thought up a lot of corner-cases in the rep code. This tries
# to catch some of them
# Performance counters give us 8207 insns
# 11 + 8*1024 + 3 = 8206
.globl _start
_start:
cld # we want these to happen forward
mov $0xfeb1378,%eax # value to store
# test back-to-back rep/stosb's
mov $1024,%ecx
mov $buffer1, %edi # set destination
rep stosb # store 1024 times
rep stosb # should store 0 times
rep stosb # should store 0 times
# test stosb where cx is 0
xor %ecx,%ecx
mov $buffer1, %edi # set destination
rep stosb # should not load at all
# test rep inside of a loop
mov $1024, %ebx
rep_loop:
mov $1024,%ecx
mov $buffer1, %edi # set destination
rep stosb
mov $1024,%ecx
mov $buffer1, %edi # set destination
rep stosb
dec %ebx
jnz rep_loop
#================================
# Exit
#================================
exit:
mov $1,%eax
#ifdef VGO_darwin
pushl $0
#else
xor %ebx,%ebx # we return 0
#endif
int $0x80 # and exit
#.bss
.lcomm buffer1, 16384