Enabled VPATH feature: changed nearly all Makefiles (149 files).
[fw/sdcc] / src / pic16 / NOTES
index 67cb9eacf8da03a24e7b0dbbca27668ac36a9ea9..16cfa6b41d3e6e6662dcb9a59085d6e4a7c567db 100644 (file)
@@ -4,20 +4,71 @@ $Id$
 Current pic16 port status is: Development
 
 Some things may change without notification between port updates. The latest
-CVS snapshot is guarenteed to compile without problems, but does not
+SVN snapshot is guarenteed to compile without problems, but does not
 guarantee backwards compatibility.
 
 For any questions please ask the current port
 developers.
 
 Current developer:
-Vangelis Rokas <vrokas AT otenet.gr>
+Raphael Neider <rneider AT web.de>
 
 Other people to contact:
+Vangelis Rokas <vrokas AT users.sourceforge.net>
 Scott Dattalo  <scott AT dattalo.com>
 
 ======================================================================
 ======================================================================
+2006-Mar-14 Vangelis Rokas
+1. Added enviroment variable 'PIC16_PACKED_BITFIELDS' which agressively
+packs bitfields in structures
+
+2005-Mar-23 Vangelis Rokas
+1. I have added some optimizations that are controlled via enviroment
+variables to allow checking. Later these will be either enabled globally
+or controlled by command line options. The variables are:
+       a. OPTIMIZE_BITFIELD_POINTER_GET : optimizes bit field pointer reads
+
+       b. NO_REG_OPT : there is no register optimization performed by pCode
+                       optimizer
+
+
+
+2004-Oct-29 Vangelis Rokas
+1. Function parameters are passed now all via stack. This might
+lower performance, but some issues are solved this way. Later
+we can enable passing through WREG,PRODL,PRODH,FSR0L by implementing
+specific pragmas
+
+
+2004-Sep-27 Vangelis Rokas
+1. Function parameters have been extended to cover functions with
+variable arguments. Now function parameters follow the rules below:
+
+  a) void foo(long a, int b, char c)
+     void foo(long a, int b, char c) reentrant
+
+Stack layout: c, b+1, b, a+3, a+2, a+1 and WREG = a
+
+  b) prototype: void foo(long a, int b, ...)
+
+       example: foo(0xaaffeedd, 0xbbcc, 0x4455, 0x7788);
+
+Stack layout: 0x77, 0x88, 0x44, 0x55, 0xbb, 0xcc, 0xaa, 0xff, 0xee, 0xdd
+
+WREG is not used in functions with variable arguments so that the address
+of the first parameter can be taken.
+
+
+
+
+2004-Sep-24 Vangelis Rokas
+1. Began implementation of generic pointers, current specs are:
+       0x0 xxxxxxx -> code pointer
+       0x8 xxxxxxx -> data pointer
+       0x4 xxxxxxx -> eeprom pointer (currently unimplemented)
+
+
 2004-Aug-30 Vangelis Rokas
 1. A few months ago Hans Dorn had the idea to support general pointer
 for accessing all code, eeprom data and data ram memory. These pointers