Fixed overflow issue. Code originally meant to truncate the 64 bit integer did not work as assembler doesn't "cast" variables like C does. get_cycles() was passing the memory address of a 32 bit unsigned int to the x86 call which required 64 bits of storage space. The extra 32 bits corrupted whatever was on the stack next to the variable.

git-svn-id: svn://localhost/ardour2/branches/3.0@3793 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Sampo Savolainen
2008-09-22 20:44:46 +00:00
parent 9aad7b5727
commit 234d56a8c4

View File

@@ -48,10 +48,10 @@ extern cycles_t cacheflush_time;
static inline cycles_t get_cycles (void)
{
uint32_t long ret;
cycles_t ret;
rdtscll(ret);
return ret;
return ret & 0xffffffff;
}
#elif defined(__powerpc__)