Rockbox mail archiveSubject: Re: Cowon D2 EABI
Re: Cowon D2 EABI
From: Rob Purchase <rob.purchase_at_googlemail.com>
Date: Tue, 15 Jun 2010 22:33:41 +0100
On 15/06/2010 11:17, pouly amaury wrote:
> You convinced me that finally think that I should (or someone else !)
> rewrite it in assembly to avoid any further problem. Any one against
> that ?
This version seems to work correctly:
static inline void delay_loop(void)
asm volatile (" mov %[freq], %[freq], asr#22 \n\t"
"1: subs %[freq], %[freq], #1 \n\t"
" bne 1b"
: : [freq] "r" (cpu_frequency) : "memory");
By "correctly" I mean:
- it doesn't get optimized away using our default compiler flags
- it seems to generate the same code with both GCC versions
- the PMU driver works (with CPU boosted and unboosted)
- the touchscreen driver does not "lose" about 10% of presses
(this happens since r26850...)
I've tested this with the EABI compiler and all seems well. Once I've
committed it we can re-enable EABI for this target and we can all be
happy again :)
Received on 2010-06-15