X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fpic16%2FNOTES;h=16cfa6b41d3e6e6662dcb9a59085d6e4a7c567db;hb=122a98623b6e7e3811469a36163421079652966a;hp=67cb9eacf8da03a24e7b0dbbca27668ac36a9ea9;hpb=7f56311838d848fe82447f141b7f7ceceb98e886;p=fw%2Fsdcc diff --git a/src/pic16/NOTES b/src/pic16/NOTES index 67cb9eac..16cfa6b4 100644 --- a/src/pic16/NOTES +++ b/src/pic16/NOTES @@ -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 +Raphael Neider Other people to contact: +Vangelis Rokas Scott Dattalo ====================================================================== ====================================================================== +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