* src/pic16/device.c (pic16_dump_gsection,
[fw/sdcc] / device / lib / pic16 / libsdcc / gptr / gptrput1.c
index decbadf6d9ed946a676a8acb6ca902fd6a7b16d0..1d57533a8ccb06257c775b9cd967e7061d16a067 100644 (file)
 ** $Id$
 */
 
-/* write address is expected to be in WREG:FSR0H:FSR0L while
- * write value is in TBLPTRL:TBLPTRH:PRODH:PRODL */
+/* write address is expected to be in WREG:PRODL:FSR0L while
+ * write value is in TBLPTRL:TBLPTRH:PRODH:[stack] */
  
 extern POSTINC0;
+extern PREINC1;
 extern INDF0;
 extern FSR0L;
 extern FSR0H;
@@ -54,11 +55,13 @@ void _gptrput1(void) _naked
      * 11 -> unimplemented
      */
     btfss      _WREG, 7
-    goto       _lab_01_
+    bra                _lab_01_
     
     /* data pointer  */
     /* data are already in FSR0 */
-    movff      _PRODL, _POSTINC0
+    movff      _PRODL, _FSR0H
+    
+    movff      _PREINC1, _POSTINC0
     
     return