mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-12-09 13:15:18 -05:00
Create fimrware/asm directory for assembly optimized stuff.
This dir is suitable for stuff that doesn't fit the target tree, e.g. because it also builds on hosted or otherwise. It also has a generic subfolder for fallback C implementations so that not all archs need to provide asm files. SOURCES should only contain "foo.c" where foo.c includes the specific <arch>/foo.c files from the subdirs using the preprocessor. This way automatic selection of asm versions or generic C verion is possible. For the start, the thread support files are moved, since ASM threads can be used on hosted platforms as well. Since core_sleep() remains platform specific it's moved to the corresponding system.h headers. Change-Id: Iebff272f3407a6eaafeb7656ceb0ae9eca3f7cb9
This commit is contained in:
parent
eaa83bd647
commit
991ae1e395
24 changed files with 352 additions and 295 deletions
|
|
@ -97,4 +97,28 @@ void dma_disable(void);
|
|||
#define DMA_IRQ(n) (IRQ_DMA_0 + (n))
|
||||
#define GPIO_IRQ(n) (IRQ_GPIO_0 + (n))
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
* Put core in a power-saving state.
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
static inline void core_sleep(void)
|
||||
{
|
||||
#if CONFIG_CPU == JZ4732
|
||||
__cpm_idle_mode();
|
||||
#endif
|
||||
asm volatile(".set mips32r2 \n"
|
||||
"mfc0 $8, $12 \n" /* mfc t0, $12 */
|
||||
"move $9, $8 \n" /* move t1, t0 */
|
||||
"la $10, 0x8000000 \n" /* la t2, 0x8000000 */
|
||||
"or $8, $8, $10 \n" /* Enable reduced power mode */
|
||||
"mtc0 $8, $12 \n" /* mtc t0, $12 */
|
||||
"wait \n"
|
||||
"mtc0 $9, $12 \n" /* mtc t1, $12 */
|
||||
".set mips0 \n"
|
||||
::: "t0", "t1", "t2"
|
||||
);
|
||||
enable_irq();
|
||||
}
|
||||
|
||||
|
||||
#endif /* __SYSTEM_TARGET_H_ */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue