diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1995-07-12 19:47:25 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1995-07-12 19:47:25 +0000 |
commit | 637df35f96d8023056369fcf2c9943419f1a1b74 (patch) | |
tree | a12bd461bf892ccaff6c67571432f0535eb03e96 /c/src/exec/score/cpu/m68k/cpu.h | |
parent | added David Glessner's 68302 work. (diff) | |
download | rtems-637df35f96d8023056369fcf2c9943419f1a1b74.tar.bz2 |
Ada95, gnat, go32
Diffstat (limited to 'c/src/exec/score/cpu/m68k/cpu.h')
-rw-r--r-- | c/src/exec/score/cpu/m68k/cpu.h | 39 |
1 files changed, 25 insertions, 14 deletions
diff --git a/c/src/exec/score/cpu/m68k/cpu.h b/c/src/exec/score/cpu/m68k/cpu.h index 0b36533562..566e479f3a 100644 --- a/c/src/exec/score/cpu/m68k/cpu.h +++ b/c/src/exec/score/cpu/m68k/cpu.h @@ -328,20 +328,18 @@ EXTERN void *_CPU_Interrupt_stack_high; { \ extern const unsigned char __log2table[256]; \ \ - (_output) = 0; /* avoids warnings */ \ - asm ( "move.w %1,%0\n"\ - "\tandi.w #0xff00,%0\n"\ - "\tjbne 0f\n"\ - "\tmoveq.l #0,%0\n"\ - "\tmove.b (%2,%1.w),%0\n"\ - "\tjbra 1f\n"\ - "0:\tmoveq.l #8,%0\n"\ - "\tlsr.w #8,%1\n"\ - "\tadd.b (%2,%1.w),%0\n"\ - "1:"\ - : "=&d" ((_output)) \ - : "d" ((_value)), "ao" (__log2table) \ - : "cc" ) ; \ + asm ( " tst.b %1\n" /* check for bits in ls byte */ \ + " beq.s 0f\n" /* branch if no bits set */ \ + " moveq.l #0,%0\n" /* set up for bits 0..7 */ \ + " andi.w #0x00ff,%1\n" /* clear ms byte for add inst */ \ + " bra.s 1f\n" /* go add */ \ + "0: moveq.l #8,%0\n" /* set up for bits 8..15 */ \ + " lsr.w #8,%1\n" /* shift ms byte to ls byte, */ \ + /* filling ms byte with 0s */ \ + "1: add.b (%2,%1.w),%0\n" /* add offset for bit pattern */ \ + : "=&d" ((_output)) \ + : "d" ((_value)), "ao" (__log2table) \ + : "cc" ) ; \ } #endif @@ -385,6 +383,19 @@ void _CPU_Initialize( ); /* + * _CPU_ISR_install_raw_handler + * + * This routine installs a "raw" interrupt handler directly into the + * processor's vector table. + */ + +void _CPU_ISR_install_raw_handler( + unsigned32 vector, + proc_ptr new_handler, + proc_ptr *old_handler +); + +/* * _CPU_ISR_install_vector * * This routine installs an interrupt vector. |