Use sparkly new _naked attribute
authorkvigor <kvigor@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Wed, 30 May 2001 20:38:37 +0000 (20:38 +0000)
committerkvigor <kvigor@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Wed, 30 May 2001 20:38:37 +0000 (20:38 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@862 4a8a32a2-be11-0410-ad9d-d568d2c75423

device/lib/ds390/memcpyx.c
device/lib/ds390/tinibios.c

index 66e7ea7c19cbef747733a5b1f2394225fe04ebee..d8c4df1fbd96b6aa11ed2c1060ca7ce3e6faac00 100644 (file)
@@ -4,7 +4,7 @@ void _xdata * memcpyx (
        void _xdata * dst,
        void _xdata * src,
        int count
-       ) 
+       ) _naked
 {
     /* Shut compiler up about unused parameters. */
     dst; src; count;
@@ -87,6 +87,7 @@ _memcpy_done:
     pop dpl
     pop dph
     pop dpx
+    ret
 _endasm;    
     
 }
index 318ee0276a09fb73d2f38fec5dc34f34e9dfb519..4c4f0ef291d8e146a50f2ff2070ec93a5f386e36 100755 (executable)
@@ -487,16 +487,17 @@ void ClockInit() {
 // This needs to be SUPER fast. What we really want is:
 
 #if 0
-void ClockIrqHandler (void) interrupt 1 {
+void junk_ClockIrqHandler (void) interrupt 10 {
   TL0=timer0ReloadValue&0xff;
   TH0=timer0ReloadValue>>8;
   milliSeconds++;
 }
 #else
 // but look at the code, and the pushes and pops, so:
-#pragma EXCLUDE b,dpl,dph,dpx
-void ClockIrqHandler (void) interrupt 1 {
+void ClockIrqHandler (void) interrupt 1 _naked
+{
   _asm
+    push acc
     mov _TL0,_timer0ReloadValue
     mov _TH0,_timer0ReloadValue+1
     clr a
@@ -507,11 +508,11 @@ void ClockIrqHandler (void) interrupt 1 {
     inc _milliSeconds+2
     cjne a,_milliSeconds+2,_ClockIrqHandlerDone
     inc _milliSeconds+3
-    cjne a,_milliSeconds+3,_ClockIrqHandlerDone
    _ClockIrqHandlerDone:
+    pop acc
+    reti
   _endasm;
 }
-#pragma EXCLUDE NONE
 #endif
 
 // we can't just use milliSeconds