diff options
author | Andrew Boie <andrew.p.boie@intel.com> | 2016-09-26 13:03:36 -0700 |
---|---|---|
committer | Andrew Boie <andrew.p.boie@intel.com> | 2016-09-28 20:28:27 +0000 |
commit | 26b1651f0cb478a016ccd7233e5dc3b002e4481b (patch) | |
tree | 4838694e3bbe3d243e0dd08f0a36d7991aea4eca /arch | |
parent | 70d8a327405f8c9bd6030c5bf989a5fe49b1d83a (diff) |
intstub.S: fix argument to _sys_power_save_idle_exit on IAMCU
Change-Id: I5aa1abe464ba2b8f9c36be78a95705ffcf993c7d
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/core/intstub.S | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/x86/core/intstub.S b/arch/x86/core/intstub.S index c2821a23b..102651399 100644 --- a/arch/x86/core/intstub.S +++ b/arch/x86/core/intstub.S @@ -450,7 +450,14 @@ handle_idle: #if defined(CONFIG_NANOKERNEL) && defined(CONFIG_TICKLESS_IDLE) call _power_save_idle_exit #else + /* Populate 'ticks' argument to _sys_power_save_idle_exit */ +#ifdef CONFIG_X86_IAMCU + movl __tNANO_idle_OFFSET(%ecx), %eax +#else + /* SYS V calling convention */ push __tNANO_idle_OFFSET(%ecx) +#endif + /* Zero out _nanokernel.idle */ movl $0, __tNANO_idle_OFFSET(%ecx) /* @@ -461,7 +468,10 @@ handle_idle: */ call _sys_power_save_idle_exit +#ifndef CONFIG_X86_IAMCU + /* SYS V: discard 'ticks' argument passed on the stack */ add $0x4, %esp +#endif #endif /* CONFIG_NANOKERNEL && CONFIG_TICKLESS_IDLE */ popl %edx popl %eax |