diff options
Diffstat (limited to 'c/src/exec/score/cpu/m68k/m68k.h')
-rw-r--r-- | c/src/exec/score/cpu/m68k/m68k.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/c/src/exec/score/cpu/m68k/m68k.h b/c/src/exec/score/cpu/m68k/m68k.h index b86db286cb..a2e0df6a25 100644 --- a/c/src/exec/score/cpu/m68k/m68k.h +++ b/c/src/exec/score/cpu/m68k/m68k.h @@ -196,6 +196,17 @@ extern "C" { ); \ } +#define m68k_get_interrupt_level( _level ) \ + do { \ + register unsigned32 _tmpsr = 0; \ + \ + asm volatile( "movw %%sr,%0" \ + : "=d" (_tmpsr) : "0" (_tmpsr) \ + ); \ + \ + _level = (_tmpsr & 0x0700) >> 8; \ + } while (0) + #define m68k_set_interrupt_level( _newlevel ) \ { \ register unsigned32 _tmpsr = 0; \ |