enable build on sparc-solaris
[fw/sdcc] / ChangeLog
1 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
2
3         * src/mcs51/peeph.def: updated comments
4
5 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6
7         * device/lib/_gptrget.c,
8         * device/lib/_gptrput.c: slightly shorter
9         * doc/sdccman.lyx: incremented version
10         * src/mcs51/peeph.def: moved peephole comments to the line of first
11           change to better keep line correlation, reanimated 186.e
12         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
13
14 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
15
16         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
17           David Saxton with quotes around file name.
18
19 2005-08-15 Borut Razem <borut.razem AT siol.net>
20
21         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
22           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
23           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
24           make tests run on x86_64 platform
25
26 2005-08-13 Raphael Neider <rneider AT web.de>
27
28         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
29           as it might be executed DURING a build (parallel make is wonderful)
30
31 2005-08-13 Raphael Neider <rneider AT web.de>
32
33         * device/lib/Makefile.in (port-specific-objects-pic16):
34           revert to cp $(PORT)/bin/*.* $(PORTDIR)
35         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
36           dependency
37         * device/lib/pic16/Makefile.rules: build subdirs before creating
38           the library, removed builddir rule, create $(builddir) early in
39           recurse rule, use empty recurse rule for leaf directories
40         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
41           mkdir errors (race condition), removed duplicate suffix "hex"
42           from clean rules
43         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
44         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
45           prevents mkdir -p from aborting on Alpha
46
47 2005-08-12 Raphael Neider <rneider AT web.de>
48
49         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
50           db-statements in order to allow for arrays of pointers in code
51           sections to be placed without interspersed 0-padding, fixes
52           bug #1256215
53         * (emitStatistics): fixed division by zero for pic18f1220
54         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
55           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
56         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
57         * (pic16_pCodeConstString): keep track of already emitted string
58           literals to prevent "duplicate definitions of symbol _str_NR"
59         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
60           debug message
61         * device/lib/Makefile.in: ignore failing PIC16 library builds
62         * device/lib/pic16/Makefile: do not build if gputils are missing
63         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
64
65 2005-08-10 Raphael Neider <rneider AT web.de>
66
67         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
68           my last commit)
69
70 2005-08-10 Raphael Neider <rneider AT web.de>
71
72         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
73           Rokas' patch to add the new fixed point type "__fixed16x16"
74         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
75           functions for __fixed16x16 arithmetics
76         * device/lib/pic16: reimplemented the build system to support
77           a separate build directory, better handling of libio (create
78           the library in a separate subdir for each architecture) and
79           easier configuration (centralized in Makefile.common)
80
81 2005-08-07 Raphael Neider <rneider AT web.de>
82
83         * src/pic16/gen.c (genrshTwo): fixed sign extension
84         * src/pic16/device.c: added pic18f2320, 4220 and 4320
85         * device/include/pic16/pic18f2220.h: changed some bit definitions,
86           added T0CONbits
87         * device/include/pic16/pic18f4220.h: NEW, header for
88           pic18f4220 and pic18f4320
89         * device/include/pic16/pic18fregs.h: added new devices,
90           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
91         * device/include/pic16/signal.h: resolved name clashes
92           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
93           to also allow testing for interrupt enable bits, added
94           comments on how to use the macros
95         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
96         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
97           register definitions for the devices
98         * device/lib/pic16/pics.all: added new devices
99         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
100           allocated memory
101         * device/lib/pic16/libc/stdlib/memfree: do not count
102           the block header as free memory
103         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
104           simplified and added missing end-of-blocklist-marker
105           (reported by Peter Onion, fixes #1252814)
106         * (_mergeHeapBlock): fixed loop condition
107         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
108           len==0, restructured code
109         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
110           up a bit, reduced bitfield accesses, prevent endless loops
111           in case of heap corruption
112         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
113           "unreferenced arguments/must return a value" warnings
114         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
115           replaced BAUDREG with SPBRG
116         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
117           device/lib/pic16/debug/gstack/gstack.c: replaced
118           _naked, _asm, _endasm with __naked, __asm, __endasm
119
120 2005-08-05 Raphael Neider <rneider AT web.de>
121
122         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
123           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
124
125 2005-08-05 Borut Razem <borut.razem AT siol.net>
126
127         * device/lib/Makefile.in: added missing ';'
128         * configure: removed ^M characters
129
130 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
131
132         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
133           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
134           License
135
136 2005-08-04 Borut Razem <borut.razem AT siol.net>
137
138         * configure.in: pic16 libraries build 2nd try - enable running
139           configure in device/lib/pic16
140         * configure: regenerated from configure.in
141         * device/lib/Makefile.in: create $(PORT)/bin directory
142
143 2005-08-03 Raphael Neider <rneider AT web.de>
144
145         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
146           to get/set values via pointers
147         * (genUnpackBits,genPackBits): changed detection of
148           ptr->bitfield vs. sym.bitfield, fixed access via generic
149           pointers, removed dead (wrong) code for multibyte bitfields
150         * (genNearPointerGet, genGenPointerGet): removed useless code,
151           fixed bitfield detection, fixes #1250594
152         * (genNearPointerSet): removed useless code
153         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
154           and introduced macro pic16_emitpcode that conditionally emits
155           the origin of the following pCode (useful for debugging SDCC)
156         * src/pic16/pcode.c: changed (and disabled) some debug outputs
157         * (createDefmap): fixed handling of LFSR for --optimize-df
158
159 2005-08-02 Borut Razem <borut.razem AT siol.net>
160
161         * device/lib/Makefile.in: pic16 libraries build enabled since
162           gputils-0.13.2 are now localy installed at sourceforge's compile farm
163
164 2005-08-02 Raphael Neider <rneider AT web.de>
165
166         * src/pic16/gen.c (genPackBits): removed deprecated warning
167         * (genGenPointerSet): fixed bitfield detection
168
169 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
170
171         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
172
173 2005-07-31 Raphael Neider <rneider AT web.de>
174
175         * device/lib/pic16/libdev/pic18f458.c,
176           device/include/pic16/pic18f458.h: added missing T0CONbits
177
178 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
179
180         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
181
182 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
183
184         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
185
186 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
187
188         * device/include/mcs51/at89c51ed2.h: added.
189
190 2005-07-23 Raphael Neider <rneider AT web.de>
191
192         * src/pic/gen.h: added emitpcode macro for debugging
193         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
194           and replace by macro adding debug information on demand
195         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
196         * (gencjne): tried to fix; replaced with correct (slower) code
197         * (gen{Unp,P}ackBits): fixed single bit access
198         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
199         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
200           previous instruction
201         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
202           register has to be handled with care (forbidding movement
203           of assignments/uses, removing assignments completely, ...)
204         * (pCodeOptime2pCodes): make use of regIsSpecial
205         * added lots of debugging output (commented out)
206         * src/pic/rallloc.c (deassignLRs): prevent operand registers
207           from being reused as result UNLESS it is known to work
208
209 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
210
211         * support/Util/dbuf.h: include <stddef.h> for size_t
212         * .version: changed to version 2.5.2
213
214 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
215
216         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
217
218 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
219
220         * src/hc08/gen.c (genMinus): fixed bug #1241835,
221           (genModOneByte): removed needless psha/pula
222
223 2005-07-22 Raphael Neider <rneider AT web.de>
224
225         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
226           have PIC14 handled like PIC16, fixes broken pic14 linker calls
227         * src/pic/gen.c (resolveIfx): do not "invent" labels
228         * (genSkipc): changed to positive logic
229         * (genSkipCond): removed as no longer needed
230         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
231           backport from PIC16
232         * (genLeftShift): check operands are in different registers
233         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
234           INCF does not update CARRY...
235         * src/pic/main.c: fixed _linkCmd
236         * src/pic/pcode.c (unlinkpCode): added inactive code
237         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
238           alive (do not assign result and operand overlapping registers)
239
240 2005-07-22 Raphael Neider <rneider AT web.de>
241
242         * src/pic/device.c (dump_sfr): replaced register declaration with
243           call to emitSymbolToFile() to avoid duplicate symbols
244         * (assignRelocatableRegisters): do not declare external symbols
245         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
246           right (take size of type, not etype)
247         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
248         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
249         * (packRegsForAccUse): disabled assignment of WREG as
250           the result reg to prevent occurence of just fixed #1235003,
251           fixes #1242954
252         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
253           symbols (avoids duplicate symbols in .asm file)
254         * (pic14emitRegularMap): use emitSymbolToFile()
255         * src/pic/gen.c (aopOp): fixed spillLocation handling
256         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
257         * (genDataPointerSet): removed unneccessary variables/output
258
259 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
260
261         * as/mcs51/lkarea.c: enlarged codemap for banked memory
262         * device/lib/mcs51/crtbank.asm: added # to 0x0F
263
264 2005-07-21 Raphael Neider <rneider AT web.de>
265
266         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
267           architecture cannot handle them efficiently, fixes bug #1235003
268         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
269           check for empty sets before using them (fixes bug #1232190)
270
271 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
272
273         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
274           (lnksect2): generate warnings for memory overlap
275         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
276           constseg to set the name of these segments so you can instruct the linker
277           to place them in banks
278         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
279         * src/SDCCglobl.h: added MODEL_HUGE to enum,
280           added code_seg and const_seg to options
281         * src/SDCCglue.c (emitMaps): use options.const_seg,
282           (createInterruptVect): put interrupt vectors in segment HOME,
283           (glue): put HOME before static segment and put the main glue in HOME,
284           (glue): use options.code_seg
285         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
286         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
287           these segments so you can instruct the linker to place them in banks
288           (linkEdit): use code_loc for HOME segment which should be the first
289           segment in code memory now
290         * src/SDCCmem.c: fixed more stuff like bug 1238386
291         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
292           (changePointer): don't change function pointers to code pointers for
293           banked functions,
294           (compareType): added exceptional check for banked function pointers
295         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
296         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
297           after static in code memory
298         * src/mcs51/gen.c: added aopLiteralLong prototype,
299           (aopForSym): use getSize for functions,
300           (genCall): generate banked calls over one trampoline __sdcc_banked_call
301           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
302           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
303           the segment,
304           (genPcall): use call for literal function pointers and generate banked
305           calls over the one trampoline so there's only one place for the user to
306           modify according to his/hers hardware,
307           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
308           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
309         * src/mcs51/main.c: added keyword banked,
310           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
311         * support/Util/SDCCerr.c,
312         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
313           needed for passing the bank and address to the trampoline
314         * device/lib/mcs51/crtbank.asm: added for bankswitching
315         * device/lib/mcs51/Makefile: added crtbank
316
317 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
318
319         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
320           for fields at offset 0 of a struct or union as reported
321           on 2005-07-07 in the developer mailing list.
322
323 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
324
325         * src/SDCCmem.c: fixed bug 1238386
326
327 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
328
329         * src/mcs51/peeph.def: added labelrefcounting for peepholes
330           (patch #1144962), added peephole 300, enabled 259.x
331         * doc/sdccman.lyx: removed screenshot and provided link instead
332
333 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
334
335         * doc/sdccman.lyx: added section about debugging with ddd
336         * doc/figures/ddd_example.eps: screenshot of debugging session
337
338 2005-07-04 Raphael Neider <rneider AT web.de>
339
340         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
341           like CODE pointers, fixes #1115683
342         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
343           call, fixes bugs #1232211, #1228110,
344           fixed wrong casts to pCodeFlow from pCodeInstructions
345
346 2005-07-04 Raphael Neider <rneider AT web.de>
347
348         * src/pic/gen.c (popGet): changed assert to allow for
349           bit operands
350         * (popGetAddr): changed signature to provide
351           an additional index, patched all call sites
352         * (genCmpEq): handle literal-like operands correctly
353         * (genAddrOf): added sanity checks on __code/__data pointers
354         * (genAssign): added handling of symbols from __code section
355         * (gencjne): do not generate code for comparisons whose result
356           is neither stored nor used, fixes bug #1171114
357         * (AccLsh, AccRsh): operate on operand instead of WREG
358         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
359           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
360           by known count
361         * rewrote complete shift-by-literal logic, commented unused
362           functions out
363         * (genConstPointerGet): get multiple bytes (if result size > 1),
364           fixed handling of non-immediate addresses
365         * (genPointerGet): handle CODE pointers like CONST pointers
366         * (genpic14Code): insert C-SRC lines as Cource-pCodes
367         * ({aop,op}_isLitLike): NEW, single place to decide whether an
368           operand is to be treated as a literal or not
369         * (mov2w,genPcall,genCmpEq),
370           src/pic/genarith.c: use aop_isLitLike() to decide between
371           literal/register contents
372         * (addSign): added missing offset
373         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
374           only emit comment in debug-mode,
375           use {aop,op}_isLitLike throughout the file
376         * src/pic/glue.c: fix initializers for pointers (work in progress)
377         * src/pic/pcode.c (get_op): honor index on _const symbols
378         * ({reset,dump}pCodeStatistics): NEW, estimate code size
379         * (dumppBlock): added pCode size estimation
380         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
381           check for IS_SYMOP before OP_SYMBOL'ing
382         * fixed indentation, compacted switch-statements
383         * (allocReg): find free register and allocate it instead of
384           allocating new registers all the time
385         * (deassignLRs): prevent POINTER_GET's from being assigned the same
386           registers as its operands (necessary only for multibyte GETs)
387
388 2005-07-01 Raphael Neider <rneider AT web.de>
389
390         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
391           debugging .asm-output macros FENTRY + FEXIT
392         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
393           way... I wonder...
394         * (emitpComment): NEW, printf to pCode
395         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
396           offset handling
397         * (popGetAddr): NEW, variant of popGet to access an immediates
398           high(er) bytes instead of the n'th byte of memory they reference,
399           replaced popGet with popGetAddr where neccessary
400         * (genDataPointerGet): reactivated and fixed implementation
401         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
402           accesses
403         * (genDataPointerSet): fixed multibyte assignments
404         * (genpic14Code): fixed --i-code-in-asm handling
405         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
406         * (genPlus): fixed index-out-of-bounds error
407         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
408         * src/pic/ralloc.c: added debugging output macro FENTRY2
409         * (spillThis): fixed indentation, enbraced for-body for clarity
410         * (rematStr): commented out as now unused
411         * (regTypeNum): commented out special spill case (overwrites
412           arbitrary values)
413         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
414
415 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
416
417         * doc/sdccman.lyx: documented sfr16/sfr32,
418           added example for using storage class with function pointers
419         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
420
421 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
422
423         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
424         * device/lib/_itoa.c,
425         * device/lib/_ltoa.c: optimized codesize
426         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
427           but don't know how to suppress the double warning.
428         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
429         * support/Util/SDCCerr.c,
430         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
431
432 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
433
434         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
435           fixed old K&R prototypes
436         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
437         * device/lib/_gptrget.c,
438         * device/lib/_gptrgetc.c,
439         * device/lib/_gptrput.c: changed versions for new memory indicator values,
440           also new versions for small generic pointers and banked generic pointers
441         * src/port.h: added const_name
442         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
443         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
444         * src/SDCCcse.c (findPrevIc): check all associative operators
445         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
446         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
447         * src/SDCCmem.c: updated comments,
448           set far-space to 0 for pdata, results in optimized code
449         * src/SDCCmem.h: added macro CONST_NAME
450         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
451           moving the info into the highest bits, see also gptrget/gptrput
452         * src/src.dsp: added sdcc.ico to project files
453         * src/avr/gen.c (genCast): fixed bug 0x%d
454         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
455         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
456           relation between ptr_type and DCL_TYPE,
457           (genCast): fixed bug 0x%d
458         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
459           (CODE)" for const_name
460         * src/hc08/gen.c (genCast): fixed bug 0x%d
461         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
462           (hc08_port): added "CONST (CODE)" for const_name
463         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
464           (aopForRemat, adjustArithmeticResult): disconnected direct relation
465           between ptr_type and DCL_TYPE,
466           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
467           operand* and took AOP() inside function so sfr-ness can be checked,
468           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
469           new prototype,
470           (genFunction, genEndFunction): optimized stack setup,
471           (genMinus): optimized for literals with ending zeroes (in bytes),
472           (genCast): fixed bug 0x%d
473         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
474           (mcs51_port): added "CONST (CODE)" for const_name
475         * src/mcs51/peeph.def: made rule 226 more generic
476         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
477         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
478         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
479         * src/z80/main.c (z80_port): added NULL for const_name,
480           (gbz80_port): added NULL for const_name
481         * support/regression/tests/bug663539.c,
482         * support/regression/tests/sfr16.c: new tests
483
484 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
485
486         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
487
488 2005-06-24 Raphael Neider <rneider AT web.de>
489
490         * device/lib/pic16/libdev/pic18f[68][567]20.c:
491           corrected typos...
492         * device/include/pic16/signal.h: added USBIF
493           and SIG_USB
494
495 2005-06-24 Raphael Neider <rneider AT web.de>
496
497         * device/lib/pic16/libdev/pic18f2455.c,
498           device/include/pic16/pic18f2455.h: NEW
499         * device/include/pic16/pic18fregs.h,
500           device/lib/pic16/pics.all,
501           src/pic16/device.c: added 18f2455
502         * device/lib/pic16/libdev/pic18f[68][567]20.c,
503           device/include/pic16/{pic18f[68][567].h,usart.h}:
504           replaced MULTIPLE_USARTS define with more relaible
505           compatibility sfrs (for USART access)
506
507 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
508
509         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
510           and the output asm file line is printed on two lines.
511
512 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
513
514         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
515           BGT, BLE, BHI, and BLS instructions
516         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
517           genCmpEq): removed
518         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
519           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
520           fixes bug #1216342
521         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
522
523 2005-06-15 Raphael Neider <rneider AT web.de>
524
525         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
526         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
527         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
528           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
529           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
530
531 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
532
533         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
534           Marcel Telka in bug #1215704
535
536 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
537
538         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
539           located in shared memory bank.
540
541 2005-05-31 Raphael Neider <rneider AT web.de>
542
543         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
544           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
545           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
546
547 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
548
549         * device/lib/_strncpy.c: fixed the fix
550
551 2005-05-26 Raphael Neider <rneider AT web.de>
552
553         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
554           initializers with \0, bug #1208187
555         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
556           intializers with \0, bug #1208187
557
558 2005-05-26 Raphael Neider <rneider AT web.de>
559
560         * src/pic16/glue.c (pic16_printIvalChar): fixed string
561           initializers with \0, bug #1208187
562         * src/pic16/main.c (_process_pragma): added sanity checks
563           for stack position and size, emit warnings when appropriate
564
565 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
566
567         * device/lib/_strncpy.c: fixed not filling with \0
568
569 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
570
571         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
572           createFunction),
573         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
574           compound_statement),
575         * src/SDCCsymt.h,
576         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
577
578 2005-05-24 Raphael Neider <rneider AT web.de>
579
580         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
581
582 2005-05-24 Raphael Neider <rneider AT web.de>
583
584         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
585           TRISE definitions, closes bug #1162453
586
587 2005-05-22 Raphael Neider <rneider AT web.de>
588
589         * src/pic16/main.c (_process_pragma): check for missing
590           arguments to pragmas code and udata
591         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
592           consistency fixes to match other headers (thanks to Jim Paris)
593         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
594
595 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
596
597         * src/SDCCicode.c (isOperandEqual): fixed missing ;
598
599 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
600
601         * support/regression/tests/bug1198642.c: new test
602         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
603         * src/SDCCcse.c (findPrevIc): added comment, please have a look
604         * support/scripts/resource.h,
605         * support/scripts/resource.rc,
606         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
607         * support/scripts/sdcc.ico: added 32x32 icon
608
609 2005-05-18 Raphael Neider <rneider AT web.de>
610
611         * device/lib/pic16/libdev/pic18f*.c,
612         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
613           keywords to "__sfr" and "__at (X)"
614         * device/include/pic16/pic18fregs.h: added pic18f4520
615         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
616           #1203088 (MPLAB compatibility)
617
618 2005-05-17 Raphael Neider <rneider AT web.de>
619
620         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
621         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
622         * device/lib/pic16/pics.all: added new devices
623         * src/pic16/device.c: added support for pic18f4520
624
625 2005-05-16 Raphael Neider <rneider AT web.de>
626         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
627         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
628         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
629           convenience function for bit access
630
631 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
632
633         * device/lib/printf_large.c: fixed bug 1193299
634         * support/regression/tests/bug1057979.c: added test %3.3s
635
636 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
637
638         * device/include/mcs51/8051.h,
639         * device/include/mcs51/8052.h: made parseable with lint
640         * device/include/mcs51/lint.h: added include file for (sp)lint
641         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
642         * doc/cdbfileformat.lyx,
643         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
644
645 2005-05-14 Raphael Neider <rneider AT web.de>
646
647         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
648         * device/lib/pic16/libc/stdlib/itoa.c (new)
649         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
650         * device/lib/pic16/libio/Makefile: exclude subdir according to
651           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
652         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
653         * src/pic16/gen.c (genFunction): prevent annoying warning
654         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
655           nameclashes on BeOS
656         * support/cpp2/cppmain.c (cpp_output_string): new
657         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
658           fixes bug 1116802
659
660 2005-05-13 Borut Razem <borut.razem AT siol.net>
661
662         * src/SDCCmain.c (linkEdit): fixed bug 1195202
663
664 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
665
666         * .version: changed to version 2.5.1; back to bleeding edge development
667
668 2005-05-11 Borut Razem <borut.razem AT siol.net>
669
670         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
671           generate PDF version 1.3 documents
672
673 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
674
675         * .version: changed to version 2.5.0
676
677 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
678
679         * doc/sdccman.lyx: updated weblinks, index and smaller updates
680
681 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
682
683         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
684         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
685         well as many smaller updates.
686         * .version: changed to version 2.5.0-pre1
687
688 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
689
690         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
691
692 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
693
694         * support/regression/tests/bug1185672.c: added
695         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
696           bug 1185672
697         * src/mcs51/gen.c (genCall): added comments, made it look safer
698         * src/mcs51/gen.c (genEndFunction): simplified
699
700 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
701
702         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
703
704 2005-04-14 Borut Razem <borut.razem AT siol.net>
705
706         * fixed bug 1045046 - SIGSEGV with really simple code?:
707           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
708           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
709
710 2005-04-14 Borut Razem <borut.razem AT siol.net>
711
712         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
713           src/pic16/device.h: temporarily disabled experimental #inline pragma
714           for 2.5.0 release
715
716 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
717
718         * device/include/z80/stdio.h,
719         * device/include/z80/string.h: removed these highly incomplete files so
720           SDCC can use the default ones in device/include/
721
722 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
723
724         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
725         gcc warning.
726         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
727         fix sdcpp warnings.
728
729 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
730
731         * device/include/malloc.h: removed redundant __reentrant prototypes
732         * device/lib/_mullong.c: added working xstack variant in asm (C version
733           doesn't pass regression tests)
734         * device/lib/bpx.c: used __data and made bpx char for mcs51
735         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
736           (createFunction): fixed bug with xstackPtr
737         * src/SDCCcse.c: corrected comments
738         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
739           (killDeadCode, eBBlockFromiCode): removed unused code
740         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
741           corrected comments
742         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
743           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
744           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
745           (genModOneByte): fixed warning in MSVC
746         * src/mcs51/main.c (): added comments
747         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
748
749 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
750
751         * src/SDCCmain.c (linkEdit): oops, changed one line too many
752
753 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
754
755         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
756
757 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
758
759         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
760         characters arrays of larger size than the declared one.
761
762 2005-04-10 Borut Razem <borut.razem AT siol.net>
763
764         * src/pic/gen.c (genInline),
765           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
766           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
767           (findNextInstruction), (findPrevInstruction),
768           (findInstructionUsingLabel),
769           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
770         * src/pic/pcode.c (findLabel): added missing '\n'
771         * src/src.dsp: added SDCCdwarf2.c to the project
772
773 2005-04-09 Borut Razem <borut.razem AT siol.net>
774
775         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
776
777 2005-04-08 Raphael Neider <rneider AT web.de>
778
779         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
780           into the chain after a given one) and mergeDefmapSymbols (combine
781           defmap entries for each symbol per pcode)
782         * (createDefmap): have defmap entries merged in the end
783         * (defmapReplaceSymRef): split defmap entries covering two accesses to
784           a symbol before replacing one access type's symbol, merge symbols in
785           the end (replacement symbol might already have an entry)
786         * (assignValnums): keep reference to written WREG intact
787
788 2005-04-08 Raphael Neider <rneider AT web.de>
789
790         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
791           Alpha)
792
793 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
794
795         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
796         bytes
797
798 2005-04-07 Raphael Neider <rneider AT web.de>
799
800         * device/include/pic16/usart.h: added compatibility defines for
801           devices with more than one USART
802         * device/include/pic16/pic18f[68][567]20.h: activated above defines
803
804 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
805
806         * device/lib/Makefile.in: updated for port specific include
807
808 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
809
810         * support/regression/ports/mcs51/spec.mk: added mcs51 include
811
812 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
813
814         * device/include/8051.h,
815         * device/include/8052.h,
816         * device/include/at89S8252.h,
817         * device/include/at89c55.h,
818         * device/include/at89x051.h,
819         * device/include/at89x51.h,
820         * device/include/at89x52.h,
821         * device/include/mcs51reg.h,
822         * device/include/reg51.h,
823         * device/include/reg764.h,
824         * device/include/regc515c.h,
825         * device/include/sab80515.h: (re)moved these 12 files
826         * device/include/mcs51/8051.h,
827         * device/include/mcs51/8052.h,
828         * device/include/mcs51/at89S8252.h,
829         * device/include/mcs51/at89c55.h,
830         * device/include/mcs51/at89x051.h,
831         * device/include/mcs51/at89x51.h,
832         * device/include/mcs51/at89x52.h,
833         * device/include/mcs51/mcs51reg.h,
834         * device/include/mcs51/reg51.h,
835         * device/include/mcs51/reg764.h,
836         * device/include/mcs51/regc515c.h,
837         * device/include/mcs51/sab80515.h: and added them here
838
839 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
840
841         * device/include/stdarg.h: changed SDCC specific keywords to double
842           underlined form.
843         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
844           mcs51 and ds390.
845         * device/include/hc08/mc68hc908gp32.h,
846         * device/include/hc08/mc68hc908jb8.h,
847         * device/include/hc08/mc68hc908jkjl.h,
848         * device/include/hc08/mc68hc908qy.h: fixed comments
849         * device/include/mcs51/README: updated
850         * device/include/mcs51/c8051f120.h: added PINRSF
851         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
852         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
853           amidst code. Also inline is not supported.
854
855 2005-04-06 Raphael Neider <rneider AT web.de>
856
857         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
858         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
859           callers stack/frame pointers
860
861 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
862
863         * device/include/pic16/usart.h: added, missing in previous commit,
864         * device/include/pic16/adc.h: fixed typo,
865         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
866         commit,
867         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
868         <p18fxxx.inc>
869         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
870         uninitialized because a bug appears with gplink
871         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
872         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
873         complains for unrecognised option
874
875 2005-04-05 Raphael Neider <rneider AT web.de>
876
877         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
878           structs as well (using memcpy)
879         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
880           on ISRs (GOTO has no label)
881         * src/pic16/device.h: added OF_OPTIMIZE_DF
882         * src/pic16/main.c: added compiler switch --optimize-df to enable the
883           new data flow analysis/optimization
884         * src/pic16/pcode.c: added (prototypes for and implementation of)
885           dataflow analysis functions, fixed pCodeInstructions' inCond and
886           outCond values, made RCALL a branch instruction
887         * (pic16_unlinkpCode): keep C line if possible
888         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
889           C line moved if possible
890         * (pic16_getRegFrompCodeOp): NEW, improved version of...
891         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
892           to use new pic16_getRegFrompCodeOp (works for more SFRs)
893         * (pic16_BuildFlow): fixed skip instructions with label (did not start
894           new flow)
895         * (pic16_getJumptabpCode): NEW, needed in...
896         * (LinkFlow): fixed handling of jumptables, calls and conditional
897           branches
898         * (pic16_InsertCommentAfter): NEW
899         * (pic16_pCodeReplace): made verbose and flow preserving
900         * (AnalyzeFlow): added call to data flow analysis
901         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
902         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
903         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
904
905 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
906
907         * src/SDCCast.c (decorateType): fixed bug #1105626
908
909 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
910
911         * device/include/asm/pic16/features.h,
912         * pic18f*.h headers,
913         * device/include/pic16/adc.h,
914         * device/include/pic16/delay.h,
915         * device/include/pic16/i2c.h,
916         * device/include/pic16/malloc.h,
917         * device/include/pic16/stdio.h,
918         * device/include/pic16/stdlib.h,
919         * device/include/pic16/string.h,
920         * device/lib/pic16/libc/stdio/printf_tiny.c,
921         * device/lib/pic16/libc/stdio/printf_small.c,
922         * device/lib/pic16/libc/stdio/strmgpsim.c,
923         * device/lib/pic16/libc/stdio/strmmssp.c,
924         * device/lib/pic16/libc/stdio/strmusart.c,
925         * device/lib/pic16/libc/stdio/vfprintf.c,
926         * device/lib/pic16/libc/stdlib/ltoa.c,
927         * device/lib/pic16/libc/stdlib/putchar.c,
928         * device/lib/pic16/libc/stdlib/x_ftoa.c,
929         * device/lib/pic16/libc/stdlib/memchrpgm.c,
930         * device/lib/pic16/libc/stdlib/memchrram.c,
931         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
932         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
933         * device/lib/pic16/libio/adc/adcbusy.c,
934         * device/lib/pic16/libio/adc/adcread.c,
935         * device/lib/pic16/libio/adc/adcsetch.c,
936         * device/lib/pic16/libio/usart/ubaud.c,
937         * device/lib/pic16/libio/usart/ubusy.c,
938         * device/lib/pic16/libio/usart/udrdy.c,
939         * device/lib/pic16/libio/usart/uopen.c,
940         * device/lib/pic16/libio/usart/uputc.c,
941         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
942         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
943         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
944         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
945         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
946         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
947         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
948         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
949         specific keywords to double underlined form,
950         * device/lib/pic16/libc/Makefile.rules,
951         * device/lib/pic16/libsdcc/Makefile.rules,
952         * device/lib/pic16/libm/Makefile,
953         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
954         to compile with C standard set in Makefile.common
955         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
956         rand.c and crc.c in compilation process,
957         * device/lib/pic16/libsdcc/int/divuint.c,
958         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
959         `c' from signed to unsigned,
960         * device/lib/pic16/startup/crt0.c,
961         * device/lib/pic16/startup/crt0i.c,
962         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
963         keywords to double underlined form, bug fixes in _do_cinit function
964         which prevented the correct initialization of the .idata segment,
965         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
966         core to enter a infinite loop
967         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
968
969 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
970
971         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
972
973 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
974
975         * device/include/Makefile.in: add support for hc08 subdirectory
976         * device/include/hc08/: new subdirectory
977         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
978         Lucas Loizaga, thanks!
979         * device/include/hc08/mc68hc908qy.h,
980         * device/include/hc08/mc68hc908gp32.h,
981         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
982         their own directory. Changed internal macro names to use the compiler
983         reserved namespace. Changed SDCC specific keywords to double
984         underlined form.
985         * device/include/math.h,
986         * device/include/malloc.h,
987         * device/include/stdarg.h,
988         * device/include/stdbool.h
989         * device/include/string.h,
990         * device/include/tinibios.h,
991         * device/include/ds400rom.h,
992         * device/include/8051.h,
993         * device/include/8052.h,
994         * device/include/80c51xa.h,
995         * device/include/at89c55.h,
996         * device/include/at89S8252.h,
997         * device/include/at89x51.h,
998         * device/include/at89x52.h,
999         * device/include/ds80c390.h,
1000         * device/include/reg764.h,
1001         * device/include/regc515c.h,
1002         * device/include/sab80515.h,
1003         * device/include/mcs51/c8051f000.h,
1004         * device/include/mcs51/c8051f018.h,
1005         * device/include/mcs51/c8051f020.h,
1006         * device/include/mcs51/c8051f040.h,
1007         * device/include/mcs51/c8051f060.h,
1008         * device/include/mcs51/c8051f120.h,
1009         * device/include/mcs51/c8051f300.h,
1010         * device/include/mcs51/c8051f310.h,
1011         * device/include/mcs51/c8051f320.h,
1012         * device/include/mcs51/c8051f330.h,
1013         * device/include/mcs51/c8051f350.h,
1014         * device/include/z180.h: Changed SDCC specific keywords to double
1015         underlined form.
1016
1017 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
1018
1019         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
1020         18F4455,
1021         * (pic16_assignConfigWordValue): disable testing of configuration
1022         register value with config mask,
1023         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
1024         function with port->fun_prefix,
1025         * (genFunction): when generating a naked interrupt function never
1026         create an absolute segment placed in interrupt vector address, place
1027         the actual interrupt function at IVA instead, when an interrupt
1028         function is generated with unspecified interrupt then do not create
1029         the absolute section,
1030         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
1031         code for generating a call to generic pointer get/put function with
1032         a call to function pic16_callGenericPointer(),
1033         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
1034         the call to the generic pointer get/put functions with prefixing the
1035         function name with port->fun_prefix,
1036         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
1037         * src/pic16/main.c (_process_pragma): prefix function with
1038         port->fun_prefix,
1039         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
1040         calling assembler, old 18Fxxxx macro is deprecated,
1041         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
1042         PC_ASMDIR in while condition,
1043         * (findInstruction): add PC_ASMDIR in while condition,
1044         * (buildCallTree): prefix main with port->fun_prefix,
1045         * (pic16_pCode2str): fixed bug that didn't emit the memory access
1046         identifier for variable with banked access in instructions BTFSS,
1047         BTFSC, BCF, BSF, BTG
1048         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
1049         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
1050         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
1051         perform optimization when enviroment variable NO_REG_OPT is set,
1052         * (insideLRBlock): NEW, return 1 if register is inside an
1053         INF_LOCALREGS block,
1054         * (RemoveRegFromLRBlock): remove a register that is completely
1055         eliminated by register optimization, but it is still left in local
1056         register store/restore in/from stack block,
1057         * (Remove2pcodes): after removing register, check to see if it
1058         should be removed from local register store/restore in/from stack
1059         block,
1060         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
1061         DUMMY_READ_VOLATILE,
1062
1063         * device/include/pic16/adc.h: minor prototype modifications and
1064         update,
1065         * device/include/pic16/malloc.h: added GPL notice various
1066         modifications,
1067         * device/include/pic16/stdint.h: NEW, standard header for ints
1068         * device/include/pic16/delay.h: NEW, header for delay functions,
1069         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
1070         delay1mtcy,
1071         * device/include/pic16/signal.h: NEW, header providing helper macros
1072         for implementing signal handlers,
1073         * device/include/pic16/stdio.h: added prototypes for functions,
1074         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
1075         prototypes for stdin and stdout, added macro PUTCHAR to
1076         automatically implement putchar function prototype,
1077         * device/include/pic16/usart.h: modified and updated USART library,
1078         * device/lib/pic16/libio/adc/,
1079         * device/lib/pic16/libio/i2c: some modifications to improve library
1080         performance,
1081         * device/lib/pic16/libc/stdio/: modifications for the new printf*
1082         family of functions,
1083         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
1084         family of functions and other sources,
1085         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
1086         of the PIC18Fxx[28] devices,
1087         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
1088         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
1089         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
1090         _do_cinit function, because the previous failed when local variables
1091         where not placed in the same memory bank,
1092         * device/lib/pic16/libsdcc/char/: various modifications to improve
1093         library performance,
1094         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
1095         information on the new functions of the c library and more...
1096
1097 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1098
1099         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
1100
1101 2005-03-26 Raphael Neider <rneider AT web.de>
1102
1103         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
1104           if condition == CARRY)
1105         * (genCmp): adapted to new genSkipc semantics
1106         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
1107           on rIfx (genCmp was broken)
1108
1109 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1110
1111         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
1112         * src/z80/main.c (_keywords[]),
1113         * src/SDCCglobal.h (struct options),
1114         * src/SDCC.y,
1115         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
1116         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
1117         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
1118         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
1119         always available in leading double underscore form. The C99 support is
1120         mostly missing, but it's a start.
1121         * support/regression/tests/bug-227710.c: fixed nonconforming use of
1122         reserved identifier "__data".
1123
1124 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
1125
1126         * src/mcs51/peeph.def: fixed bug 1170013
1127
1128 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
1129
1130         * device/include/mcs51reg.h: fixed bug 842007
1131
1132 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1133
1134         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
1135         last time.
1136
1137 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1138
1139         * src/port.h (struct PORT),
1140         * src/avr/ralloc.c (avr_assignRegisters),
1141         * src/avr/main.c,
1142         * src/ds390/ralloc.c (ds390_assignRegisters),
1143         * src/ds390/main.c,
1144         * src/hc08/ralloc.c (hc08_assignRegisters),
1145         * src/hc08/main.c,
1146         * src/mcs51/ralloc.c (mcs51_assignRegisters),
1147         * src/mcs51/main.c,
1148         * src/pic/ralloc.c (pic14_assignRegisters),
1149         * src/pic/main.c,
1150         * src/pic16/ralloc.c (pic16_assignRegisters),
1151         * src/pic16/main.c,
1152         * src/xa51/ralloc.c (xa51_assignRegisters),
1153         * src/xa51/main.c,
1154         * src/z80/ralloc.c (z80_assignRegisters),
1155         * src/z80/ralloc.h,
1156         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
1157         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
1158         * src/SDCCcse.h,
1159         * src/SDCCdflow.c (computeDataFlow),
1160         * src/SDCCdflow.h,
1161         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
1162         * src/SDCCloop.h,
1163         * src/SDCCcflow.c (*),
1164         * src/SDCCcflow.h,
1165         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
1166         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
1167         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
1168         immedDom() returning wrong block; probably fixes bug #1160833)
1169
1170 2005-03-20 Borut Razem <borut.razem AT siol.net>
1171
1172         * support/scripts/inc2h.pl: WIN32 port
1173
1174 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
1175
1176         * device/lib/makefile.in: added abs.c and labs.c
1177
1178 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
1179
1180         * device/include/stdint.h: added
1181         * device/lib/abs.c: added
1182         * device/lib/labs.c: added
1183         * device/include/stdlib.h: added abs() and labs() prototypes
1184         * device/lib/libsdcc.lib: added abs and labs
1185         * device/include/float.h,
1186         * device/lib/_fsmul.c,
1187         * device/lib/printf_fast.c,
1188         * device/lib/printf_tiny.c: updated comments
1189
1190 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1191
1192         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
1193         bug #1164313
1194
1195 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1196
1197         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
1198         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
1199
1200 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
1201
1202         * device/lib/printf_large.c: removed inline assembly for portability and
1203           readability. Use printf_fast if speed or size are more important.
1204         * src/pic16/gen.c: removed conditions around use of DEBUGpc
1205         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
1206
1207 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
1208
1209         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
1210         prevent compiler warning
1211
1212 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
1213
1214         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
1215         moved to level 0 and declared as static. Also they are explicit
1216         placed in access bank. This was necessery because some times they
1217         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
1218         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
1219         optimizations. Currently only compare to unsigned char is implemented,
1220         * src/pic16/gen.c: added fReturnIdx array,
1221         * (struct resolvedIfx) is moved to gen.h and made public,
1222         * (struct _G): added sregsAlloc and sregsAllocSet fields,
1223         * (aopForSym): added an optimization to directly store in stack of
1224         the operand of a SEND iCode,
1225         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
1226         but as registers instead (AOP_REG) using the fReturnIdx array,
1227         * (pic16_freeAsmop): remove the freed register from the
1228         _G.sregsAlloc field,
1229         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
1230         a compare of 'WREG',
1231         * (pic16_popGetTempRegCond): changed function prototype, now
1232         function takes also a bitVector argument v which holds the current
1233         set of registers that are allocated for stack access by aopForSym,
1234         registers allocated in aopForSym for accessing stack symbols are not
1235         any more part of the functions usedRegs field,
1236         * (genCall): some times aopOp is called for a stack variable to be
1237         send, aopForSym might perform the push, if this is true make sure
1238         that genCall doesn't push the variable twice by testing _G.resDirect,
1239         * (genFunction): changed testing for unspecified interrupt number
1240         from 256 to INTNO_UNSPEC,
1241         * modified selection scheme of frame pointer generation. Previously
1242         if function did use local registers a frame pointer was generated,
1243         now a frame pointer is generated only if function has arguments
1244         (that need PLUSW2 register access), or has stack arguments, or the
1245         compiler is not instructed to omit the frame pointer,
1246         * (genEndFunction): before restoring local registers that were saved
1247         in the function preamble, also restore the registers that *might*
1248         have been allocated for stack access,
1249         * (genRet): removed some old comments,
1250         * (genCmp, the active (RN's) version): added a call to the
1251         pic16_genCmp_special function to perform the compare with a more
1252         robust and optimized way,
1253         * (genInline): a feature has been added in inline code generation,
1254         which allows a wildcard variable substitution when writing inline
1255         assembly. Code is incomplete and experimental therefore undocumented,
1256         * (genCast): changed order of aopOp for result and right to allow
1257         aopForSym to directly load the result if possible,
1258         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
1259         perform an optimized compare on some selected special occasions,
1260         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
1261         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
1262         generate an IVT any more,
1263         * src/pic16/main.c (pic16_optionsTable): added command line option
1264         --optimize-cmp,
1265         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
1266         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
1267         macros,
1268         * src/pic16/NOTES: Raphael Neider added in list of active developers
1269         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
1270         jumptable_end to prevent bug #,
1271         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
1272         inCond and outCond fields,
1273         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
1274         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
1275         turn off register spilling,
1276         * (packRegsForOneUse): synced with other ports' versions although it
1277         is not used currently,
1278         * (pic16_packRegisters): added an optimization while reading
1279         structure bitfields, some registers may be saved (malloc code is
1280         decreased by 80 bytes)
1281
1282 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
1283
1284         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
1285         left is a bitfield, if yes, then don't optimize assignment. Perhaps
1286         this can be optimized more?
1287
1288 2005-03-10 Raphael Neider <rneider AT web.de>
1289
1290         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
1291           genNearPointerGet): (hopefully) fixed access to bitfields via
1292           pointers (p->bitN = x; and x = p->bitN; failed)
1293
1294 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
1295
1296         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
1297
1298 2005-03-09 Raphael Neider <rneider AT web.de>
1299
1300         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
1301
1302 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
1303
1304         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
1305         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
1306           (regTypeNum): set REG_BIT type if necessary
1307         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
1308         * support/regression/tests/critical.c: check bug 1144613
1309
1310 2005-03-02 Raphael Neider <rneider AT web.de>
1311
1312         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
1313
1314 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1315
1316         * src/avr/ralloc.c (serialRegAssign),
1317         * src/ds390/ralloc.c (serialRegAssign),
1318         * src/hc08/ralloc.c (serialRegAssign),
1319         * src/mcs51/ralloc.c (serialRegAssign),
1320         * src/pic/ralloc.c (serialRegAssign),
1321         * src/pic16/ralloc.c (serialRegAssign),
1322         * src/xa51/ralloc.c (serialRegAssign),
1323         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
1324
1325 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
1326
1327         * src/SDCCast.c (decorateType): fixed bug 1124787
1328
1329 2005-02-20 Hubert Sack <sack AT digiplan.de>
1330         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1331
1332         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
1333         patch #1121755
1334
1335 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1336
1337         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
1338         to keep the correct label reference count when adding/removing references
1339         to labels. A peephole file using this is appended to patch #1144962.
1340
1341 2005-02-14 Raphael Neider <rneider AT web.de>
1342
1343         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
1344         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
1345         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
1346           retrievals of result operand's value on assignment
1347
1348 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
1349
1350         * device/include/pic16/string.h: modified prototype for memccpy()
1351         to memccpy(void *, void *, char, size_t)
1352         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
1353         check whether to omit frame pointer or not,
1354         * (genInline): convert all occurences of "\n" to LF in inline
1355         assembler blocks, this helps formatting the inline text,
1356         * (pic16_loadFSR0): modified prototype,
1357         * (genNearPointerGet, genNearPointerSet): reorganization of code,
1358         removed some 8051 legacy code,
1359         * (genPackBits): enabled handling bitfields exceeding one byte in size,
1360         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
1361         before allocating temporary registers in functions,
1362
1363 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
1364
1365         * support/regression/tests/bitvars.c: corrected the "fix"
1366
1367 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
1368
1369         * support/regression/tests/bitvars.c,
1370         * support/regression/tests/bitwise.c,
1371         * support/regression/tests/rotate.c: "fixed" problems on Alpha
1372
1373 2005-02-10 Raphael Neider <rneider AT web.de>
1374
1375         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
1376           different size for Alpha
1377         * src/pic16/gen.c (genCmpEq) : improved compare with 0
1378
1379 2005-02-09 Raphael Neider <rneider AT web.de>
1380
1381         * src/SDCC.lex(doPragma) : save and restore warning options as well
1382           (also added new stack plus clone- and copyAndFreeSDCCERRG())
1383         * have #pragma less_pedantic set the errorlevel to WARNING
1384           (fixes #1117001)
1385         * (cloneOptimize) : fixed wrong malloc's size
1386         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
1387           facilitate correct handling of #pragma (save|restore)
1388
1389 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
1390
1391         * src/mcs51/gen.c: removed non-standard C nameless struct/union
1392
1393 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
1394
1395         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
1396
1397 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
1398
1399         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
1400
1401 2005-02-02 Raphael Neider <rneider AT web.de>
1402
1403         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
1404         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
1405         * (pic16_storeForReturn): fixed to allow returning function pointers
1406         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
1407         * device/include/pic16/{stddef.h,stdbool.h}: added
1408
1409 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
1410
1411         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
1412
1413 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
1414
1415         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
1416         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
1417          appeared to be required
1418
1419 2005-01-31 Borut Razem <borut.razem AT siol.net>
1420
1421         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
1422           include/mcs51 and include/z80 directories to the package
1423
1424 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1425
1426         * src/hc08/gen.c (genFunction): fixed bug #1112752
1427
1428 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1429
1430         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
1431
1432 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1433
1434         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
1435
1436 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
1437
1438         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
1439
1440 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
1441
1442         * device/include/c8051fxxx.h: removed these 6 files
1443         * device/include/mcs51/c8051fxxx.h: added these 11 new files
1444
1445 2005-01-26 Raphael Neider <rneider AT web.de>
1446
1447         * src/pic16/gen.c (genAssign): fixed assignment from longs
1448           in codespace (were cut to three bytes)
1449         * (genDummyRead): implemented (except for CODESPACE...),
1450           fixed bug #1108575
1451         * src/pic16/glue.c (emitStatistics): beautified
1452         * device/lib/pic16/libm/Makefile: added include path
1453
1454 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1455
1456         * src/z80/gen.c (aopPut): fixed bug #1103902
1457
1458 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1459
1460         * device/lib/expf.c: fixed bug #1095792
1461
1462 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
1463
1464         * device/lib/pic16/libm: added Math library sources
1465
1466 2005-01-24 Raphael Neider <rneider AT web.de>
1467
1468         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
1469           to enable upcast to pCodeOpReg2 (there is no type tag to
1470           differenciate the two and pic16_popGet2p cast into PCOR2)
1471         * src/pic16/main.c (_process_pragma): fixed another malloc bug
1472           (sizeof(sectNames) changed to sizeof(sectName))
1473           Both patches fix segfaults under MinGW.
1474
1475 2005-01-23 Raphael Neider <rneider AT web.de>
1476
1477         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
1478           Safe_[mc]?alloc()'ed variables
1479         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
1480           of (byte sized) temporaries (assign them to WREG for now)
1481         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
1482           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
1483           this might fix SIGSEGVs on MinGW...
1484         * src/SDCCopt.c (killDeadCode): restored original behaviour
1485           (volatile operands might get thrown away though)
1486
1487 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
1488
1489         * src/pic16/gen.c: fixed bug #1106975,
1490         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
1491         pointer update, INTCON is saved, global interrupts are disabled and
1492         restored after updateing TOS.
1493         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
1494         * added function attribute 'shadowregs' to take advantage of shadow
1495         registers,
1496         * added function attribute 'wparam' as an alternative to the wparam
1497         pragma,
1498         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
1499         user declares a non-ISR function as 'shadowregs',
1500         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
1501
1502 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
1503
1504         * .version: bumped version number to 2.4.8
1505         * device/lib/pic16/pics.all: list of PIC18F devices supported by
1506         pic16 port,
1507         * device/lib/pic16/libio/i2c/: I2C module support library,
1508         * device/include/pic16/i2c.h: I2C support library header,
1509         * device/lib/pic16/libc/stdio/: standard IO support sources,
1510         * (printf_small.c): printf_small() source, supports float print,
1511         * (printf_tiny.c): printf_tiny() source, does not support floats,
1512         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
1513         enable global optimizations for entire library source, other
1514         Makefiles in the source tree are also modified to reflect this,
1515         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
1516         function,
1517         * doc/sdccman.lyx: updated to reflect new changes,
1518         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
1519         sym->onStack if-case,
1520         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
1521         sbit, idata, _idata, xdata, _xdata,
1522         * added pragma library, to link an external library, (see doc),
1523         * removed command line options, --pomit-config-words, --pomit-ivt,
1524         --pleave-reset-vector,
1525         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
1526         when calling assembler to reflect memory model used, also define
1527         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
1528         reflect stack model used,
1529         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
1530         on stack return NULL,
1531
1532 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
1533
1534         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
1535           of the operands is volatile. Fixes #1020220
1536
1537 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
1538
1539         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
1540         * (OptimizeRegUsage): make sure that there is really no other flow where
1541           the first pCode is used
1542
1543 2005-01-22 Raphael Neider <rneider AT web.de>
1544
1545         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
1546           to fix #1106967 (pCode->seq are not set up correctly)
1547
1548 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1549
1550         * src/SDCCglue.c (glue): make sure code area is declared before the
1551         static initialization area.
1552
1553 2005-01-21 Raphael Neider <rneider AT web.de>
1554
1555         * device/lib/Makefile.in: fixed test for pic16 install dir
1556         * device/lib/pic16/*/Makefile*: modified compile flags to enable
1557           optimizations
1558         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
1559           added --optimize-goto compiler switch and pragma wparam documentation
1560         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
1561         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
1562           and PRODH closing bug #1071770 (peephole optimizer)
1563
1564 2005-01-19 Raphael Neider <rneider AT web.de>
1565
1566         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
1567           cmdLine buffers (used when calling sdcpp...) are large enough
1568           (MAX_PATH=256 truncates arguments leading to system halts when
1569           used in MinGW...)
1570         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
1571         * (genUminus): rewritten to for efficiency
1572         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
1573           used uninitialized in some cases)
1574         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
1575           copy the third byte from the int -- now assumes 0x80 (data memory)
1576         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
1577           operands (genAddLit expects the iCode's operands to swapped as
1578           well), fixed leftover bytes (crashed for short left operands)
1579         * (pic16_genMinusDec): performance improvements, removed false
1580           PIC14 emitSKPNCs
1581         * (pic16_genMinus): fixed to cope with differently sized operands
1582         * src/pic16/glue.c (pic16_glue): added new banksel optimization
1583           for --obanksel > 1
1584         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
1585         * src/pic16/graph.[ch]: implementation of directed graphs, used by
1586           new banksel optimization
1587         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
1588           analysis for temporary registers (segfaults...)
1589         * src/pic16/peeph.def: added rule
1590
1591 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
1592
1593         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
1594         which converts a float number to its ASCII representation
1595         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
1596         functions to convert the fractional and integer part of a float to ASCII,
1597         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
1598         realloc.c): added _MALLOC_SPEC to explicit place variables in data
1599         ram
1600         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
1601         _STATMEM macros,
1602         * device/include/pic16/adc.h: added GPL info,
1603         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
1604         a pCodeOp as tested operand,
1605         * (genNearPointerGet): optimized bit testing, does not use
1606         intermediate register for bit value, test directly instead with
1607         BTFSS, BTFSC, works only for single bits,
1608         * (genpic16Code): dump the name of the iCode in the asm,
1609         * src/pic16/ralloc.c (decodeOp): removed static declaration and
1610         renamed to pic16_decodeOp,
1611         * (serialRegAssign): do not allocate a temporary register for iCode
1612         sequences that test a single bit for 1/0
1613
1614 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
1615
1616         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
1617         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
1618         access stack and frame pointers. They are initially assigned to
1619         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
1620         accessing SFRs. Updated all occurences of modification of stack or
1621         frame pointer in gen.c and pcode.c,
1622         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
1623         assigning of a literal value to pointers,
1624         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
1625         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
1626         selected
1627
1628 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
1629
1630         * doc/sdccman.lyx: update documentation about stack pragma, added
1631         some info for stack memory models
1632
1633 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1634
1635         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
1636
1637 2005-01-08 Raphael Neider <rneider AT web.de>
1638
1639         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
1640           udata sections to fix bug #1097823
1641
1642 2005-01-05 Raphael Neider <rneider AT web.de>
1643
1644         * src/pic16/gen.c (genGenericShift): added handling of differently
1645           sized left operand and result
1646
1647 2005-01-04 Raphael Neider <rneider AT web.de>
1648
1649         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
1650         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
1651           to hold the condition bit)
1652         * added new version of genCmp (old code available via #define)
1653         * added new version of genShiftLeft/genShiftRight in a generic
1654           way, now supports shifting by negative values
1655         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
1656           shiftCount (expected by genGenericShift)
1657         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
1658         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
1659           dump
1660         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
1661           is an invalid literal too...)
1662
1663 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
1664
1665         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
1666         from Raphael Neider,
1667         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
1668         for 8-bit literals. This fixes some literal operands which are sign
1669         extended to 16-bits ints when instruction needs only 8-bits.
1670
1671 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
1672
1673         * device/lib/logf.c: added mcs51 assembly version
1674         * device/lib/expf.c: added mcs51 assembly version
1675         * device/lib/_logexpf.c: new shared asm code for expf and logf
1676         * device/include/math.h: add defines for assembly math library
1677         * device/lib/Makefile.in: build new _logexpf.c
1678         * device/lib/libfloat.lib: use new _logexpf.c
1679
1680 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
1681
1682         * src/pic/device.c
1683         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
1684           device types which have less than 0x7f registers.
1685
1686 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
1687
1688         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
1689
1690 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
1691
1692         * device/lib/printf_fast.c: only build on supported arch.
1693         * device/lib/printf_tiny.c: only build on supported arch.
1694         * device/lib/printf_fast_f.c: only build if asm float lib
1695         * device/lib/_fsget1arg.c: only build if asm float lib
1696         * device/lib/_fsget2args.c: only build if asm float lib
1697         * device/lib/_fsnormalize.c: only build if asm float lib
1698         * device/lib/_fsreturnval.c: only build if asm float lib
1699         * device/lib/_fsrshift.c: only build if asm float lib
1700         * device/lib/_fsswapargs.c: only build if asm float lib
1701         * device/include/stdio.h: don't provide print_fast,
1702           print_fast_f, print_tiny prototypes if --xstack used
1703
1704 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
1705
1706         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
1707         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
1708           to the SOURCES
1709
1710 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
1711
1712         * device/lib/printf_fast_f.c: same as printf_fast, but
1713           with floating point enabled
1714         * device/lib/printf_fast.c: minor tweaks
1715         * device/include/stdio.h: add printf_fast_f
1716
1717 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
1718
1719         * src/SDCCmain.c: make --float-reent default for mcs51
1720         * device/lib/_fsadd.c: added mcs51 assembly version
1721         * device/lib/_fssub.c: added mcs51 assembly version
1722         * device/lib/_fsmul.c: added mcs51 assembly version
1723         * device/lib/_fsdiv.c: added mcs51 assembly version
1724         * device/lib/_fseq.c: added mcs51 assembly version
1725         * device/lib/_fsneq.c: added mcs51 assembly version
1726         * device/lib/_fsgt.c: added mcs51 assembly version
1727         * device/lib/_fslt.c: added mcs51 assembly version
1728         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
1729         * device/lib/Makefile.in: add _fscmp to build
1730         * device/lib/libfloat.lib: add _fscmp to build
1731
1732 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
1733
1734         * device/lib/_fs2slong.c: added mcs51 assembly version
1735         * device/lib/_fs2sint.c: added mcs51 assembly version
1736         * device/lib/_fs2schar.c: added mcs51 assembly version
1737         * device/lib/_fs2ulong.c: added mcs51 assembly version
1738         * device/lib/_fs2uint.c: added mcs51 assembly version
1739         * device/lib/_fs2uchar.c: added mcs51 assembly version
1740         * device/lib/_slong2fs.c: added mcs51 assembly version
1741         * device/lib/_sint2fs.c: added mcs51 assembly version
1742         * device/lib/_schar2fs.c: added mcs51 assembly version
1743         * device/lib/_ulong2fs.c: added mcs51 assembly version
1744         * device/lib/_uint2fs.c: added mcs51 assembly version
1745         * device/lib/_uchar2fs.c: added mcs51 assembly version
1746         * device/include/float.h: added #define to select asm vs c
1747
1748 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
1749
1750         * device/lib/printf_fast.c: improvements to float output
1751         * device/include/float.h: add defines for assembly float library
1752         * device/lib/_fsget1arg.c: receive 1 float arg
1753         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
1754         * device/lib/_fsnormalize.c: normalize a float
1755         * device/lib/_fsreturnval.c: return float, various helper routines
1756         * device/lib/_fsrshift.c: right shift a float's mantissa
1757         * device/lib/_fsswapargs.c: swap 2 floats
1758         * device/lib/Makefile.in: build these 6 new files for mcs51
1759         * device/lib/libfloat.lib: add these 6 files to the library
1760
1761 2004-12-26 Borut Razem <borut.razem AT siol.net>
1762
1763         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
1764           built by gcc 3.4.2
1765
1766 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
1767
1768         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
1769           and fully reentrant and register bank neutral.
1770         * device/lib/printf_fast.c: added float (not enabled by default),
1771           added compact/slower integer (also not enabled by default),
1772           improved size/speed of fast integer code, other minor changes
1773         * device/include/stdio.h, device/lib/Makefile.in,
1774           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
1775
1776 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
1777
1778         * src/pic16/pcode.c: declaring variables other than at the start of a
1779           block is not supported in C by VC6.
1780
1781 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
1782
1783         * applied a previous patch from Raphael Neider that wasn't included
1784         in the previous commits, which fixes infinite loops within jumptable
1785         improvements,
1786         * made some fixes that previous patches introduced
1787
1788 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
1789
1790         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
1791         that fixes an issue with AOP_PCODE asmop's offset,
1792         * (pic16_popCopyReg): update instance field too,
1793         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
1794         function of pic port,
1795         * (genCmp, genAnd, genAssign),
1796         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
1797
1798 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
1799
1800         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
1801         variables initial values to idata section,
1802         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
1803         variables in some functions. This utilizes parmBytes field of iCode
1804         structure to hold the offset of the variable in stack. (might be
1805         able to use the stack field too?)
1806         * applied patch from Raphael Neider # ### , # ###
1807         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
1808         variable initial values in idata section,
1809         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
1810         for static variables with initial value
1811         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
1812         applied fix in while loop from Raphael Neider.
1813
1814 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
1815
1816         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
1817         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
1818         * src/ds390/ralloc.c (serialRegAssign): spill bits
1819         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
1820         * support/Util/SDCCerr.c,
1821         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
1822         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
1823         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
1824
1825 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
1826
1827         * device/include/sdcc-lib.h: inserted LGPL, added includes
1828           asm/ds390/features.h and asm/mcs51/features.h
1829         * device/include/asm/default/features.h,
1830         * device/include/asm/gbz80/features.h,
1831         * device/include/asm/z80/features.h: added empty _AUTOMEM
1832           and _STATMEM
1833         * device/include/asm/ds390/features.h,
1834         * device/include/asm/mcs51/features.h: added files with defines for
1835           _AUTOMEM and _STATMEM indicating automatic and static storage class
1836         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
1837         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
1838         * src/SDCCicode.c (geniCodeCast),
1839         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
1840         * src/SDCCloop.c (loopInduction): removed unused variable lr
1841         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
1842           to convertToFcall to include char modulo (RFE 1065037), added check
1843           if left operand is unsigned and use abs of literal value
1844         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
1845           as it doesn't work after conversion from peephole.def to peephole.rul
1846         * src/mcs51/gen.c (toBoolean): added check for size,
1847           (genModOneByte): optimized code for signed char modulo a literal
1848           power of 2 (thanks to Hubert Sack),
1849           (genRRC): removed unnecessary "clr c",
1850           (genRLC): replaced "add a,acc" with cheaper "rlc a"
1851         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
1852           jump optimization,
1853           swapped rules 256.c and 256.d,
1854           extended 256.d by using new multiple checks (thanks Erik),
1855           added rules 256.e and 256.f,
1856           updated rule 261.a and 261.b to new generated code
1857         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
1858
1859 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1860
1861         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
1862           induction related bugs, including first part of bug #1074377
1863
1864 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
1865
1866         * applied patch from bug-report #1076292,
1867         * applied patches for genAnd and Goto-optimizations for Raphael
1868         Neider,
1869         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
1870         dump a less iCode information,
1871         * src/pic16/device.h (pic16_options_t): added field debgen,
1872         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
1873         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
1874         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
1875         puclic,
1876         * (various functions): added macros FENTRY and FENTRY2 to functions,
1877         to emit function prologue,
1878         * (various functions): fixed indentation,
1879         * (genNearPointerGet): fixed loading of FSR0,
1880         * (genPackBits): applied patch from Raphael Neider to fix updating
1881         of FSR0 and touching only the modified bits,
1882         * src/pic16/genarith.c (various functions): added macros FENTRY to
1883         emit function prologue in comments,
1884         * src/pic16/pcode.h: added functions debugf2, debugf3,
1885         * src/pic16/ralloc.c: partial fix for packForPush caused
1886         segmentation fault,
1887
1888 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1889
1890         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
1891           <stsp AT users.sourceforge.net> with reversed byte order
1892         * support/regression/tests/rotate.c: added (ds390 skips some tests)
1893
1894 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1895
1896         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
1897           bug #1074377
1898         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
1899         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
1900
1901 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
1902
1903         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
1904
1905 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1906
1907         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
1908           conditions,
1909           (setFromConditionArgs): friendly operand parser for peephole rules,
1910           (operandBaseName, operandsNotRelated): new peephole condition
1911           "operandsNotRelated" -- similar to "operandsNotSame", but takes
1912           architecture specific register naming into account, handles n-way
1913           comparisons, and supports quoted literals
1914         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
1915
1916 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1917
1918         * src/mcs51/peeph.def: fixed bug #1076940
1919
1920 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
1921
1922         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
1923
1924 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1925
1926         Adding support for replacing ljmps with sjmps in jumptables
1927         generated for switch statements. For now you need to set the
1928         environment variable SDCC_SJMP_JUMPTABLE to enable this.
1929         Now 4 algorithms for mcs51 jumptable generation are used:
1930         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
1931         addresses loaded pc-relative for up to 112 cases and stack-pushing
1932         target addresses loaded with offset from dptr for up to 256 cases.
1933
1934         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
1935         * src/mcs51/main.c: adapted constants for switch table generation
1936         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
1937
1938 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
1939
1940         * device/lib/printf_large.c (_print_format): fixed bug 1073386
1941         * support/regression/tests/bug1057979.c: added test for bug 1073386
1942
1943 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
1944
1945         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
1946         compilers
1947
1948 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
1949
1950         * src/pic16/device.h,
1951         * src/pic16/genarith.c,
1952         * src/pic16/glue.c,
1953         * src/pic16/main.c,
1954         * src/pic16/pcode.c: applied patches #1068154 and #1070213
1955
1956 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
1957
1958         Large cummulative patch for pic16 port.
1959         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
1960         to call when a stack overflow occurs,
1961         * (malloc.h): added CVS Id tag,
1962         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
1963         variable,
1964         * added libc directory. The current version of LibC contains string
1965         functions, ctype functions and macros and some functions of the
1966         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
1967         be extensively tested in the future. Standard disclaimer here.
1968         Library is not automatically build yet. But one can build it by
1969         invoking 'make' inside the libc directory.
1970         * added ADC library under libio. Preliminary version yet.
1971
1972         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
1973         * src/pic16/gen.c (aopForRemat): asmop size is filled by
1974         aopForRemat() now and not by pic16_aopOp(),
1975         * (pic16_popGetTempReg): removed warning messgae when allocating
1976         temporary registers, its a buggy feature and will be removed,
1977         * (pic16_popGet): set register instance field in AOP_CRY,
1978         * (pic16_outBitC): fixed for results in size greater than 1,
1979         * (genUminusFloat): fixed for pic16, ported code from mcs51,
1980         * (pic16_storeForReturn): optimized return of 0,
1981         * (genCmp): experimental code for new genCmp which uses PIC18's
1982         special compare&skip instructions. Initial tests fail some times
1983         with variables grater than 1 byte in size, so new code is disabled,
1984         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
1985         a single bit,
1986         * (genCast): began a fix to optimize the casting of a bit to another
1987         bit, now assigning a bitfield to another bitfield will fail, sorry,
1988         * src/pic16/main.c: disabled the use of lr-support feature,
1989         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
1990         * added some function prototypes, added function _debugf prototype,
1991         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
1992         bits with offset (case PO_GPR_BIT),
1993         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
1994         command line,
1995         * (isBankInstruction): modified to return 0 for no banking instruction,
1996         and 1 for banking instruction,
1997         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
1998         caused stop processing pCodes after a inline assembly block,
1999         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
2000         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
2001         registers when it shouldn't,
2002         * src/pic16/ralloc.c (allocReg): add preliminary support for
2003         supporting a limited set of temporary registers,
2004
2005 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2006
2007         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
2008           genDataPointerSet): ensure assignments always copy in MSB to LSB
2009           order,
2010           (loadRegFromAop): recognize CLRH optimization,
2011           (genFunction): optimize RECEIVE iCodes in reentrant functions
2012
2013 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2014
2015         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
2016           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
2017           selected.
2018         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
2019         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
2020           contiguous with data
2021
2022 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2023
2024         * device/lib/_gptrget.c (_gptrget),
2025         * device/lib/_gptrgetc.c (_gptrgetc),
2026         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
2027           instead of sjmp to ret
2028         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
2029           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
2030
2031 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
2032
2033         * .version: bumped version to 2.4.7
2034         * device/lib/_gptrget.c (_gptrget): is now _naked
2035         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
2036         * device/lib/_gptrput.c (_gptrput): is now _naked
2037         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
2038           (createFunction): fixed xstack
2039         * src/SDCCglue.c (emitMaps): set allocation required for bit area
2040         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
2041           or bit either,
2042           (geniCodeCritical): store original interrupt state in an iTemp bit
2043           var unless stack-auto
2044         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
2045         * src/SDCCmain.c (setIncludePath): added include/target to search path
2046         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
2047         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
2048           prototype,
2049           (processFuncArgs): put bit vars in bit area
2050         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
2051           unsaveRBank): fixed xstack,
2052           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
2053           (genFunction, genEndFunction): fixed xstack,
2054           (genAssign): optimization don't walk backwards through mem
2055         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
2056         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
2057         * support/regression/Makefile: also make library (for stack-auto) when
2058           making "all" and added "test-mcs51-xstack-auto"
2059         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
2060         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
2061         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
2062         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
2063         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
2064           make-library by MAKE_LIBRARY
2065         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
2066           regression tests for xstack
2067         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
2068         * support/regression/tests/critical.c: test for critical on mcs51
2069
2070 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2071
2072         * support/regression/ports/ucz80/spec.mk: use include and lib files from
2073           built version of sdcc instead of installed version
2074
2075 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
2076
2077         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
2078         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
2079           vprintf.c now
2080         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
2081         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
2082           WARNING: remove device/lib/build/z80/printf.o by hand when
2083           updating from previous build!
2084         * device/lib/z80/printf.c: updated comment
2085         * support/regression/tests/bug1057979.c: test all ports now
2086         * support/regression/tests/bug1065458.c: file added
2087
2088 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2089
2090         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
2091           *_start and *_end symbols for static functions
2092
2093 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
2094
2095         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
2096           and search crt0.o in all library paths,
2097           (setIncludePath): proper handling of --nostdinc,
2098           (setLibPath): proper handling of --nostdlib
2099         * support/regression/Makefile,
2100         * support/regression/ports/ds390/spec.mk,
2101         * support/regression/ports/gbz80/spec.mk,
2102         * support/regression/ports/hc08/spec.mk,
2103         * support/regression/ports/mcs51/spec.mk,
2104         * support/regression/ports/mcs51-large/spec.mk,
2105         * support/regression/ports/mcs51-stack-auto/spec.mk,
2106         * support/regression/ports/z80/spec.mk: use include and lib files from
2107           built version of sdcc instead of installed version
2108         * doc/sdccman.lyx: fixed typo in --nostdinc
2109
2110 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
2111
2112         * src/pic/pcode.c,
2113         * src/pic/device.c,
2114         * src/pic/ralloc.c,
2115         * src/pic/gen.c : added support to generate code for struct bit fields.
2116
2117 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
2118
2119         * as/xa51/xa_version.h,
2120         * device/include/errno.h,
2121         * device/include/regc515c.h,
2122         * device/lib/_itoa.c,
2123         * device/lib/_ltoa.c,
2124         * device/lib/ser_ir_cts_rts.c,
2125         * sim/ucsim/xa.src/glob.cc,
2126         * sim/ucsim/xa.src/inst_gen.cc,
2127         * sim/ucsim/xa.src/xa_bit.cc,
2128         * sim/ucsim/xa.src/xa_sfr.cc,
2129         * sim/ucsim/z80.src/inst_dd.cc,
2130         * sim/ucsim/z80.src/inst_fdcb.cc,
2131         * support/scripts/keil2sdcc.pl,
2132         * src/pic16/pic16.dsp,
2133         * src/pic16/pic16a.dsp: corrected cvs line endings
2134         * device/lib/printf_large.c: fixed bug 1057979
2135         * src/pic16/gen.c: fixed non-C standard code
2136         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
2137         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
2138         * support/regression/ports/mcs51/support.c: reload T1 asap
2139         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
2140           pdata use and clear idata startup behaviour
2141         * support/regression/tests/bug1057979.c: added
2142
2143 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
2144
2145         * device/examples/ds390/ow390/ad26.h,
2146         * device/examples/ds390/ow390/cnt1d.h,
2147         * device/examples/ds390/ow390/crcutil.c,
2148         * device/examples/ds390/ow390/ownet.h,
2149         * device/examples/ds390/ow390/owsesu.c,
2150         * device/examples/ds390/ow390/swt12.h,
2151         * device/examples/ds390/ow390/swtoper.c,
2152         * device/examples/ds390/ow390/temp10.h,
2153         * device/examples/ds390/ow390/thermodl.c,
2154         * device/examples/ds390/tinitalk/tinitalk.dsp,
2155         * device/examples/ds390/tinitalk/tinitalk.dsw,
2156         * device/examples/mcs51/clock/hw.h,
2157         * device/examples/mcs51/simple2/go.bat,
2158         * device/examples/serialcomm/windows/serial.h,
2159         * device/examples/xa51/dummy.c,
2160         * device/examples/xa51/hello.c,
2161         * device/include/80c51xa.h,
2162         * device/include/at89x051.h: corrected cvs line endings
2163
2164 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
2165
2166         * src/pic16/main.c (options): added command line --gstack, to trace
2167         stack over/under flows,
2168         * added pragma 'wparam' to allow passing first byte of function
2169         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
2170         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
2171         call to __gstack_test function and sets up the symbol as extern,
2172         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
2173         * popaop): added call to pic16_testStackOverflow,
2174         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
2175         wparamList list,
2176         * (genCall, genPcall): now all parameters are passed via stack
2177         except in functions that are pass to wparam pragma in which WREG is
2178         used too,
2179         * (genPcall): REENTRANT flag is checked to see if variable prototype
2180         contains reentrant keyword, don't call a non-reentrant function, via
2181         a reentrant function pointer or vice versa, functions are never
2182         passed via WREG,
2183         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
2184         D.Winkler,
2185         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
2186         SIGSEGV when accessing a NULL register stucture,
2187         * (pic16_printGPointerType): modified to handle UPPER modifier for
2188         function initializers, changed prototype of function to simpler one,
2189         * (pic16_printIvalFuncPtr): check to see if function is already
2190         added in externs list,
2191         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
2192         optimized a move from W to SFR with a move to the same register
2193         later after a CALL,
2194         * device/lib/pic16/debug: NEW directory, contains debug features
2195         which are enabled when linking with libdebug.lib, currently command
2196         line option --gstack enables stack pointer tracing for over/under
2197         flow, corresponding sources are in debug/gstack
2198
2199 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
2200
2201         * doc/sdccman.lyx: updated SDCC version,
2202         * (PIC16 port): update list of command line options,
2203         * src/pic16/device.h (structure pic16_options_t): added field gstack
2204         to enable stack overflow tracing on push/pops,
2205         * src/pic16/device.c (statistics structure): added statistics
2206         structure,
2207         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
2208         pic16_dump_int_registers): increase statistics counters for each
2209         * variable which is encountered
2210         * (pic16_dump_usection): emit each .udata variable to its own udata
2211         section,
2212         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
2213         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
2214         parameters via stack, otherwise use old scheme,
2215         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
2216         assembler output file,
2217         * src/pic16/main.c: added command line options --gstack to enable
2218         push/pop tracing for stack overflow,
2219         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
2220         instructions): added size of each instruction,
2221         * (pic16_countInstruction): estimate size of instructions in
2222         the_pFile list, inline assembly blocks are not counted,
2223         * (pic16_FixRegisterBanking): trace previous register usage, when
2224         banksel optimizations is greater than 0, don't emit a redudant
2225         banksel directive,
2226
2227 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
2228
2229         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
2230         * src/pic16/ralloc.c : applied same fix for pic16.
2231         * src/pic/gen.c : tidied it up a little.
2232
2233 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2234
2235         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
2236         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
2237
2238 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2239
2240         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
2241
2242 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2243
2244         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
2245         non-reentrant function __modsint in the interrupt function (thus
2246         corrupting math operations during serial I/O)
2247         * device/lib/ser_ir.c: as above, changed buffersize
2248         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
2249         256.c,d for zeroing
2250         * doc/Makefile: added option -t for rsync
2251
2252 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2253
2254         * src/SDCCast.h (struct ast),
2255         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
2256
2257 2004-10-20 Borut Razem <borut.razem AT siol.net>
2258
2259         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
2260         package
2261
2262 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
2263
2264         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
2265         makefile targets,
2266         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
2267         support functions to replace long sequences of MOVFF's from access
2268         bank registers to stack and vice versa,
2269         * src/pic16/device.h: added new field opt_flags, where optimization
2270         flags can be set to enable certain features,
2271         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
2272         * pBlock, (genFunction, genEndFunction): surroung loop for
2273         saving/loading used registers in stack with PC_INFO pCodes,
2274         INF_LREGS. Code in between can then be optimized by pCode optimizer
2275         to support function calls,
2276         * (genDataPointerSet): fixed bug which loaded float fields in
2277         structures with corrupt data,
2278         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
2279         in a standard way debug info on stderr. Feature used for developing
2280         and debugging only,
2281         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
2282         obsolete chunks of code,
2283         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
2284         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
2285         * pic16/src/pcode.c (pic16_newpCodeInfo,
2286         * (pic16_newpCodeOpLocalRegs),
2287         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
2288         feature,
2289         * (pic16_pCodeConstString): printing of the initial value of a
2290         symbol as a comment is inhibited since parsing was already done by
2291         copyStr and output is corrupt,
2292         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
2293
2294 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2295
2296         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
2297
2298 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
2299
2300         * as/mcs51/lkarea.c: removed old K&R style,
2301           (lnksect): changed check on boundary error,
2302           (lnksect2): changed check on boundary error,
2303           (lnksect2): extend XSTK to end of page if size = 1
2304         * as/mcs51/lkmain.c: removed old K&R style,
2305           (Areas51): create l_IRAM symbol
2306         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
2307         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
2308           model-mcs51-stack-auto, added model-mcs51-xstack-auto
2309         * device/lib/_mullong.c: added version to be compiled with xstack
2310         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
2311         * device/lib/mcs51/crtxclear.asm: clear pdata as well
2312         * device/lib/mcs51/crtxstack.asm: fixed comment
2313         * src/SDCCglue.c: maxInterrupts defaults to 0,
2314           (emitMaps): added pdata,
2315           (createInterruptVect): (re)moved default,
2316           (glue): added pdata,
2317           (glue): moved __start__xstack to XSTK with default size 1
2318         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
2319           and options.float_rent when options.stackAuto is set,
2320           (linkEdit): only write XDATA_NAME if provided on command line
2321         * src/SDCCmem.h,
2322         * src/SDCCmem.c: added pdata
2323         * src/port.h: added pdata_name to PORT
2324         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
2325           (saveRegisters, unsaveRegisters): removed usage of B,
2326           (genMinus): fixed accumulator clash,
2327           (genJumpTab): added comment, this needs another look
2328         * src/mcs51/gen.c: added check for "B in use" paranoia,
2329           added pushB() and popB()
2330         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
2331           chance
2332         * src/avr/main.c,
2333         * src/ds390/main.c,
2334         * src/hc08/main.c,
2335         * src/mcs51/main.c,
2336         * src/pic/main.c,
2337         * src/pic16/main.c,
2338         * src/xa51/main.c,
2339         * src/z80/main.c: (reset_regparms) made void parameter explicit and
2340           added PSEG (PAG,XDATA) or NULL to port specifier
2341         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
2342         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
2343           (_mcs51_genInitStartup): removed __start__xstack equ,
2344           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
2345         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
2346         * src/z80/gen.c (_rleAppend): fixed warnings
2347         * support/regression/tests/zeropad.c: added pdata test
2348         * .version: bumped to 2.4.6
2349
2350 2004-10-17 Borut Razem <borut.razem AT siol.net>
2351
2352         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
2353         as a part of nightly build
2354
2355 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
2356
2357         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
2358         WREG holds the first byte function parameters,
2359         * (aopForSym): take special case for symbols which are in FARSPACE
2360         but in CODESPACE too,
2361         * (assignResultValue): modified to take into account _G.useWreg,
2362         * (genCall): don't use wreg for parameter passing when function is
2363         declared as reentrant, too, added optimization INCF to stack
2364         pointer when stack parameter count is 1,
2365         * (genFunction, genEndFunction): refurnished and fixed to not using
2366         wreg for passing parameters when function has varargs or is
2367         reentrant, fixed bug with symbol name compare for generating
2368         functions in absolute address,
2369         * (pic16_storeForReturn): refurnished,
2370         * (genCmp): began writing a new version of the function, not ready
2371         yet, therefore it is disabled,
2372         * (genAssign): do not read code memory when assigning a function to
2373         a pointer function,
2374         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
2375         array of characters, not pointer,
2376         * (pic16initialComments): in debug mode emit an .ident directive for
2377         the assembler,
2378         * (_process_pragma): emit a new warning type (internal to pic16)
2379         when setting stack to default length, emit a similar warning when
2380         placing a function at absolute address and address is not word aligned
2381         * (_pic16_parseOptions): added 'return TRUE' statement,
2382         * (_pic16_linkEdit): if compiling a source, then add the source's
2383         file object, first in the list of objects to link,
2384
2385 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
2386
2387         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
2388         * src/pic/main.c : removed VC warning.
2389         * src/pic/gen.c : changed comment.
2390
2391 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
2392
2393         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
2394         reference to a deprecated symbol _GPTRREG was causing failure to
2395         link. Thanks G. M. Gallant for the info.
2396
2397 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
2398
2399         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
2400         comments for Bugs item #954788.
2401
2402 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
2403
2404         * src/pic16/device.c (pic16_dump_gsection,
2405         * pic16_groupRegistersInSection): handle symbols declared to be in
2406         access bank differently,
2407         * src/pic16/gen.c (struct _G): added field resDirect,
2408         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
2409         send values read from stack directly to result and don't allocate
2410         temporary values,
2411         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
2412         same registers,
2413         * (pic16_sameRegsOfs): NEW,
2414         * (freeAsmop): if _G.resDirect is set then do not mark registers as
2415         free because they were not allocated from temporary pool,
2416         * pic16_popRegFromString): workaround to fix a problem with
2417         allocating variables twice or never,
2418         * (genGenPointerGet): using PRODL instead of FSR0H,
2419         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
2420         instead of FSR0H,
2421         * (genAssign): take advantage of the _G.resDirect flag,
2422         * (genCast): around line 11844, use mov2f instead of directly
2423         MOVFF'ing between operands to account for literal values,
2424         * src/pic16/genutils.c: some new debug functions for gpsim have been
2425         added,
2426         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
2427         float with integer part only,
2428         * src/pic16/main.c (_process_pragma): handle pragma udata access to
2429         place variables in access bank
2430         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
2431         updated sources to reflect recent changes in gen.c
2432
2433 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
2434
2435         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
2436         sources that searched for headers in installation path, now the
2437         device/include/pic16 is used,
2438         * src/pic16/glue.c (pic16glue),
2439         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
2440         .line directives if not in debug mode, this suppresses assembler's
2441         warnings for ignored directives
2442
2443 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
2444
2445         * src/port.h: made reset_regparms prototype void parameter explicit.
2446         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
2447         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
2448         * doc/sdccman.lyx: documented warning disabling and how to use
2449           printf_large to make it print floats.
2450         * device/include/stdbool.h: NEW
2451         * device/lib/_atof.c,
2452         * device/lib/_divuint.c,
2453         * device/lib/_divulong.c,
2454         * device/lib/expf.c,
2455         * device/lib/printf_large.c,
2456         * device/lib/sincosf.c,
2457         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
2458         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
2459           a completely reentrant lib.
2460
2461 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
2462
2463         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
2464         * device/include/pic16/stdio.h: fixed bug with colon
2465
2466 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
2467
2468         * device/include/pic16/stdio.h,
2469         * device/include/pic16/stdlib.h,
2470         * device/include/pic16/math.h: NEW
2471         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
2472         declared as _naked to reduce overhead
2473         * device/lib/Makefile.in (target port-specific-objects-pic16):
2474         changed * to *.* so to ignore the CVS directory,
2475         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
2476         stacked variables back in stack,
2477         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
2478         corruption
2479
2480 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
2481
2482         * .version: bumped version number to 2.4.5
2483         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
2484         * support/Util/SDCCerr.c (messages structure): added entry for
2485         W_POSSBUG2
2486
2487         Large cumulative patch for pic16 port and libraries.
2488         * device/include/pic16/sdcc-lib.h,
2489         * device/include/pic16/stdarg.h,
2490         * device/include/asm/pic16/features.h,
2491         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
2492         * device/include/pic16/float.h: changes reentrant keyword with
2493         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
2494         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
2495         updated target build-libraries to include objects from gptr,
2496         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
2497         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
2498         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
2499         all function headings,
2500         * src/SDCCmain.c: added global parameter userIncDirsSet,
2501         * (parseCmdLine): when option -I is encountered add directory to
2502         userIncDirsSet too,
2503         * src/version.awk: added space between control and long,
2504         * src/pic16/NOTES: added some notes for the port,
2505         * src/pic16/gen.c: added prototype for mov2fp function,
2506         * (fReturnpic16[]): properly named return value registers,
2507         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
2508         * (aopForSym): added code to handle symbols with onStack flag set,
2509         symbols onStack are allocated PTRSIZE bytes,
2510         * (aopFreeAsmop): handles special case where asmops are stack objects,
2511         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
2512         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
2513         added argument lock to trace flaws in allocating temporary registers
2514         when developing port,
2515         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
2516         * (pic16_popRegFromString): reenabled allocating a direct register
2517         from string,
2518         * (assignResultValue): various beautifications,
2519         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
2520         referenced function argument,
2521         * (genIpush): reenabled to allow stacked arguments, handles only
2522         ic->parmPush iCodes,
2523         * (genCall, genPcall): major changes to allow for variable argument
2524         functions, fixed a bug with falsely restoring stack pointer after
2525         returning from call,
2526         * (genFunction): pending code for critical function,
2527         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
2528         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
2529         * (genNearPointerGet): fixed bug with indirect reading, was always
2530         reading from INDF0
2531         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
2532         pointers,
2533         * (genAddrOf): rewrote code to take address of a stacked function parameter
2534         * (genCast): fixed casting to generic pointer type,
2535         * src/pic16/gen.h: added AOP_STA,
2536         * (struct asmop): added field stk,
2537         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
2538         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
2539         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
2540         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
2541         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
2542         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
2543         generic pointers,
2544         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
2545         and library paths,
2546         * (pic16_port structure): generic pointer size is set to 3,
2547         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
2548         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
2549         compiler warning,
2550         * src/pic16/ralloc.c (allocReg): prevent allocating register when
2551         operand is an iTemp,
2552
2553 2004-09-24 Martin Helmling <mh AT octo-soft.de>
2554
2555         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
2556         * debugger/mcs51/simi.c: addapt new syntax of s51
2557
2558 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
2559
2560         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
2561         * src/pic16/pcode.c: commented out some calls to free() in order to
2562         fix bug #989576,
2563
2564 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2565
2566         * src/SDCCicode.h,
2567         * src/SDCCicode.c (isiCodeInFunctionCall),
2568         * src/avr/ralloc.c (selectSpil),
2569         * src/pic/ralloc.c (selectSpil),
2570         * src/pic16/ralloc.c (selectSpil),
2571         * src/ds390/ralloc.c (selectSpil),
2572         * src/hc08/ralloc.c (selectSpil),
2573         * src/xa51/ralloc.c (selectSpil),
2574         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
2575         stack in the middle of a function call sequence (fixes bug #1020268)
2576         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
2577         costs associated with the minimum switch case.
2578
2579 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2580
2581         * src/SDCC.lex: fixed bug #1030549
2582
2583 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2584
2585         * src/SDCCcse.h (struct cseDef),
2586         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
2587         over a function call if the CSE is derived from a symbol whose
2588         address has been taken (fixes bug #1029883)
2589         * support/regression/tests/bug-1029883: a new regression test for
2590         this bug
2591
2592 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2593
2594         * src/hc08/gen.c (emitinline): fixed bug #1029778
2595         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
2596         to a cast object is no longer a syntax error ("fixes" bug #1030006,
2597         and starts toward RFE #905167)
2598
2599 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
2600
2601         * src/pic16/gen.c (mov2f): New function to move an operand to
2602         another without considering if it is a literal or a register,
2603         * (pic16_sameRegs): don't check if they are both AOP_REG,
2604         * (AccRsh): removed andmask=0 lines,
2605         * (genLeftShift): duplicated to be improved in future versions,
2606         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
2607         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
2608         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
2609         * (pic16initMnemonics): added initialization for POC_INFSNZW,
2610         * (insertBankSwitch): fixed inserting banksel directives algorithm
2611         for instructions that follow a skip instruction, this fixes a report
2612         for broken subtraction code generation,
2613         * src/pic16/ralloc.c (deassignLRs): do not free register if current
2614         iCode is a left op, just in case result and right share the same
2615         registers
2616
2617 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2618
2619         * src/hc08/main.c,
2620         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
2621         preservation of HX
2622         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
2623         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
2624         on 2004-09-12; it was buggy
2625
2626 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
2627
2628         * src/SDCCsymt.h: removed RESULT_CHECK
2629         * src/SDCCast.c,
2630         * src/SDCCglue.c,
2631         * src/SDCCval.c,
2632         * src/pic/glue.c,
2633         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
2634
2635 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
2636
2637         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
2638         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
2639         configuration values no more rejected by compiler, they are assigned
2640         to configuration registers with a warning message instead,
2641         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
2642         the for-loop so last conf register is emitted too,
2643         * (_pic16_initPaths): link library libsdcc.lib by default,
2644         * (_hasNativeMulFor): modified test for multiplication according to
2645         Raphael Neider's remarks. Integer multiplication is also done with
2646         support functions,
2647         * device/include/pic16/pic18fregs.h: corrected type error in while
2648         testing and including 18f6720 header file
2649
2650 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
2651
2652         * src/pic16/device.h (pic16_options): removed field use_crt,
2653         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
2654         until an optimization to handle single bits is added,
2655         * (pic16_loadFSR0): moved before genUnpackBits,
2656         * (genAnd): some white lines removed,
2657         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
2658         leave_reset flags in pic16_options when using crt modules,
2659
2660 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
2661
2662         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
2663           for bugs 898889 & 979599. Also used some safer print instructions.
2664
2665 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
2666
2667         * src/pic16/device.h (pic16_options_t): added field use_crt,
2668         crt_name, no_crt,
2669         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
2670         catch a probable future bug,
2671         * src/pic16/gen.c: aopIdx function commented out,
2672         * (genAssign): commented out old code which used aopIdx,
2673         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
2674         code, added if conditionals to take into account the --use-crt
2675         command line options,
2676         * src/pic16/main.c (pic16_optionsTable): added new command line
2677         options, --use-crt= and --no-crt,
2678         * (_pic16_linkEdit): now the proper crt object is added in the
2679         linker command line except than when --no-crt is specified,
2680         * src/pic16/pcode.c,
2681         * src/pic16/pcode.h: added some structures and functions for a new
2682         optimization scheme to compansate for instruction overhead between
2683         same iCodes, this scheme is currently under development and is not
2684         working in any way,
2685         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
2686         to && operator,
2687         * device/lib/pic16/startup/crt0i.c,
2688         * device/lib/pic16/startup/crt0iz.c: added global char variable
2689         __uflags to force the generation of an idata section
2690
2691 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
2692
2693         * doc/Makefile,
2694         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
2695         * doc/sdccman.lyx: updated sdcc version to 2.4.4
2696
2697 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2698
2699         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
2700         Frieder) and clarified the default code optimization mode
2701
2702 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2703
2704         * src/SDCC.lex (doPragma, process_pragma),
2705         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
2706         "opt_code_size", and "opt_code_balanced"
2707         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
2708         regrouped options by category, added support for category headers
2709         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
2710         and "--opt-code-size"
2711         * doc/sdccman.lyx: documented these new options and pragmas
2712         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
2713         preference into account
2714
2715 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
2716
2717         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
2718           geniCodePreDec): Fixed bug 904237 by generating a warning
2719         * src/SDCCerr.h,
2720         * src/SDCCerr.c: added warning W_SIZEOF_VOID
2721
2722 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
2723
2724         * src/pic/device.c : When no max ram set validate full memory range.
2725         * src/pic/pcode.c,
2726         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
2727
2728 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
2729
2730         * device/lib/_gptrget.c,
2731         * device/lib/_gptrput.c: updated comment
2732         * device/lib/calloc.c,
2733         * device/lib/free.c,
2734         * device/lib/malloc.c,
2735         * device/lib/realloc.c: added LGPL, made them reentrant-safe
2736         * src/SDCCcse.c (cseBBlock),
2737         * src/SDCCicode.c (printOperand, geniCodeArray),
2738         * src/SDCCicode.h (struct operand): fixed bug 868103
2739         * support/regression/tests/bug-868103.c: added
2740         * src/SDCCast.c (searchLitOp),
2741         * src/SDCCcse.h (struct cseDef),
2742         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
2743         * src/SDCCicode.h (struct operand),
2744         * src/SDCCsymt.h (struct sym_link),
2745         * src/avr/gen.c (hasInc),
2746         * src/ds390/gen.c (hasInc),
2747         * src/hc08/gen.c (genPlusIncr, hasInc),
2748         * src/mcs51/gen.c (hasInc),
2749         * src/pic16/glue.c (pic16_printIvalChar),
2750         * src/pic16/ralloc.c (regWithIdx),
2751         * src/xa51/gen.c (hasInc) : removed warnings
2752         * src/SDCCast.c (createBlock): added comment ???
2753         * src/hc08/ralloc.c: updated comments
2754
2755 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2756
2757         * doc/sdccman.lyx: updated section on switch statements, added
2758         section about semaphore locking
2759         * doc/Makefile: added option -info for latex2html
2760         * device/lib/_gptrget.c,
2761         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
2762
2763 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
2764
2765         * src/pic/device.h,
2766         * src/pic/device.c,
2767         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
2768          maxram is less than 0x100.
2769
2770 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
2771
2772         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
2773
2774 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2775
2776         * src/port.h,
2777         * src/mcs51/main.c,
2778         * src/ds390/main.c,
2779         * src/z80/main.c,
2780         * src/hc08/main.c,
2781         * src/pic/main.c,
2782         * src/pic16/main.c,
2783         * src/avr/main.c,
2784         * src/xa51/main.c
2785         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
2786         a jump table is the best form for a switch statement, including
2787         automatic insertion of missing cases to make the case range
2788         continuous. Developed in collaboration with Frieder Ferlemann.
2789
2790 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2791
2792         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
2793         accumulator result if it needs sign extension
2794
2795 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
2796
2797         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
2798
2799 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
2800
2801         * device/lib/gbz80/printf.c,
2802         * device/lib/z80/printf.c: removed define for NULL
2803
2804 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
2805
2806         * as/xa51/xa_link.c,
2807         * device/examples/ds390/ow390/ad26.c,
2808         * device/examples/ds390/ow390/cnt1d.c,
2809         * device/examples/ds390/ow390/counter.c,
2810         * device/examples/ds390/ow390/ds2480.h,
2811         * device/examples/ds390/ow390/ds2480ut.c,
2812         * device/examples/ds390/ow390/findtype.c,
2813         * device/examples/ds390/ow390/gethumd.c,
2814         * device/examples/ds390/ow390/owllu.c,
2815         * device/examples/ds390/ow390/ownetu.c,
2816         * device/examples/ds390/ow390/swt12.c,
2817         * device/examples/ds390/ow390/swtloop.c,
2818         * device/examples/ds390/ow390/temp.c,
2819         * device/examples/ds390/ow390/temp10.c,
2820         * device/examples/ds390/ow390/thermo21.c,
2821         * device/examples/ds390/ow390/tinilnk.c,
2822         * device/examples/ds390/ow390/tstfind.c,
2823         * device/examples/serialcomm/windows/serial.cpp,
2824         * device/examples/serialcomm/windows/test_serialcomm.cpp,
2825         * device/include/reg51.h: fixed line endings for cvs
2826
2827 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2828
2829         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
2830         packRegsForAccUse, packRegisters): new accumulator register
2831         packing algorithm
2832         * support/regression/ports/hc08/support.c (_putchar): suppress
2833         warning of unused variable
2834         * src/SDCCicode.c: added SWAP entry to codeTable
2835
2836 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
2837
2838         * device/lib/sprintf.c: forgot to add this file before previous commit
2839
2840 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
2841
2842         * src/pic16/gen.c (genPackBits): added operand right in function
2843         parameters, load result directly if p_type is POINTER (that is
2844         called by genNearPointerSet)
2845         * (genUnPackBits): added operand left in function parameters,
2846         * (genNearPointerGet, genNearPointerSet): prevent the loading of
2847         FSR0 if accessing bitfields,
2848
2849 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
2850
2851         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
2852           _print_format; updated printf, sprintf, vsprintf
2853         * device/include/asm/default/features.h: corrected comment/define
2854         * device/lib/Makefile.in: added sprintf.c
2855         * device/lib/libsdcc.lib: added sprintf module
2856         * device/lib/printf_large.c,
2857         * device/lib/vprintf.c,
2858         * device/lib/sprintf.c: totally refactored printf_large and vprintf
2859           into these 3 files
2860         * support/regression/Makefile: changed ALL_PORTS into a usefull default
2861         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
2862         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
2863           hc08 test
2864         * support/regression/tests/zeropad.c: define idata as data for hc08
2865
2866 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2867
2868         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
2869         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
2870         labels are referenced at least once (even if a reference is not found)
2871         * src/hc08/gen.c (emitcode): set isComment flag for comments
2872         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
2873         loads), rules 6a..6b (optimize jumps to return)
2874
2875 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2876
2877         * device/lib/acosf.c (acosf),
2878         * device/lib/asinf.c (asinf),
2879         * device/lib/atanf.c (atanf),
2880         * device/lib/ceilf.c (ceilf),
2881         * device/lib/cosf.c (cosf),
2882         * device/lib/coshf.c (coshf),
2883         * device/lib/cotf.c (cotf),
2884         * device/lib/fabsf.c (fabsf),
2885         * device/lib/floorf.c (floorf),
2886         * device/lib/log10f.c (log10f),
2887         * device/lib/logf.c (logf),
2888         * device/lib/sinf.c (sinf),
2889         * device/lib/sinhf.c (sinhf),
2890         * device/lib/sqrtf.c (sqrtf),
2891         * device/lib/tanf.c (tanf),
2892         * device/lib/tanhf.c (tanhf),
2893         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
2894         replaced all instances of "reentrant" in the library functions
2895         defined in math.h with this macro.
2896         * support/regression/tests/float_trans.c: reenabled test for hc08
2897
2898 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
2899
2900         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
2901         erroneously deleted
2902
2903 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2904
2905         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
2906         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
2907         multi-byte volatile operands are used
2908         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
2909         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
2910         initialization to area GSINIT0 so that it would always precede
2911         any static initializers in GSINIT
2912         * support/regression/tests/zeropad.c: fixed idata define for hc08
2913         * support/regression/tests/bug-927659.c,
2914         * support/regression/tests/float_trans.c: disabled tests for hc08
2915         pending missing library routines
2916         * .version: increased version number to 2.4.4 - hc08 port now passes
2917         regression tests
2918
2919
2920 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
2921
2922         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
2923         * Makefile.common.in,
2924         * as/Makefile,
2925         * as/hc08/Makefile.in,
2926         * as/mcs51/Makefile.in,
2927         * as/z80/Makefile.in,
2928         * debugger/mcs51/Makefile.in,
2929         * device/include/Makefile.in,
2930         * device/lib/Makefile.in,
2931         * doc/Makefile,
2932         * link/Makefile,
2933         * link/z80/Makefile.in,
2934         * packihx/Makefile.in,
2935         * sim/ucsim/main_in.mk,
2936         * sim/ucsim/avr.src/Makefile.in,
2937         * sim/ucsim/doc/Makefile.in,
2938         * sim/ucsim/gui.src/serio.src/Makefile.in,
2939         * sim/ucsim/hc08.src/Makefile.in,
2940         * sim/ucsim/s51.src/Makefile.in,
2941         * sim/ucsim/xa.src/Makefile.in,
2942         * sim/ucsim/z80.src/Makefile.in,
2943         * src/Makefile.in,
2944         * support/cpp2/Makefile.in,
2945         * support/librarian/Makefile,
2946         * support/makebin/Makefile: added DESTDIR to the install path proposed
2947         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
2948         * doc/sdccman.lyx: added DESTDIR documentation
2949
2950 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
2951
2952         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
2953         instruction for interrupt handlers, use fast returns when returning
2954         from high priority interrupts
2955
2956 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2957
2958         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
2959         code generation
2960         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
2961         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
2962         bugs, ported much of Bernhard's code from mcs51
2963         * src/mcs51/gen.c (genSend),
2964         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
2965         than one when calling a reentrant function
2966         * device/lib/_mullong.c: defined an alternate struct layout for big
2967         endian ports (hc08)
2968
2969 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2970
2971         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
2972         test
2973
2974 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2975
2976         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
2977         are sane and complete before asking the port its prefered parameter
2978         passing method (fixes bug #1017633)
2979         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
2980         and _ret3
2981
2982 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2983
2984         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
2985         problem in bitfields >= 8 bits.
2986
2987 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
2988
2989         * src/SDCCsymt.c: undid changes that were not meant to be committed
2990
2991 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
2992
2993         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
2994
2995 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
2996
2997         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
2998           copied and wrong bit got inverted
2999
3000 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3001
3002         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
3003         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
3004         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
3005         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
3006         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
3007         assignments to bitfields at known addresses
3008         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
3009         reads from bitfields at known addresses
3010         * src/hc08/ralloc.c (packRegisters),
3011         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
3012         genhc08Code): optimize pointer get values used as conditionals
3013         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
3014         and branch
3015
3016 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3017
3018         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
3019         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
3020         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
3021         as conditionals
3022
3023 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3024
3025         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
3026
3027 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3028
3029         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
3030         related problems
3031
3032 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
3033
3034         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
3035
3036 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3037
3038         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
3039         mcs51 port
3040
3041 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
3042
3043         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
3044
3045 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3046
3047         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
3048         cases use more compact code.
3049
3050 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
3051
3052         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
3053
3054 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3055
3056         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
3057
3058 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3059
3060         * src/SDCCsymt.h,
3061         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
3062         parameter of changePointer() from symbol* to sym_link*
3063         * src/SDCCast.c (decorateType): call changePointer() for CAST op
3064         * src/SDCCsymt.c (compareType): void* type is castable to other
3065         pointers, but not necesarily an exact match.
3066         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
3067         is no longer blindly treated as an exact match.
3068         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
3069
3070 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
3071
3072         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
3073
3074 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
3075
3076         * src/pic/gen.c,
3077         * src/pic/pcode.c,
3078         * src/pic/ralloc.h,
3079         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
3080
3081 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
3082
3083         * src/pic/device.c,
3084         * src/pic/device.h,
3085         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
3086
3087 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3088
3089         * src/mcs51/gen.c (emitcode): fixed bug #992819
3090
3091 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
3092
3093         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
3094           there's no need to make it worse
3095
3096 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3097
3098         * src/mcs51/ralloc.c (deassignLR),
3099         * src/ds390/ralloc.c (deassignLR),
3100         * src/hc08/ralloc.c (deassignLR),
3101         * src/z80/ralloc.c (deassignLR),
3102         * src/pic/ralloc.c (deassignLR),
3103         * src/pic16/ralloc.c (deassignLR),
3104         * src/avr/ralloc.c (deassignLR),
3105         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
3106         rlivePoint): fixed another part of bug #971834
3107
3108 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3109
3110         * src/z80/main.c: enabled "critical" keyword
3111         * src/z80/mappings.i,
3112         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
3113         functions (fixes bug #979646)
3114         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
3115
3116 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3117
3118         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
3119           such as c:\mydir.
3120
3121 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
3122
3123         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
3124           doesn't disable too much optimizations
3125
3126 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
3127
3128         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
3129
3130 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
3131
3132         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
3133
3134 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
3135
3136         * src/pic/gen.c tidied up tabs
3137         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
3138         * src/pic/main.c tidied up tabs
3139         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
3140         * src/pic/pcoderegs.c tidied up tabs
3141         * src/pic/ralloc.c tidied up tabs
3142
3143 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
3144
3145         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
3146         to S_FIXED for pic16 port and when symbol is not in level 0,
3147         allocate for S_REGISTER storage class and pic16 port, too,
3148         * src/pic16/device.h: prototype for checkSym,
3149         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
3150         * (pic16_assignConfigWordValue): test the value and the mask to
3151         validate that the value is suitable for the configuration word,
3152         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
3153         collect extern declared symbols, don't emit symbol twice, check
3154         first if symbol is in publics set first,
3155         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
3156         * added command line '--fstack' which enables an experimental
3157         feature for stack access, too buggy to be used yet...
3158         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
3159         * (pic16_allocDirReg): when register has storage class S_REGISTER
3160         allocate in pic16_dynAccessRegs,
3161         * device/include/pic16/pic18f????.h: modified configuration word
3162         naming convention, words started as CONFIG0H but should be CONFIG1H
3163
3164 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
3165
3166         * device/include/mcs51reg.h: fixed bug 970993
3167
3168 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
3169
3170         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
3171         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
3172         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
3173         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
3174         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
3175         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
3176           error/warning numbers,
3177           added function setWarningDisabled()
3178         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
3179         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
3180           _memcmp.c _memmove.c calloc.c realloc.c free.c
3181         * support/regression/tests/malloc.c: added tests for new functionality
3182         * support/regression/tests/zeropad.c: added tests for truncated initializers
3183           and initialized char arrays starting with '\x0'
3184         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
3185
3186 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
3187
3188         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
3189
3190 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3191
3192         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
3193         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
3194         peephole 177.e. Thanks to anonymous
3195
3196 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
3197
3198         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
3199         function isn't used in the source but referenced as a
3200         variable initializer then declare it as extern in .asm file
3201
3202 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
3203
3204         * .version: increased version number to 2.4.3
3205
3206         Adding version extension according to ChangeLog CVS revision
3207         * src/Makefile.in (target all): added dependency 'version.h'
3208         * (rule version.h): added rule to create version.h from ChangeLog,
3209         * (rule dep): added dependency version.h,
3210         * src/version.awk: AWK script to create version.h
3211         * src/SDCCdwarf2.c (dwWriteModule),
3212         * src/SDCCglue.c (initialComments),
3213         * src/SDCCmain.c (printVersionInfo): modified to write after
3214         version string the version extension number,
3215         * src/SDCCutil.c: included "version.h"
3216         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
3217         number,
3218         * src/SDCCutil.h: added prototype for getBuildNumber
3219
3220         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
3221         includeDirsSet, too,
3222         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
3223         const char [] is found in function prototype...
3224
3225         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
3226         moving to WREG with source is already in WREG,
3227         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
3228         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
3229         * (aopForSym): stack'ed symbols are partially supported, added
3230         if-clause to support symbols in FARSPACE,
3231         * (sameRegs): added test for AOP_ACC to see if registers are same,
3232         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
3233         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
3234         * (pic16_popRegFromString): will not allocate a new register if it
3235         doesn't find one by name, bug may have introduced...
3236         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
3237         * (genIpush): revived to use pic16 port's stack,
3238         * (genAddrOf): added incomplete case for stack'ed operand,
3239         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
3240         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
3241         can handle multibyte operands,
3242         * src/pic16/glue.c (pic16_printIval*): some debug info added,
3243         * (pic16initialComments): added message for MPLAB compatibility
3244         mode enabled,
3245         * src/pic16/main.h: prototype for pic16_mplab_comp,
3246         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
3247         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
3248         * (_pic16_linkEdit): NEW, handles link stage, transferred here
3249         because of increased complexity of procedure,
3250         * (_process_pragma): stack pragma changed to format 'stack pos len',
3251         emit symbol '_stack_end' to conform with gplink,
3252         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
3253         to search for register,
3254         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
3255         PO_GPR_REGISTER,
3256         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
3257         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
3258         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
3259         case for PO_GPR_REGISTER,
3260         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
3261         dies, the new era is ahead !...
3262         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
3263         pic16_dynInternalRegs,
3264         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
3265         * (pic16_allocDirReg): minor optimizations and bug fixes,
3266         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
3267
3268         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
3269         load stack and frame pointer with address of 'stack_end' symbol
3270
3271 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
3272
3273         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
3274         without source code but only variable initializers
3275
3276 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
3277
3278         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
3279         external are not declared as extern to reduce overhead while linking
3280
3281 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
3282
3283         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
3284
3285 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
3286
3287         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
3288           Yee Keat for the patch
3289         * src/SDCCast.c (decorateType): fixed bug #979599
3290         * src/ds390/gen.h: removed local fReturnSizeDS390
3291         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
3292         * src/ds390/gen.c (genAnd, genOr, genXor),
3293         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
3294
3295 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
3296
3297         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
3298         add relFilesSet to $3, manipulate $2 to handle linking of object
3299         files without source files in command line,
3300         * device/include/pic16 (all headers): added ID location macros,
3301         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
3302         entries for ID location bytes,
3303         * (pic16_assignIdByteValue): NEW,
3304         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
3305         added field dumpcalltree to pic16_options_t,
3306         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
3307         is used instead of pic16_Gstack_base_addr, check if (ifx) before
3308         emitting rFalseIfx label after check_carry label,
3309         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
3310         pic16_emitDIRegs), NEW
3311         * (pic16glue): dump .calltree file when option --calltree found,
3312         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
3313         * (_pic16_genAssemblerPreamble): emit ID locations after
3314         configuration registers,
3315         * (pic16_linkCmd): modifications of the link command,
3316         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
3317         * (pic16_pCodeInitRegisters): don't init stack registers,
3318         * (pic16_findPrevInstruction): fixed bug,
3319         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
3320         bug with immediate registers,
3321         * (buildCallTree): traces stack push and pop,
3322         * (pct2): dump also stack usage for each function,
3323         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
3324         * (pic16_allocDirReg): various modifications,
3325         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
3326         fixed to 1,
3327
3328 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
3329
3330         * src/pic16/pcode.c: removed buggy double colon
3331
3332 2004-07-01 Borut Razem <borut.razem AT siol.net>
3333
3334         * support/scripts/sdcc.nsi: added include/pic16 to setup
3335
3336 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
3337
3338         * device/lib/Makefile.in: fixed bug in target objects-pic16,
3339         * device/lib/pic16/Makefile: prefixed with dash (-) command under
3340         target 'clean',
3341         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
3342         specific command line arguments. Also added sample lkr script
3343         for placing a variable at a specific memory bank.
3344         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
3345         at a specific memory bank,
3346         * (pic16_dump_isection): fixed bug which caused string literals to
3347         be omitted when dumping idata section,
3348         * (pic16_groupRegistersInSection): added code to handle registers
3349         in specific memory banks,
3350         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
3351         public, all references are renamed too,
3352         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
3353         AOP_DPTR2,
3354         * (pic16_storeForReturn): added case to handle when dest is WREG,
3355         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
3356         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
3357         pic16_rel_udata, check to see if that register is marked as being
3358         a member of a specific memory bank,
3359         * (pic16_printIvalCharPtr): added code to add string literals either
3360         to code or the idata sections,
3361         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
3362         also accept the 'udata' pragma,
3363         * src/pic16/main.h: new structure types sectName and sectSym
3364         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
3365         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
3366         * (pic16_findPrevInstruction): fixed, it returned nothing,
3367         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
3368         instruction combinations,
3369         * (pic16_FixRegisterBanking): heavily reorganised,
3370         * (pic16_AnalyzeBanking): if generating banksel directives is
3371         disabled, then don't call FixRegisterBanking at all,
3372         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
3373         completely removed,
3374         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
3375
3376 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
3377
3378         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
3379         Phuah Yee Keat <yk.phuah AT nestac.com>
3380
3381 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
3382
3383         * src/pic16/glue.c (pic16createInterruptVect): function now emits
3384         correctly the IVT even if it is relocated to some other location
3385
3386 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
3387
3388         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
3389         * device/include/pic16/pic18f2220.h: NEW,
3390         * device/lib/pic16/libdev/pic18f2220.c: NEW,
3391         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
3392         * src/pic16/device.c (struct Pics16): added info for 18f2220,
3393         * src/pic16/device.h (struct pic16_options): added ivt_loc and
3394         nodefaultlibs, ivt_loc is the location of the interrupt vector
3395         table, and nodefaultlibs signs that default libraries should not be
3396         linked in link stage,
3397         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
3398         according to --ivt-loc argument,
3399         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
3400         when pragma stack is found,
3401
3402 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3403
3404         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
3405         256 (range check), 257 (do while), 258.a-f (bit banging
3406         f.e. on 3-wire SPI bus)
3407
3408 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3409
3410         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
3411         variables used exclusively within a loop
3412
3413 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
3414
3415         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
3416
3417 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3418
3419         * src/SDCClrange.c (computeClash): fixed bug #971834
3420
3421 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3422
3423         * src/mcs51/gen.c (genCmp): fixed bug #975903
3424         * src/hc08/gen.c (operandsEqu),
3425         * src/ds390/gen.c (operandsEqu),
3426         * src/z80/gen.c (operandsEqu),
3427         * src/pic/gen.c (operandsEqu),
3428         * src/pic16/gen.c (operandsEqu),
3429         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
3430         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
3431
3432 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3433
3434         * src/SDCCcse.c (cseBBlock): fixed bug #966963
3435
3436 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
3437
3438         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
3439         default case in switch statement,
3440         * glue.c (pic16_initPointer): expr is initialised via decoarteType
3441         to eliminate problem with initialisation of pointers, but problem
3442         still exists,
3443         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
3444         * (emitStaticSegment): removed various lines emitting debug info,
3445         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
3446         added processor registers for utilizing EEPROM,
3447         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
3448         configurable and set 8
3449
3450 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
3451
3452         * .version: increased version number to 2.4.2,
3453
3454         Cumulative patch for pic16 port
3455         * src/pic16/device.c: changed scheme to dump initial values for
3456         variables in idata segment, all print_idata* functions were removed,
3457         now the pic16_printIval* will be called,
3458         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
3459         * _pic16_printPointerType, pic16_printPointerType,
3460         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
3461         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
3462         NEW, similar to the respective functions in SDCCglue.c,
3463         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
3464         way, emitting hex bytes,
3465         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
3466
3467 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3468
3469         * src/avr/ralloc.c (serialRegAssign),
3470         * src/xa51/ralloc.c (serialRegAssign),
3471         * src/pic/ralloc.c (serialRegAssign),
3472         * src/pic16/ralloc.c (serialRegAssign),
3473         * src/hc08/ralloc.c (serialRegAssign),
3474         * src/z80/ralloc.c (serialRegAssign),
3475         * src/ds390/ralloc.c (serialRegAssign),
3476         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
3477
3478 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3479
3480         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
3481         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
3482
3483 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
3484
3485         Cumulative patch for pic16 port:
3486         * src/pic16/device.h (typedef PIC16_device) modified fields for
3487         defining microcontrollers,
3488         * src/pic16/device.c: added new info for all devices in Pics16 array,
3489         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
3490         to be optimised out by the pCode optimiser,
3491         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
3492         specially, bug reported by G.M. Gallant,
3493         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
3494         as force'd so that cannot be optimised out by pCode optimiser,
3495         * src/pic16/pcode.c,
3496         * src/pic16/pcodepeeph.c,
3497         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
3498         they are disabled by default, but can be enabled explicit with
3499         command argument --denable-peeps, for testing,
3500         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
3501         --pomit-ivt in COMPILE_FLAGS
3502
3503 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
3504
3505         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
3506           compilation on MSVC
3507
3508 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
3509
3510         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
3511
3512 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3513
3514         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
3515         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
3516
3517 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
3518
3519         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
3520         would only assign 0x300001 register.
3521
3522 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
3523
3524         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
3525         in COMPILE_FLAGS. Thanks to G. Gallant for report.
3526
3527 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3528
3529         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
3530         for ds80c400
3531         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
3532         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
3533         added peephole 254 (left shift), 255 (jump table)
3534
3535 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
3536
3537         * device/lib/Makefile.in: removed comment line with model-pic16,
3538         * (target port-specific-objects-pic16): the libraries and objects
3539         are copied to the build directory form the device/lib/pic16/bin
3540         directory
3541
3542         Cumulative patch concerning pic16 port:
3543         * library directory has been re-organized,
3544         * added support for PIC18F1220,
3545         * added headers and library sources for chips 18f1220,18f6520,
3546         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
3547
3548         * configuration registers setting has changed, now each supported
3549         device has a complete description of the registers it uses,
3550         * all initialisations are moved to idata sections, these section
3551         can be absolute or relocatable,
3552         * fixed initialisation of codespace variables,
3553         * fixed warning about PCLATU and gpsim,
3554         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
3555         * (genAssign): use table reads when assigning from variables in codespace,
3556         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
3557         char/int variables placed in codespace,
3558         * (pic16_emitConfigRegs): NEW, emits a list with configuration
3559         registers set in .asm file, no need for --pomit-config-words anymore,
3560         * (pic16glue): some 8051 legacy segments are commented out
3561         (to be removed completely),
3562         * added support for alternative assembler and linker with --asm=
3563         and --link= command line arguments,
3564         * peepholes are disabled automatically in the port, no need to
3565         specify on command line,
3566         * port supports natively char/int/long multiplication, but converts
3567         all divisions to support functions,
3568         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
3569         to the file set in variable $2,
3570         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
3571         strings in ASCII format and not in hex,
3572         * ralloc.c (serialRegAssign): added a triplet of conditional calls
3573         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
3574         allocate proper register if iCodes aren't temporary,
3575
3576 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
3577
3578         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
3579
3580 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
3581
3582         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
3583         is commented out
3584
3585 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3586
3587         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
3588         computed address is reused
3589         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
3590         multi-byte bitfields
3591
3592 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
3593
3594         * src/z80/gen.c: (genArrayInit): must check for pointers too
3595
3596 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
3597
3598         * support/regression/tests/zeropad.c: never meant to commit the
3599           nestedstruct test: removed, added check for GCC version
3600
3601 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
3602
3603         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
3604         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
3605         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
3606           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
3607           bugs 928906 and 954082 half-empty initializers
3608         * src/SDCCsymt.h,
3609         * src/SDCCsymt.c (getAllocSize): added for above fix
3610         * src/z80/gen.c (genArrayInit): fixed bug 741044
3611         * support/regression/tests/zeropad.c: added tests
3612
3613 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
3614
3615         * src/pic16/device.c (pic16_dump_section): corrected bug which
3616         caused some symbols of the libraries to be misplaced
3617
3618 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
3619
3620         * src/pic16/glue.c,
3621         * src/pic16/ralloc.h,
3622         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
3623         to fix conflict with pic port
3624
3625 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
3626
3627         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
3628         externs configuration variables,
3629         * src/pic16/ralloc.h,
3630         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
3631         prototype in header, commented out some debug messages
3632
3633 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
3634
3635         * src/pic16/glue.c,
3636         * src/pic16/main.c,
3637         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
3638         for gpasm COFF object generation. Thanks to D. Hawkins for
3639         his patch info
3640
3641 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3642
3643         * src/ds390/main.c,
3644         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
3645         Brock for spotting this)
3646         * src/ds390/gen.c (genEndFunction),
3647         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
3648         interrupt handler and critical. Disable push/pop optimizations when
3649         peephole optimizations disabled.
3650
3651 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
3652
3653         Updated pic16 library sources and headers.
3654         * device/lib/pic16/pic18f*/ ,
3655         * device/include/pic16/*.h: modified to handle structured SFR
3656         definitions
3657
3658 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
3659
3660         * src/port.h (PORT structure): added hook initPaths, now each
3661         port can declare its own default search paths,
3662         which can been seen with the --print-search-dirs option,
3663         see pic16 port for example,
3664         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
3665         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
3666         * (doPrintSearchDirs): NEW, replaces in a central manner the
3667         printing of search dirs which was split in set*Paths functions,
3668         * (main): added call to port->initPaths and doPrintSearchDirs,
3669         * src/avr/main.c,
3670         * src/ds390/main.c,
3671         * src/hc08/main.c,
3672         * src/izt/i186.c,
3673         * src/izt/tlcs900h.c,
3674         * src/mcs51/main.c,
3675         * src/pic/main.c,
3676         * src/pic16/main.c: modified port structures to reflect addition of
3677         initPaths hook,
3678
3679         * src/pic16/device.c (regCompare): registers are finally sorted by name,
3680         * (pic16_dump_section): for registers in same address reserve memory once,
3681         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
3682         to no_banksel,
3683         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
3684         result is greater in size than right or left,
3685         * (pic16_genUMult8X8_8): there are some cases where the result can
3686         be 16 bits size, so handle these,
3687         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
3688         * (pic16_outBitC): modified to emit pcodes,
3689         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
3690         or not,
3691         * (genDivOneByte): implemented algorithm to divide 8-bits,
3692         * (genCmp): uncommented goto, but issues still exist,
3693         * (genAnd): fixed a bug with variables >8bits,
3694         * (genPackBits): optimization added that uses BCF/BSF to change a
3695         single bit,
3696         * (genAssign): fixed bug when assigning floating point literals,
3697         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
3698         __sdcc_gsinit_startup label,
3699         * src/pic16/main.c (_pic16_init): removed search directory
3700         initialisations,
3701         * (_pic16_initPaths): NEW, used to initialise search directories,
3702         * (_hasNativeMulFor): support functions for all except char/int
3703         multiplication, and char division,
3704         * (PIC16_port struct): modified entry for native mul support,
3705         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
3706         no_banksel option,
3707         * (buildCallTree): call to register_usage is ifdef'ed out,
3708
3709 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3710
3711         * device/include/string.h: applied Stas Sergeev's patch to make this
3712         header file compatible with the preprocessor -Wundef option
3713         * src/SDCCmain.c (main): abort compilation if preprocessor reports
3714         failure (fixes bug #941458)
3715
3716 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3717
3718         * src/SDCCopt.c (killDeadCode): fixed bug #907733
3719         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
3720         that the variable, not the function, should be static
3721         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
3722         to be consistent with non-literal case
3723
3724 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3725
3726         * src/SDCCast.c (isConformingBody): fixed bug #949967
3727         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
3728         convilong): fixed bug #952086
3729
3730 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3731
3732         * src/SDCCmem.c (allocVariables): fixed bug #955321
3733
3734 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3735
3736         * src/hc08/main.c (_hc08_genAssemblerEnd),
3737         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
3738         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
3739         completely eliminated the use of a temporary file
3740         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
3741         when more than one file linked
3742         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
3743
3744 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3745
3746         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
3747         which fixes bug #543481
3748         * support/regression/tests/bug-751703.c: fixed comments left from a
3749         cut and paste error
3750         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
3751         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
3752         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
3753         scopes
3754         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
3755         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
3756         are now changed to underscores in moduleName
3757
3758 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3759
3760         * as/mcs51/lkmem.c: better fix for bug #954173
3761
3762 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
3763         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3764
3765         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
3766         * device/include/c8051f000.h,
3767         * device/include/c8051f120.h,
3768         * device/include/c8051f300.h,
3769         * device/include/c8051f310.h,
3770         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
3771         PWM16) and detab'ed
3772
3773 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3774
3775         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
3776         and mailing lists, doc'ed --no-peep-comments, removed reference
3777         to knoppix (newest version has no LyX/LaTeX), other minor changes
3778         * src/SDCCglue.c (glue): save 2 bytes stack space with
3779         option --main-return. The ljmp could probably be avoided too
3780
3781 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3782
3783         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
3784
3785 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3786
3787         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
3788         * src/SDCCopt.c (isLocalWithoutDef),
3789         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
3790         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
3791         (credit to Maarten Brock for patch #949363, on which this is based)
3792         * support/regression/tests/bug-751703.c: some test cases of extern used
3793         within inner scopes.
3794
3795 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3796
3797         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
3798         SPEC_STRUCT
3799         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
3800         struct definitions
3801         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
3802         dwWriteLabel): fix to create valid debugger symbols even when
3803         the module name has non-alphanumeric symbols in it
3804         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
3805         when a variable's allocation has been optimized away
3806
3807
3808 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3809
3810         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
3811         * src/hc08/main.c,
3812         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
3813         * src/mcs51/main.c,
3814         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
3815         * src/ds390/main.c,
3816         * src/z80/gen.c (z80_emitDebuggerSymbol),
3817         * src/z80/main.c,
3818         * src/pic/gen.c (pic14_emitDebuggerSymbol),
3819         * src/pic/main.c,
3820         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
3821         * src/pic16/main.c,
3822         * src/avr/gen.c (avr_emitDebuggerSymbol),
3823         * src/avr/main.c,
3824         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
3825         * src/xa51/main.c,
3826         * src/SDCCdebug.c (emitDebuggerSymbol),
3827         * src/SDCCdebug.h,
3828         * src/port.h: added a debugger struct to the port struct. Added a
3829         callback for defining debugger symbols
3830
3831         * src/SDCCast.c (createLabel),
3832         * src/SDCC.y (labeled_statement): mark all compiler generated labels
3833         with isitmp = 1
3834         * src/SDCCicode.h,
3835         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
3836         iCode back to the ast for the function
3837
3838         * src/hc08/ralloc.c (hc08_assignRegisters),
3839         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
3840         unneeded fields from the regs struct.
3841         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
3842         pushReg() & pullReg() functions instead of emitcode()
3843
3844         * src/hc08/gen.c (genLabel, genhc08Code),
3845         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
3846
3847         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
3848         debugger hooks
3849
3850         * src/hc08/gen.c (genEndFunction, genhc08Code),
3851         * src/hc08/gen.h,
3852         * src/mcs51/gen.c (genEndFunction, gen51Code),
3853         * src/mcs51/gen.h,
3854         * src/ds390/gen.c (genEndFunction, gen390Code),
3855         * src/ds390/gen.h,
3856         * src/z80/gen.c (genEndFunction, genZ80Code),
3857         * src/z80/gen.h,
3858         * src/z80/z80.h,
3859         * src/pic/gen.c (genEndFunction, genpic14Code),
3860         * src/pic/gen.h,
3861         * src/pic16/gen.c (genEndFunction, genpic16Code),
3862         * src/pic16/gen.h,
3863         * src/avr/gen.c (genEndFunction, genAVRCode),
3864         * src/avr/gen.h,
3865         * src/xa51/gen.c (genEndFunction, genXA51Code),
3866         * src/xa51/gen.h,
3867         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
3868         specific code to cdbFile.c and out of the backend code generators
3869
3870         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
3871         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
3872         starting address is now 0
3873
3874         * as/hc08/asm.h,
3875         * as/hc08/m08pst.c,
3876         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
3877         assembler directive for DWARF support
3878         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
3879
3880         * src/src.dsp,
3881         * src/Makefile.in,
3882         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
3883
3884 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3885
3886         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
3887         and inappropriate peephole optimization in jump tables
3888
3889 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3890
3891         * as/hc08/m08pst.c,
3892         * src/SDCCglue.c: sdccopt works for the hc08 port now
3893
3894 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
3895
3896         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
3897
3898 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3899
3900         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
3901
3902 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3903
3904         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
3905         rules
3906         * src/SDCCmain.c,
3907         * src/SDCCglobl.h,
3908         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
3909         comments from the peephole optimizer replacement rules
3910         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
3911         symbols
3912         * src/SDCCcse.c (updateSpillLocation),
3913         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
3914         equivalents
3915         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
3916         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
3917         objects far pointers
3918
3919 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3920
3921         * src/SDCCsymt.h: a missing part of my last change
3922         * src/pic/ralloc.c (regTypeNum),
3923         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
3924
3925 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3926
3927         * src/SDCCicode.h,
3928         * src/SDCCicode.c (aggrToPtrDclType),
3929         * src/SDCCptropt.h,
3930         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
3931         ptrPseudoSymConvert),
3932         * src/pic/ralloc.c (regTypeNum),
3933         * src/pic16/ralloc.c (regTypeNum),
3934         * src/hc08/ralloc.c (regTypeNum),
3935         * src/ds390/ralloc.c (regTypeNum),
3936         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
3937         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
3938
3939 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3940
3941         * link/z80/lkmain.c (afile),
3942         * as/hc08/lkmain.c (afile),
3943         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
3944         prevent a pointer problem when a filename has no directory and
3945         no extension specified.
3946
3947 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3948
3949         * link/z80/lkmain.c (afile): allow periods in directory names
3950         * link/z80/lkmain.c (afile),
3951         * as/mcs51/lkmain.c (afile),
3952         * as/hc08/lkmain.c (afile): allow linker script file to have an
3953         extension other than ".lnk"
3954         * link/z80/lklex.c (getfid),
3955         * link/z80/lkmain.c (parse),
3956         * as/mcs51/lklex.c (getfid),
3957         * as/mcs51/lkmain.c (parse),
3958         * as/hc08/lklex.c (getfid),
3959         * as/hc08/lkmain.c (parse): Support comments in the linker script
3960         file on lines by themselves and after filenames
3961
3962 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3963
3964         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
3965
3966 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3967
3968         * src/z80/peeph-z80.def: removed some peephole rules that don't
3969         work with multibyte arithmetic (fixed bug #937126)
3970         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
3971         to registers and not global variables
3972         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
3973         geniCodePreInc, geniCodePostDec, geniCodePreDec,
3974         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
3975         checking for assignments not internally generated (fixed bug #931895)
3976         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
3977         structure member (fixed bug #930072)
3978
3979 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3980
3981         * src/SDCCmain.c (linkEdit),
3982         * src/hc08/main.c (_hc08_parseOptions),
3983         * as/hc08/Makefile.in,
3984         * as/hc08/aslink.h,
3985         * as/hc08/asm.h,
3986         * as/hc08/m08pst.c,
3987         * as/hc08/lkrloc.c (relr, rele),
3988         * as/hc08/lkarea.c (lnkarea)
3989         * as/hc08/lkmain.c (afile, parse),
3990         * as/hc08/lkelf.c: support for ELF output
3991         * as/hc08/lks19.c (s19),
3992         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
3993
3994 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3995
3996         * as/mcs51/lkihx.c: Fixed bug #899105.
3997
3998 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3999
4000         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
4001         .dsp files from Unix to DOS.
4002
4003 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4004
4005         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
4006         function pointers; we have been compliant for several months now.
4007         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
4008         change that was accidently commented out
4009         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
4010         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
4011         bug #922319
4012
4013 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4014
4015         * src/hc08/gen.c: output of all of the internal debugging information
4016         is now controlled by the D() macro; it is disabled by default
4017
4018 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4019
4020         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
4021         harder to keep the same registers during a CAST iCode
4022         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
4023         long via int can be done in a single cast, if the signedness is
4024         correct.
4025         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
4026         putchar() in tinibios.c in ds390's library
4027
4028 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
4029
4030         * src/SDCCast.c (decorateType): fixed bug #898889,
4031         cast result of a literal complement too
4032         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
4033         fixed check for bitfields
4034
4035 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
4036
4037         * src/SDCCicode.c (geniCodeLogic): made it static,
4038         (geniCodeLogicAndOr): added in order to fix bug #905492,
4039         (ast2iCode): fixed bug #905492
4040         * support/regression/tests/bug-905492.c: added
4041         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
4042         (processParms): fixed bug #927659: don't copy parms, this will clear
4043         decorated flag
4044         * support/regression/tests/bug-927659.c: added
4045
4046 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
4047
4048         * src/SDCCast.c (addCast): don't cast float to char
4049         * device/lib/libsdcc.lib: added _memmove
4050
4051 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
4052
4053         * device/lib/large/Makefile: fixed parallel execution by
4054         replacing `make` by `$(MAKE)`
4055
4056 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4057
4058         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
4059         offsets (fixes bug #923936)
4060
4061 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
4062
4063         * device/lib/small/Makefile: fixed parallel execution by
4064         replacing `make` by `$(MAKE)`
4065
4066 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
4067
4068         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
4069
4070 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
4071
4072         * src/pic/gen.c (genCpl): multi-byte complements were not working.
4073         * src/regression/Makefile: Regression test was not running.
4074
4075 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
4076
4077         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
4078         complement if possible
4079         * src/SDCCval.c (valComplement),
4080         * src/SDCCicode.c (operandOperation): fixed complement of literal
4081         * support/regression/tests/onebyte.c (testComplement): added
4082
4083 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
4084
4085         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
4086         return an optimized tree; actually replace actParm with the new tree
4087         * src/SDCCast.h: added some parantheses to remove side effects
4088         * support/regression/tests/bug-920866.c
4089
4090 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
4091         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
4092         Bit operands were not being handled properly in the pic14 port.
4093         (now src/regression/add.c passes again).
4094
4095 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4096
4097         * src/SDCC.y (labeled_statement): case and default no longer require
4098         a following statement (RFE #893037)
4099
4100 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4101
4102         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
4103         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
4104         disabled (fixes bug #916294)
4105         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
4106         "mov a,acc"; patch provided by Lenny Story
4107         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
4108
4109 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4110
4111         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
4112         functions
4113         * src/ds390/gen.c (genFunction, genEndFunction),
4114         * src/ds390/ralloc.c (ds390_assignRegisters),
4115         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
4116         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
4117         pushed if there are parameters passed on the stack. Also, a cleaner
4118         way to decide if r0/r1 should be pushed/popped. (Together they fix
4119         bug #918693)
4120
4121 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4122
4123         * doc/sdccman.lyx,
4124         * device/lib/mcs51/crtpagesfr.asm,
4125         * device/lib/mcs51/crtxinit.asm,
4126         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
4127         to avoid confusion with Si Lab's SFRPAGE register.
4128
4129 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4130
4131         * src/SDCCglue.c (emitMaps): allow public sfr variables
4132         * src/SDCCglue.c (initialComments): include compiler build date
4133         with compiler version and put the timestamp of the generated
4134         assembly file on a serperate line to be less confusing.
4135         * src/port.h: added genInitStartup hook
4136         * src/avr/main.c,
4137         * src/ds390/main.c,
4138         * src/hc08/main.c,
4139         * src/pic/main.c,
4140         * src/pic16/main.c,
4141         * src/xa51/main.c,
4142         * src/z80/main.c: genInitStartup initialize as NULL (default to
4143         historical behaviour)
4144         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
4145         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
4146         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
4147         library instead of hard coding it into the compiler.
4148         * support/regression/ports/mcs51-stack-auto/spec.mk,
4149         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
4150         * device/lib/mcs51/Makefile,
4151         * device/lib/small/Makefile,
4152         * device/lib/large/Makefile,
4153         * device/lib/mcs51/crtpagesfr.asm,
4154         * device/lib/mcs51/crtstart.asm,
4155         * device/lib/mcs51/crtxclear.asm,
4156         * device/lib/mcs51/crtxinit.asm,
4157         * device/lib/mcs51/crtclear.asm,
4158         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
4159         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
4160         and into user configurable files.
4161         * device/lib/clean.mk: clean mcs51 directory too
4162         * support/regression/tests/longlit.c: added static to T1 declaration
4163         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
4164         accesses in the initialization code
4165
4166 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4167
4168         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
4169         OSCTRIMVAL as noted in bug #916008
4170
4171 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4172
4173         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
4174         in loops with multiple exits (reported as incorrect registers
4175         used by Martin Helmling in Sdcc-user list)
4176
4177 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4178
4179         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
4180         made ds390 register extensions look less like error messages
4181
4182 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4183
4184         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
4185         reported by Adam Wozniak in Sdcc-user list
4186
4187 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
4188
4189         * src/SDCCast.c (decorateType): fixed with bug and promotion in
4190         arithmetic optimizations, added debug output
4191
4192 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
4193
4194         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
4195         * sdcc.spec: updated and split sdcc into 3 rpms
4196         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
4197         needed for literals of LEFT_OP and '+'
4198         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
4199         introduced RESULT_TYPE_NOPROM
4200         (geniCodeMultiply): fixed logic for decision if mul is optimized to
4201         left shift
4202         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
4203         limited promotion to int only for '*'
4204         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
4205
4206 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
4207
4208         * src/pic16/gen.c (genSkip),
4209         (genc16bit2lit), (gencjneshort): commented out
4210         (is_LitOp): new helper function, checks operand type
4211         (genCmpEq): rewritten
4212
4213 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
4214
4215         * support/regression/tests/bug-908454.c: added
4216
4217 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
4218
4219         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
4220         * src/SDCCicode.c (usualBinaryConversions): op needs int type
4221         (geniCodeCast): cosmetic, don't preserve bit storage class
4222         (geniCodeLeftShift): added promotion
4223         (geniCodeLogic): fixed regression
4224         * src/SDCCsymt.c (computeTypeOr): accept bits too
4225         (compareType): 2nd part of fix for bug #908454, needed for bitfields
4226
4227 2004-03-07  Borut Razem <borut.razem AT siol.net>
4228
4229         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
4230
4231 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
4232
4233         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
4234         version of pic16_genPackRegisters which does not check if ic is a
4235         CAST operator,
4236         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
4237         function cause string1.c regression test fails
4238
4239 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
4240
4241         * sim/ucsim/configure.in,
4242         * sim/ucsim/configure,
4243         * sim/ucsim/doc/Makefile.in: use docdir
4244         * src/SDCC.y: fixed sbit atrributes
4245         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
4246         * src/SDCCast.c (decorateType): |^& need special promotion handling
4247         * src/SDCCast.h,
4248         * src/SDCCsymt.h: moved definition of RESULT_TYPE
4249         * src/SDCCsymt.h (computeType),
4250         * src/SDCCicode.c: computeType() needs op
4251         * src/SDCCsymt.c (checkTypeSanity),
4252         * doc/sddman.lyx: "plain" bitfields are unsigned
4253         * src/SDCCsymt.c (computeTypeOr): added
4254         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
4255         |^& ops
4256         * src/SDCCval.c (val*): computeType() needs op
4257         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
4258         * support/regression/tests/onebyte.c: added tests for |^&
4259
4260 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
4261
4262         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
4263         for writing icode into asm output.
4264
4265 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
4266
4267         * src/pic16/device.c: added some debug lines enabled
4268         with macro DEBUG_CHECK,
4269         * src/pic16/genarith.c: more debug in genPlus,
4270         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
4271         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
4272         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
4273         * (aopForSym): onStack symbols are re-placed in data memspace,
4274         and onStack flag is cleared,
4275         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
4276         copy temporary pcodeop,
4277         * (genPcall): added warning for not updating PCLATU,
4278         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
4279         always true for pic16 port,
4280         * (genMultOneWord): NEW, supports integer multiplication,
4281         * (genMult): modified to call genMultOneWord,
4282         * (ifxForOp): added warning when return NULL,
4283         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
4284         flag is set before call to operandFromSymbol for implicit
4285         added structures,
4286         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
4287         options.intlong_rent are set by default,
4288         * (_hasNativeMulFor): modified to allow port generation of integer
4289         multiplication,
4290         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
4291         set regtype to REG_SFR for all registers, restricting seting the
4292         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
4293
4294 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4295
4296         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
4297         more than 500 times in the regression tests
4298
4299 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4300
4301         * support/Util/SDCCerr.h,
4302         * support/Util/SDCCerr.c,
4303         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
4304         enumerator_list),
4305         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
4306         for symbol conflicts.
4307         * support/valdiags/tests/enum.c,
4308         * support/valdiags/tests/tentdecl.c,
4309         * support/valdiags/tests/struct.c: expect possible error messages
4310         referring to original symbol definitions.
4311         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
4312         * src/SDCCsymt.h,
4313         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
4314
4315 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
4316
4317         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
4318
4319 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
4320
4321         * src/pic16/ralloc.c (newReg): fixed bug #908929
4322
4323 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4324
4325         * src/ds390/gen.c: added missing #include "main.h"
4326
4327 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
4328
4329         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
4330         checking if symbol is already in set,
4331         * src/pic16/device.h: prototype for checkAddSym,
4332         * src/pic16/gen.c: (_G): added entry interruptvector,
4333         * (assignResultValue): removed some commented out lines,
4334         * (genFunction): check for ISR via sym->type, absolute section for
4335         interrupt code is created via a new pBlock, the goto instruction is
4336         placed now correctly at the interrupt vector position, changed all
4337         references from ivec to _G.interruptvector,
4338         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
4339         is the interrupt is a high priority one, same for return from ISR,
4340         * src/pic16/glue.c: changed all calls of addSetHead for publics and
4341         externs to calls of checkAddSym,
4342         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
4343         pic16_pcode_verbose flag is set,
4344         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
4345         * src/pic16/pcoderegs.c: message about how many registers are saved
4346         will only be emitted if pic16_pcode_verbose flag is set,
4347
4348 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4349
4350         * src/ds390/ralloc.h,
4351         * src/ds390/ralloc.c (ds390_regWithIdx),
4352         * src/ds390/gen.c (emitcode),
4353         * src/ds390/main.h,
4354         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
4355         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
4356         ds390operandCompare, getRegsRead, getRegsWritten,
4357         initializeAsmLineNode): customized instruction size calculation for
4358         ds390, started basis for some register optimizations
4359         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
4360         corresponding assembly output
4361         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
4362         missing push/pop of r0/r1. Optimized push/pops
4363
4364 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4365
4366         * src/mcs51/main.c (instructionSize): fixed ACALL size
4367         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
4368
4369 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
4370
4371         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
4372         the sorting of rlist with NULL elements
4373         * (print_idataType, print_idata): NEW to create idata sections
4374         * src/pic16/device.h: idataSymSet new variable
4375         * src/pic16/gen.c (genFunction): fixed some bugs in string
4376         comparing, improved the absolute section creation for ISRs,
4377         added FSR0L/FSR0H in registers that are saved in an ISR,
4378         * (genInline): fixed the processing of inline snippets,
4379         now they undergo no process by the peephole optimizer
4380         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
4381         are placed in idataSymSet,
4382         * (pic16emitStaticSeg): extern symbols are added in externs,
4383         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
4384         switching when aboslute variables are placed in access bank memory
4385         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
4386         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
4387         commented out with #if,
4388         * (pic16_packRegisters): reintroduce the check for CAST because some
4389         symbols are not correctly handled,
4390         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
4391         pCodeInstruction instead of pCode,
4392         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
4393         pCodeAsmDir definition,
4394         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
4395         directive, then the argument directive is emitted without the leading
4396         tab, hack for inline labels which must be in the first column,
4397         * (compareLabel,pic16_findNextInstruction),
4398         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
4399         * (insertBankSwitch): modified for the new pCodeAsmDir,
4400
4401 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
4402         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
4403
4404         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
4405         instance,
4406         * (pushSide): commented out with #if,
4407         * (assignResultValue): fixed some typos in saving
4408         registers,
4409         * (genPcall): FIXED and sync'ed with genCall,
4410         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
4411         * (genNearPointerGet): fixed to handle some more cases,
4412         implementation scheme via table reads,
4413         * (genConstPointerGet): modified to access code memory correct,
4414         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
4415         and improved to handle some cases
4416         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
4417         instead of "RETLW" for init data
4418         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
4419         not IN_DIRSPACE, work around to reduce bank switching when aboslute
4420         variables are placed in access bank memory (<0x80 and >=0xf80),
4421         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
4422         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
4423         TBLWT_POSTDEC,TBLWT_PREINC
4424         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
4425         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
4426         directives
4427         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
4428         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
4429         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
4430         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
4431
4432 2004-02-29  Borut Razem <borut.razem AT siol.net>
4433
4434         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
4435         support/Util/findme.h, support/Util/system.h: enhance binary relative
4436         search for lib and include by using findProgramPath()
4437
4438 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4439
4440         * src/SDCCpeeph.h,
4441         * src/SDCCpeeph.c (pcDistance),
4442         * src/port.h,
4443         * src/mcs51/ralloc.h,
4444         * src/mcs51/ralloc.c (mcs51_regWithIdx),
4445         * src/mcs51/main.h,
4446         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
4447         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
4448         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
4449         size calculation port specific, started basis for some register
4450         optimizations
4451         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
4452         missing push/pop of r0/r1. Optimized push/pops
4453         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
4454         * device/lib/_modsint.c (_modsint),
4455         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
4456         and stack version so regression tests pass
4457
4458 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
4459
4460         * src/Makefile.in (dep): include SLIBOBJS in dependency check
4461         * src/SDCCast.c (decorateType): catch another small optimization
4462         with '?' operator
4463         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
4464         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
4465         modified to finally use computeType() all over SDCC,
4466         see Feature Request #877103
4467         * src/SDCCval.h: cosmetic
4468         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
4469         valCompare(); regression tested in muldiv.c
4470         * support/regression/tests/muldiv.c (testMod): mod sign follows
4471         dividend only
4472
4473 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
4474
4475         * src/SDCCast.c (decorateType): fixed bug #902362
4476         * doc/INSTALL.txt: fixed install instructions for win32
4477
4478 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
4479
4480         * device/include/Makefile.in (install): fixed by replacing spaces
4481         by tabs
4482         * doc/README.txt,
4483         * doc/INSTALL.txt: updated for release
4484         * doc/sdccman.lyx: added warning for --xstack being buggy
4485
4486 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
4487
4488         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
4489         to eliminate build warnings.
4490         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
4491
4492 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
4493            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
4494
4495         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
4496         removed -penable-stack, added comment for stack pragma, added
4497         warning for not initializing the stack/frame registers, removed
4498         comment at interrupts section
4499
4500         Stack is made permanent, there is no ability to disable stack usage.
4501         * src/pic16/device.h,
4502         * src/pic16/device.c: removed all references to USE_STACK macro,
4503         * src/pic16/device.c (pic16_dump_section): when no elements in
4504         rlist, free rlist before return,
4505         * (pic16_dump_int_registers): NEW, internal registers are a new set
4506         of general purpose registers reused by each function,
4507         * (checkAddReg): returns 1 if registers is added to set,
4508         * (pic16_groupRegistersInSection): when a registers is of type
4509         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
4510         * src/pic16/device.h: memRange and Assigned Memory are deleted,
4511         SRCASECMP macro is moved here from device.c
4512         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
4513         PO_PCLATU, PO_PRODL, PO_PRODH,
4514         * (pic16_pCodeOpType, genMinus,
4515         changed compares to "a" register, with AOP_ACC,
4516         * (pic16_genPlus): fixed some bugs and indented properly,
4517         * (pic16_addSign): changed size to size+offset in the MOVWF
4518         instruction,
4519         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
4520         multiply 8-bit operand by literal, result is 8-bit,
4521         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
4522         multiply 2 8-bit operand, result is 8-bit,
4523         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
4524         genUMult8X*_16,
4525         * src/pic16/gen.c: changed accUse to contain WREG only,
4526         * (pic16_emitcomment): renamed to pic16_emitpcomment,
4527         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
4528         true, do not use immediate addressing any more unless sym is a
4529         pointer in codespace,
4530         * (aopForRemat): do not use immediate addressing when symbol not in
4531         codespace and when symbol's address is requested,
4532         * (aopOp): for-loop in if(sym->accUse) is modified for the new
4533         accUse size (= 1),
4534         * (aopGet): added case for AOP_ACC and don't return "accumulator
4535         bug" but WREG instead,
4536         * (popGetTempReg): pushes contents of temporary register in stack,
4537         * (popReleaseTempReg): pops contents of temporary register from
4538         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
4539         * (pic16_popGet): separated case AOP_ACC to return register WREG
4540         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
4541         or PO_IMMEDIATE and initializes their instance/offset appropriately,
4542         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
4543         the use of immediate pointers to certain cases only.
4544
4545         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
4546         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
4547         * (assignResultValue, genCall, genRet): modified to use the new
4548         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
4549         genPcall is still broken,
4550         * (genFunction): added code to create 'A' type pBlocks when
4551         interrupt functions are generated, code not extensively tested yet,
4552         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
4553         * (genEndFunction): modified so ISRs pop stored registers from stack,
4554         * (genMultOneByte): cleanup,
4555         * (AccRsh): added flag andmask, to and result with appropriate mask,
4556         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
4557         * (genDataPointerGet): fixed and reenabled its use,
4558         * (genNearDataPointerGet): bugs fixed,
4559         * (genDataPointerSet): bugs fixed,
4560         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
4561         pic16_DumpSymbol, pic16_DumpOp,
4562         * src/pic16/genutils.h: function prototypes for the above functions,
4563         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
4564         pointers,
4565         * (pic16emitRegularMap): many many many improvements, but needs a
4566         major cleanup,
4567         * src/pic16/main.c: enable_stack in pic16_options is removed,
4568         * (_pic16_parseOptions): removed command line options -penable-stack,
4569         * (_process_pragma): emit stack symbol only when stack pragma is
4570         processed,
4571         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
4572         redirected to FSR0L/FSR0H pair,
4573         * (pic16_get_op, pic16_get_op2): modifications and improvements,
4574         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
4575         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
4576         for immediates,
4577         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
4578         * (dumpPicOptype): NEW,
4579         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
4580         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
4581         with movff instruction,
4582         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
4583         added pic16_int_regs, some packRegsFor* functions are commented out,
4584         because produce errors,
4585         * src/pic16/NOTES: minor modifications
4586
4587 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4588
4589         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
4590         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
4591         --pack-iram.
4592         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
4593         * as/mcs51/lkaomf51.c: fixed bug #895763
4594
4595 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
4596
4597         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
4598
4599 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4600
4601         * doc/sdccman.lyx: added details about the HC08 storage classes and
4602         interrupts, fixed the register usage info for z80 & gbz80
4603
4604 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
4605
4606         * doc/sdccman.lyx: added more pic16 port documentation
4607         * device/include/pic16/: added header pic18fregs.h
4608
4609 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
4610
4611         * doc/sdccman.lyx: added Vangelis' contribution
4612
4613 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4614
4615         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
4616         extend to the next CALL or PCALL, not just to the next CALL.
4617
4618 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
4619
4620         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
4621
4622 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4623
4624         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
4625         bug #895752 and a better fix for bug #716790
4626
4627 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4628
4629         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
4630
4631 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4632
4633         * doc/sdccman.lyx: minor changes, minor changed
4634
4635 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
4636
4637         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
4638         which can't handle SDCC_NEWONEBYTEOPS,
4639         (geniCodeMultiply): removed conversion from mult to shift for pic14
4640         and pic16
4641
4642 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4643
4644         * src/hc08/gen.h,
4645         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
4646         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
4647         thus fixing bug #895406
4648
4649 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
4650
4651         * device/lib/_modsint.c,
4652         * device/lib/_modslong.c: sign follows divisor only
4653         * src/hc08/gen.c (genMultOneByte): if result size is 1,
4654         signs or signedness can be ignored
4655         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
4656         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
4657         added optimization for IFX,
4658         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
4659         arguments;
4660         reenabled optimization for IFX, which was removed on 2004-01-11
4661         * src/SDCCast.h: added return type IFX
4662         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
4663         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
4664         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
4665         SDCC_OLDONEBYTEOPS selects the old behaviour
4666         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
4667         changed again and commented promotion rule
4668         * src/SDCCval.c (valDiv): promotion no longer necessary
4669         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
4670         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
4671         rewritten
4672         * support/regression/tests/onebyte.c: added
4673
4674 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
4675
4676         * gen.c (genInline): reverted to old code for assemnling inline
4677         code because of bug reported James Chadd
4678
4679 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
4680
4681         * ralloc.h: missing declarations from previous patch,
4682         seems that patch for ralloc.h was never applied, fixed
4683
4684 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
4685            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
4686
4687         * pcode.c,
4688         * pcode.h,
4689         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
4690         indirect addressing. Marked FSR0 as deprecated
4691         * gen.c (pointerCode): commented out, not needed now
4692         (pic16_popGet2p): new MOVFF helper function
4693         (genGenPointerGet),
4694         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
4695         (shiftRLong): removed duplicate debugging info
4696
4697 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4698
4699         * src/ds390/gen.c (genNearPointerGet),
4700         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
4701         optimization with bits, but not bitfields.
4702         * src/ds390/ralloc.c (packRegisters),
4703         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
4704
4705 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
4706
4707         * src/SDCCcse.c (algebraicOpts): copy operands before modification
4708
4709 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4710
4711         * src/SDCCsymt.h,
4712         * src/SDCCicode.c (operandFromSymbol),
4713         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
4714         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
4715         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
4716         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
4717         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
4718         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
4719         bug #892038
4720         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
4721         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
4722         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
4723         * src/SDCCsymt.c (newSymbol),
4724         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
4725         enumerator_list),
4726         * src/SDCCval.h,
4727         * src/SDCCval.c (newiList): fixed bug #885705
4728
4729 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4730
4731         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
4732         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
4733
4734 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4735
4736         * device/include/c8051f120.h,
4737         * device/include/c8051f300.h,
4738         * device/include/c8051f310.h: added/updated header files for Silicon
4739         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
4740         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
4741         in new section Submitting patches
4742
4743 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4744
4745         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
4746         genFarPointerGet, genCodePointerGet, genGenPointerGet,
4747         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
4748         genGenPointerSet),
4749         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
4750         genFarPointerGet, genCodePointerGet, genGenPointerGet,
4751         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
4752         genGenPointerSet),
4753         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
4754         genFarPointerGet, genCodePointerGet, genGenPointerGet,
4755         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
4756         genGenPointerSet),
4757         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
4758         genFarPointerGet, genCodePointerGet, genGenPointerGet,
4759         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
4760         genGenPointerSet): fixed bug #892400
4761         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
4762         to eliminate build warnings.
4763         * src/SDCCast.c (processParms),
4764         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
4765         fixed bug 751859
4766         * support/valdiag/valdiag.py: added GCC to the list of defines active
4767         when compiling with gcc
4768
4769 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4770
4771         * support/Util/SDCCerr.h,
4772         * support/Util/SDCCerr.c,
4773         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
4774         with an incomplete type (fixed bug #883734)
4775         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
4776
4777 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4778
4779         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
4780
4781 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4782
4783         * src/SDCCast.c (decorateType),
4784         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
4785         function pointer implementation
4786         * support/regression/tests/funptrs.c: added tests to verify both forms
4787         of function pointers work correctly. Added tests to verify parameters
4788         are passed in the correct order.
4789
4790 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
4791
4792         * device.c (regCompare): registers are sorted by ascending
4793         address and increasing size,
4794         * main.c (_pic16_finaliseOptions): removed the declaration
4795         of compiler macro MCU. Now a macro of the format pic18fxxxx
4796         will be defined from the command line
4797
4798 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
4799             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
4800
4801         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
4802         PCOP_RLCF was overwritten!
4803         * gen.c (genSkip): commented out calls to pic16_emitcode,
4804         * (genCmpEQ): fixed "long" compares, only high word did get compared,
4805         * (genlshTwo),
4806         * (genRRC): added debugging info,
4807         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
4808         overwritten while shifting,
4809         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
4810         overwritten while shifting,
4811         * (AccLsh),
4812         * (AccRsh),
4813         * (shiftLLeftOrResult),
4814         * (shiftRLeftOrResult),
4815         * (shiftRLong),
4816         * (shiftLLong): Implemented with pic16_emitpcode
4817         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
4818         * (genLeftShift): Fixed bug, operand for shift by variable always
4819         was "and"ed with 0x0f,
4820         * (genLeftShiftLiteral),
4821         * (genrshTwo),
4822         * (genRightShiftLiteral): added debugging info,
4823         * (genrshFour): added comment,
4824         * (genRightShift): determined signedness from operand "left"
4825         instead of "result"
4826
4827 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4828
4829         * src/SDCCicode.c (geniCodeParms),
4830         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
4831         function pointers, fixed function pointer bugs #861242 and #861896
4832
4833 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4834
4835         * device/include/c8051f000.h,
4836         * device/include/c8051f120.h,
4837         * device/include/c8051f300.h: added header files for Silicon
4838         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
4839
4840 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
4841
4842         * src/SDCCast.c (processParams): added new type flow and restructured
4843         (gatherAutoInit): added new type flow
4844         (addCast): cosmetic changes
4845         (getLeftResultType): added new type flow for array indices, patch
4846         provided by Stas, see FR #877103
4847         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
4848         array index patch by Stas
4849         * src/SDCCast.h: added prototype getResultTypeFromType()
4850         * src/SDCCval.h,
4851         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
4852         * src/pic/glue.c (pic14emitStaticSeg),
4853         * src/pic16/glue.c (pic16emitStaticSeg),
4854         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
4855         for initialization of symbols
4856         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
4857         * support/Util/SDCCerr.h:
4858         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
4859         * .version: bumped version number to 2.3.8
4860         * device/include/Makefile.in (install),
4861         * doc/Makefile (install): changed to 'rm `find ...`' construct to
4862         avoid warnings
4863
4864 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
4865
4866         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
4867         Slade Rich fixed an optimization bug
4868         * src/pic/pcodepeep.c,
4869         * src/pic/pcoderegs.c
4870         * doc/Makefile (install): added test for directory
4871
4872 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4873
4874         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
4875         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
4876         * src/pic/ralloc.c (getRegPtr, getRegGpr),
4877         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
4878         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
4879         * as/mcs51/asexpr.c (term),
4880         * as/hc08/asexpr.c (term): fixed bug #887146
4881
4882 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4883
4884         * src/z80/gen.c (genMult): handle single byte result product
4885         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
4886         DUMMY_READ_VOLATILE (fixed bug #886367)
4887
4888 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
4889
4890         * support/regression/tests/libmullong.c: fixed logic, on little endian
4891         hosts we ended without a mullong_wrapper()
4892
4893 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4894
4895         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
4896         virus/worm forged address usage.
4897
4898 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
4899
4900         Fixed promotion, it should be done on AST level:
4901         * src/SDCCast.c (addCast): added promotion to int
4902         (decorateType): updated call to upCast()
4903         * src/SDCCicode.c (geniCodeLeftShift): removed call to
4904         usualUnaryConversions()
4905
4906 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
4907
4908         * support/regression/tests/literalop.c (mulWrapper): Added a
4909         wrapper to remove integer overflow warnings.
4910
4911         * support/regression/tests/float_trans.c: Made work on host.
4912
4913         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
4914         location of sz80.
4915
4916         * support/regression/generate-cases.py (main): Changed from inline
4917         to a main method.
4918
4919         * doc/Makefile (install): Changed to depth first to get rid of
4920         missing directory install warning.
4921
4922         * as/Makefile (install-doc): Made work on Mac.
4923
4924 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
4925
4926         * src/SDCCast.c: added an additional type flow in decorateType() of
4927         opposite direction, see feature request #860006; it's enabled at runtime
4928         by setting the environment variable SDCC_NEWTYPEFLOW
4929         * src/SDCCast.h: changed prototype of decorateType()
4930         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
4931         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
4932         'char' to 'int' can be omitted, if both operands are 'unsigned char';
4933         see feature request #877103
4934         * src/SDCCval.c: updated call of decorateType()
4935         (valBitwise): fixed bug #882876
4936         (valMinus): added promotion
4937         (valLogicAndOr): result is unsigned
4938         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
4939         * src/SDCCsymt.c (computeType),
4940         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
4941         must not cause an unsigned operation
4942         * src/pic/glue (pic14emitRegularMap),
4943         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
4944
4945 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
4946
4947         * src/pic/pcode.c (PCodeID): commented out left over debug code
4948
4949 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
4950
4951         * support/valdiag/tests/overflow.c: added shift tests
4952         * src/pic/device.c,
4953         * src/pic/gen.c,
4954         * src/pic/gen.h,
4955         * src/pic/glue.c,
4956         * src/pic/main.c,
4957         * src/pic/pcode.c,
4958         * src/pic/pcode.h,
4959         * src/pic/pcodepeep.c,
4960         * src/pic/pcoderegs.c,
4961         * src/pic/ralloc.c,
4962         * src/pic/ralloc.h: applied patch from Slade Rich;
4963         added support for multiple code pages and multiple RAM banks on the
4964         PIC 14 port. The ASM files now no longer simply assume all the
4965         code / RAM are in the same page / bank. This means the linker can
4966         safely allocate code/RAM of separate ASM files to different pages/banks.
4967         * doc/sdccman.lyx: added Slade's tips
4968         * src/mcs51/peeph.def: fixed bug #880768
4969
4970 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4971
4972         * src/hc08/ralloc.c (rematStr): fixed bug #879282
4973         * src/SDCCast.c (decorateType): fixed bug #880197
4974
4975 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
4976
4977         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
4978         getopt.h.
4979
4980         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
4981         strtof is not part of C89 and isn't included with Mac OS X.
4982
4983 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4984
4985         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
4986         shiftL2Left2Result): fixed bug #879326
4987         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
4988         (genMultOneByte): fixed bug in signed vs unsigned multiplication
4989         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
4990         address fetch for clr instruction
4991         * device/lib/hc08/_mulint.c: created optimized assembly version
4992         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
4993
4994 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
4995
4996         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
4997         proposed in FR #877103
4998
4999 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
5000
5001         * src/SDCCval.c (cheapestVal): added missing checks
5002         * src/SDCCicode.c (usualBinaryConversions): fixed condition
5003         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
5004
5005 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
5006
5007         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
5008         equal operands
5009
5010 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
5011
5012         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
5013         loaded with the linker search paths (-L arguments) and the libraries
5014         to be linked with the current source (-l arguments). Changes
5015         currently will affect only the pic16 port.
5016         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
5017         include path the port specific paths and port specific libraries,
5018         * gplink command now contains the $3 argument,
5019         * src/pic16/device.h,
5020         * src/pic16/device.c,: structure PIC_device is made public and
5021         renamed to PIC16_device, the same for variable Pics which is renamed
5022         to Pics16. Updated all references to them.
5023         * src/pic16/glue.c (pic16glue): corrected bug with code
5024         initialization which bypassed the variable initializations block.
5025
5026         * device/lib/pic16/Makefile.rules: removed --penable-stack from
5027         COMPILE_FLAGS and added the --nostdinc option
5028
5029 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5030
5031         * device/include/mc68hc908jb8.h: Register defs for another member
5032         of the hc08 family. Contributed by Bjorn Bringert - thanks!
5033
5034 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
5035
5036         Documenting changes from previous commits.
5037         * configure.in (version 1.56),
5038         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
5039         when generating output files to configure the pic16 library,
5040         but now I've commented it out, since gputils aren't installed in the
5041         SF compile farm, so library won't compile
5042
5043         * device/lib/Makefile.in (version 1.56): initially I've added in
5044         target 'all' the prerequestive 'model-pic16' so it compiled the
5045         pic16 library, but now I've commented it out for the same reasons
5046         above,
5047         * added targets 'model-pic16' and 'objects-pic16' to compile the
5048         library
5049         * added target 'port-specific-objects-pic16' to handle the
5050         generated libraries and copy them into the build/ directory
5051         * added target 'clean-intermediate-pic16' to clean intermediate
5052         files into pic16 directory
5053         * in target 'installdirs' added line to create directory pic16 in
5054         the installation path
5055
5056         * device/include/Makefile.in (version 1.11): in target 'install'
5057         added lines to copy all header files to installation path,
5058         * in target 'installdirs' added line create directory for pic16
5059         headers in the installation path
5060
5061 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
5062
5063         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
5064          a function call
5065
5066 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
5067
5068         * configure,
5069         * device/lib/configure.in,
5070         * device/lib/configure: fixed for autoconf 2.57
5071
5072 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5073
5074         * src/z80/main.c (_parseOptions): fixed the portmode= command line
5075         option so that it actually works. Made it specific to the z80, since
5076         the gbz80 doesn't have these kinds of I/O ports.
5077
5078 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5079
5080         * device/include/z180.h,
5081         * device/lib/_memcpy.c,
5082         * device/lib/_memmove.c,
5083         * device/lib/_mulint.c,
5084         * device/lib/ser_ir.c,
5085         * device/lib/ser_ir_cts_rts.c,
5086         * device/lib/_strcmp.c,
5087         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
5088         * src/z80/main.c (_process_pragma): add support for pragmas bank and
5089         portmode; added deprecation warning for bank= and protmode= forms.
5090         Also, guard against buffer overflow.
5091         * src/z80/gen.c (aopGet): generate better code for sfr banked read
5092
5093 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5094
5095         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
5096         changed interrupt vector table generation to only emit declared vectors.
5097         * device/include/Makefile.in: added missing backslash
5098         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
5099
5100 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
5101
5102         Mainly changes to support compilation of the device libraries
5103         * src/pic16/device.c: stack is allocated via symbol and not
5104         via literal number. The symbol is placed in the corresponding
5105         position of the data ram
5106         * (pic16_dump_section): relocatable and absolute uninitialized
5107         data are now emitted in sorted order to reduce section naming,
5108         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
5109         weren't marked as being in the access bank,
5110
5111 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
5112
5113         Added portion of GNU PIC Library under the directory
5114         device/include/pic16 and device/lib/pic16. These files
5115         contain the declarations of SFRs for the PIC18Fxx2 devices.
5116         The directory is initialized via configure from toplevel.
5117
5118 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
5119
5120         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
5121         the spilllocations to be compared correctly
5122
5123 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
5124
5125         * src/SDCCast.c (decorateType): fixed bug introduced today
5126
5127 2004-01-12  Borut Razem <borut.razem AT siol.net>
5128
5129         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
5130         doc/sdccman.lyx: upper case pragmas are deprecated
5131
5132 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
5133
5134         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
5135         in simpler and even better code
5136
5137 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
5138
5139         * src/SDCCicode.c (operandOperation): fixed bug #874819
5140         * src/SDCCast.c (decorateType): fixed
5141         char foo (unsigned long ul) { return ul > 0; }
5142
5143 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5144
5145         * doc/sdccman.lyx: Moved and added some sections, small changes
5146         all over. Telling LaTeX to be less strict with word spacing
5147         to better keep the right margin. Changed some notes about
5148         maintainance of the ports in section 3.2.1 - is it OK like this?
5149
5150 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
5151
5152         SDCC source changes:
5153         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
5154         convilong): modified to inform the pic16 port that builtin functions
5155         are external
5156
5157         PIC16 PORT specific changes:
5158         * src/pic16/device.c pic16_dump_equates() added,
5159         processor registers declared internally by the port are emitted in
5160         the translation as equates,
5161         * src/pic16/gen.c: inline code is passed unprocessed to the
5162         translation,
5163         * (pic16_popGetLit2): fnuction modified to take second operand as
5164         pCodeOp pointer and not as literal,
5165         * (popRegFromIdx): prefixed with pic16_,
5166         * (pic16_popCombine2): modified to receive already allocated pCode
5167         operands,
5168         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
5169         * (genFunction): initializes local stack frame and pushes on stack
5170         all the registers used by this function,
5171         * (genEndFunction): restores all registers from stack and restores
5172         stack frame,
5173         * src/pic16/glue.c (pic16emitRegularMap): various changes and
5174         improvements,
5175         * (pic16glue): changed the program startup sequence,
5176         * added new dbName code 'A' for functions placed in absolute section
5177         * src/pic16/main.c: added function attribute _naked,
5178         * added pragma 'code' to place a fnuction at an absolute address,
5179         * added command line arguments --debug-ralloc and --pcode-verbose,
5180         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
5181         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
5182         * (pic16_newpCodeOpLit2): modified to take the second operand as
5183         pCodeOp pointer,
5184         * (pic16_printpBlock): modified to emit each function in a separate
5185         section,
5186         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
5187         UPPER for immediate operands,
5188         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
5189         instruction,
5190         * src/pic16/peeph.def: all peepholes with movff are commented out,
5191         because there is a problem in the pcode peep optimizer,
5192         * src/pic16/ralloc.c: the register allocator can now reuse local
5193         function symbols for another function. This saves register usage.
5194         * src/pic16/ralloc.h: added flag isLocal in structure regs,
5195
5196         Added file src/pic16/NOTES with information about program writing on
5197         the current port version.
5198
5199 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5200
5201         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
5202         and peephole 252 (array access)
5203
5204 2004-01-09  Borut Razem <borut.razem AT siol.net>
5205
5206         * src/SDCCmain.c : fixed #872250: -l command line defined library
5207           files are scanned before standard library files
5208
5209 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5210
5211         * src/SDCCast.c (decorateType): fixed bug #874046
5212
5213 2004-01-09  Borut Razem <borut.razem AT siol.net>
5214
5215         * support/scripts/sdcc.nsi: remove previous installation
5216
5217 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5218
5219         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
5220         bytes for last interrupt vector (mcs51)
5221         * sdcc.spec: fixed typo
5222
5223 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5224
5225         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
5226         gen51Code): more efficient parameter receive for --model-large
5227         ("bug" #845294)
5228
5229 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5230
5231         * src/ds390/main.c,
5232         * src/z80/main.c: added missed needLinkerScript flags (more than
5233         one port structure defined in these file)
5234         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
5235         bug #795325
5236
5237 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
5238
5239         * src/SDCCmain.c: removed various references to DEFAULT_PORT
5240         * src/port.h: added flag needLinkerScript in port->linker
5241         structure to inform whether to create a .lnk file or not,
5242         * src/avr/main.c,
5243         * src/ds390/main.c,
5244         * src/hc08/main.c,
5245         * src/mcs51/main.c,
5246         * src/pic/main.c,
5247         * src/pic16/main.c,
5248         * src/xa51/main.c,
5249         * src/z80/main.c: changed appropriately to configure
5250         needLinkerScript flag
5251         * src/pic/gen.c,
5252         * src/pic16/gen.c (genAddrOf): fixed bug #863624
5253         * src/pic/glue.c: added variable udata_section_name to
5254         override default uninitialized data segment definition for
5255         devices only with SHAREBANK memory (reported from Erik Epetrich)
5256         * (pic14emitOverlay): modified to emit a commented overlay segment
5257         directive when no overlay data exist
5258         * (picglue): modified to emit uninitialized data segment
5259         according to udata_section_name
5260         * src/pic/main.c (_pic14_parseOptions): added command line
5261         options --udata-section-name=[name] to override default
5262         udata definition name
5263         * modified _linkCmd and _asmCmd to include compiler passed
5264         arguments via -W option
5265         * src/pic16/main.c: added $l in _asmCmd, changed extension for
5266         object file from '.rel' to '.o' in port->linker structure,
5267         changed size of fptr from 2 to 3 in port structure
5268
5269 2004-01-07  Borut Razem <borut.razem AT siol.net>
5270
5271         * support/scripts/sdcc.nsi: update PATH
5272         * support/scripts/sdcc.ico: craeted
5273
5274 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
5275
5276         * device/include/Makefile.in: fix install
5277         * doc/Makefile: fix install
5278
5279 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5280
5281         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
5282         in bug #860505
5283         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
5284         how the function variable allocation summary is displayed; also
5285         include information about variables allocated to the overlay
5286         segment
5287
5288 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5289
5290         * as/mcs51/lkmain.c: Help about -Y option
5291         * as/mcs51/lkarea.c: Fixed gcc warnings
5292
5293 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
5294
5295         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
5296         fixed warning
5297         * support/valdiag/tests/overflow.c: added
5298         * src/SDCCast.c (decorateType),
5299         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
5300         LEFT_OP (left shift)
5301
5302 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5303
5304         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
5305         (default behaviour).
5306
5307 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5308
5309         A python script to validate compiler diagnostic messages. It can be
5310         used to verify that sdcc complains about bad c source code and
5311         gives a good location of the error.
5312         * support/valdiag/Makefile,
5313         * support/valdiag/valdiag.py,
5314         * support/valdiag/tests/*
5315
5316 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5317
5318         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
5319         * src/SDCCsymt.c (newEnumType),
5320         * src/SDCCsymt.h
5321         * support/Util/SDCCerr.c,
5322         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
5323         enum related bugs.
5324         * support/regression/tests/enum.c: added test for enum values that
5325         require at least 2 bytes of storage.
5326
5327 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
5328
5329         * src/common.h: added ifndef/define/endif macros
5330         around the header file.
5331         Bug reported from Jesus Calvino-Fraga
5332
5333 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
5334
5335         * sdcc.spec: updated
5336         * device/include/Makefile.in: don't install CVS directories
5337         * device/lib/Makefile.in: added removal of CVS directories after install
5338         * doc/Makefile: fixed install, added local_icons
5339         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
5340         * src/mcs51/gen.c (genRightShift): fixed bug #870788
5341         * src/ds390/gen.c (genRightShift): fixed bug #870788
5342         * src/SDCCast.c (decorateType): fixed bug #870781
5343
5344 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
5345
5346         PIC16 port related changes:
5347         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
5348         added variable stackPos,
5349
5350         * gen.c: genCall, assignResultValue: added support for
5351         pushing/retrieving function parameters to/from stack,
5352         genFunction,genEndFunction: setup stack frame for the
5353         generated function,
5354         genAddrOf: will be changed according to bug 863624
5355
5356         * added files genutils.c and genutils.h which contain gen*
5357         debugged and optimised functions extracted from gen.c
5358
5359         * glue.c: added variable 'externs' which holds extern symbols,
5360         pic16emitRegularMap: is modified to properly handle relocatable
5361          symbols under the new scheme,
5362         pic16createInterruptVect: is modified
5363         pic16printPublics: is modified to emit 'global' assembler directives,
5364         added pic16_printExterns to print extern symbols,
5365         pic16glue: initializes stack/frame pointer in the beginning of
5366         the assembly output. Temporary hack, will be corrected later,
5367         because gplink yet does not support stack and SDCC does not
5368         yet support a type of crt0.o object to create the final binary.
5369
5370         * Removed many lines that contain 8051 legacy code.
5371         * The code is finally placed under a 'code' directive.
5372         * Added port specific options.
5373
5374         * _process_pragma: simplified since now we do not need *special*
5375         include file to define SFR registers. But a separate header
5376         will be needed. This will be developed later.
5377         * _pic16_parseOptions: added, parses port specific options:
5378         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
5379         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
5380         --preplace-udata-with=
5381
5382         * _pic16_setDefaultOptions: modified to initialize section names,
5383         but hack is temporarly out of order since it needs improvement.
5384         * _pic16_genAssemblerPreamble: configuration words are emitted by
5385         their address instead of their name. This part is incomplete and
5386         supports only the 18Fxx2 devices. Other devices will emit an error
5387         during assembly since they do not contain the same set of config
5388         registers
5389         * _pic16_genIVT: is modified,
5390
5391         * pcode.c: added definitions for some hardware registers that are needed
5392         for stack support
5393         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
5394         All PCI entries are updated. Now LFSR is supported.
5395         * Removed pic16_pciTRIS is mentioned by mdubuc in source
5396         * added pic16_newpCodeOpLit2 to support instructions with
5397         two literal arguments
5398         * pic16_pCode2str: corrected code that emits assembler instructions
5399         with two literal operands and those that have an access bit modifier
5400         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
5401         this fixes a bug which caused some labels to be lost, when an
5402         assembler directive was added, i.e. banksel,
5403         * pic16_FixRegisterBanking: improved logic that causes the insertion
5404         of bank switching,
5405         * InlineFunction: functions that are called once, are not any more
5406         inlined. This can be a port option in the future,
5407
5408         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
5409
5410         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
5411         hold the corresponding uninitialized symbols,
5412         * pic16_allocProcessorRegister: registers have explicit marked the
5413         accessBank field,
5414         * pic16_allocInternalRegister: registers are explicit marked as
5415         not used,
5416         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
5417         processing list, so bit registers were lost,
5418         *
5419
5420         * ralloc.h: added field 'accessBank' and original symbol operand
5421         in register definition,
5422         * removed the field isMapped from register definition,
5423
5424         ** Several functions have been removed from various sources:
5425         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
5426         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
5427         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
5428         pic16_assignRelocatableRegisters
5429
5430         ** others have been introduced:
5431         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
5432         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
5433
5434 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
5435
5436         * support/scripts/inc2h.pl: changed definition of BIT_AT
5437         to emit 'sbit at' instead of 'bit at'. This was a request.
5438
5439         PIC16 port related preliminary changes:
5440         * gen.c: prefixed function popRegFromString with
5441         pic16_ and all references to it corrected
5442         * pcode.c: all pic16_pc_* hardware registers prefixed
5443         with underscore (_),
5444         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
5445         * ralloc.c: newReg(): when register is REG_SFR then
5446         set address to rIdx,
5447         pic16_allocProcessorRegister(): marks register wasUsed=0
5448         pic16_writeUsedRegs(): added a call to assign processor
5449         registers via pic16_assignFixedRegisters
5450
5451 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5452
5453         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
5454         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
5455         variables in unused register banks.  Also the SSEG is placed
5456         wherever there is enough space for it, and IDATA can be anywhere
5457         in internal RAM.  For now compile using -Wl-Y[stack_size].
5458         The mem file is different for this option as well, since it
5459         makes no sense of talking about DSEG lenght.
5460
5461 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
5462
5463         * src/SDCClrange.c: fixed bug 869095 that caused segfault
5464         in certain cases, e.g. when ROM assignment, patch provided
5465         from Albert den Haan.
5466
5467 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
5468
5469         Many signedness and type propagation fixes:
5470         * src/SDCCicode.c: made geniCodeCast() static
5471         replaced SPEC_ by IS_ (cosmetic)
5472         (operandOperation): fixed div and mod operation
5473         (usualBinaryConversions): added support for promotion of char
5474         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
5475         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
5476         (geniCodeAdd): an array index will stay unsigned, even if promoted
5477         from char to int
5478         (geniCodeArray): ditto
5479         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
5480         * src/SDCCsymt.c (computeType): added more support for char;
5481         promotion of char is selectable by promoteCharToInt, fixed signedness
5482         for all cases
5483         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
5484         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
5485         * src/SDCCval (val*): replaced signedness calculation by
5486         computeType()
5487         rearranged if-branches (cosmetic)
5488         (valShift): added warning W_SHIFT_CHANGED
5489         (valCompare): fixed problem with different types
5490         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
5491         * support/regression/tests/literalop.c: added many cases
5492         * support/regression/tests/ast_constant_folding.c: changed finally to
5493         'unsigned int'
5494         * .version: new year, new version: 2.3.7
5495         * src/SDCCmain.c (main): applied patch #866468
5496         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
5497         provided by Scott Bronson
5498         * doc/sdccman.lyx: updated documentation for sdcdb
5499         updated and added chapter tips
5500
5501 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5502
5503         * src/SDCCsymt.h: missing from yesterday's commits
5504
5505 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5506
5507         * src/SDCC.y (struct_or_union_specifier),
5508         * support/Util/SDCCerr.c,
5509         * support/Util/SDCCerr.h: verify that struct & union tags are used
5510         as declared.
5511
5512 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5513
5514         * src/SDCCglobl.h: missing from yesterday's commits
5515
5516 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5517
5518         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
5519         sft_attributes, struct_declaration, parameter_declaration,
5520         type_name, start_block, declaration_list),
5521         * src/SDCC.lex (check_type): support redefinition of typedef names
5522
5523 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5524
5525         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
5526         aligned xdata arrays. Erik helped me with the if clause.
5527
5528 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5529
5530         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
5531         warning
5532
5533 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5534
5535         * src/SDCCast.h,
5536         * src/SDCCast.c (newAst_),
5537         * src/SDCCicode.h,
5538         * src/SDCCicode.c (ast2iCode, newiCode),
5539         * src/SDCCglobl.h,
5540         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
5541         expr, statement, expression_statement, selection_statement,
5542         iteration_statement, expr_opt, jump_statement): foundation for tracking
5543         sequence points
5544         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
5545         point code too)
5546
5547 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5548
5549         * support/Util/SDCCerr.c,
5550         * src/SDCCast.h,
5551         * src/SDCCast.c (createCase, createDefault, decorateType),
5552         * src/SDCClabel.c (labelUnreach),
5553         * src/SDCC.y (labeled_statement, jump_statement): More improvements
5554         to error messages.
5555         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
5556         (with thanks to Stas Sergeev)
5557         * device/include/time.h,
5558         * device/lib/time.c (CheckTime): suppress unreachable code warning
5559
5560 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5561
5562         * src/SDCCast.c (createIvalCharPtr),
5563         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
5564         bug #753752)
5565         * support/regression/tests/nullstring.c: tests for these two bugs
5566
5567 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5568
5569         * support/Util/SDCCerr.h,
5570         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
5571         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
5572         about storage class and 'at' used inside struct or union
5573         * src/SDCCBBlock.c (iCodeFromeBBlock),
5574         * src/SDCCcse.c (ifxOptimize),
5575         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
5576         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
5577         printIval, emitStaticSeg, emitOverlay),
5578         * src/SDCClabel.c (deleteIfx),
5579         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
5580         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
5581         gatherAutoInit, processParms),
5582         * support/Util/SDCCerr.h,
5583         * support/Util/SDCCerr.c (werrorfl): Support for better error location
5584         reporting for post-parse errors.
5585
5586 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5587
5588         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
5589         implicit casts via union; they don't work on big endian systems
5590         (possible fix for bug #861138)
5591
5592 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5593
5594         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
5595         * src/mcs51/main.c: fixed the fix for bug #737001
5596
5597 2003-12-15  Borut Razem <borut.razem AT siol.net>
5598
5599         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
5600
5601 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5602
5603         * support/makebin/makebin.c: put output in binary mode
5604
5605 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5606
5607         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
5608         xdata and data memory on startup. Set the environment variable
5609         SDCC_NOGENRAMCLEAR to disable this.
5610         * src/mcs51/peephole.def,
5611         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
5612         (allows non-interrupt and interrupt code to safely compete for a resource
5613         without the non-interrupt code having to disable interrupts)
5614
5615 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5616
5617         * src/SDCCicode.c (geniCodeAdd),
5618         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
5619         with valFromType if type might be a pointer and host is big endian).
5620         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
5621         types, not just integer types.
5622         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
5623         multiply defined with mismatching "at" address.
5624
5625 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5626
5627         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
5628         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
5629         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
5630         with embedded nulls (fixed bug #753752)
5631
5632 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5633
5634         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
5635         Apparently this did not see much testing (endless loop)
5636
5637 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5638
5639         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
5640
5641 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5642
5643         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
5644         gracefully handle NULL memmap pointers
5645
5646 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5647
5648         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
5649         instead of deleting the iCode when an operand is volatile
5650         * src/z80/gen.c (genDummyRead),
5651         * src/mcs51/gen.c (genDummyRead),
5652         * src/ds390/gen.c (genDummyRead),
5653         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
5654         not just IC_RIGHT
5655         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
5656         * src/SDCC.y: fixed bug #850420
5657
5658 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5659
5660         Applied z80 i/o port patch from Peter Townson and fixed some operators
5661         to better handle operands in A register.
5662         * device/include/z180.h
5663         * src/SDCC.y
5664         * src/SDCCglue.c
5665         * src/z80/gen.c
5666         * src/z80/gen.h
5667         * src/z80/main.c
5668         * src/z80/peeph-z80.def
5669         * src/z80/peeph.def
5670         * src/z80/z80.h
5671
5672 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5673
5674         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
5675
5676 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5677
5678         * device/lib/hc08/_mullong.c: Removed extra #endif
5679
5680 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5681
5682         * sim/ucsim/hc08.src/inst.cc,
5683         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
5684         carries from x to h
5685         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
5686         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
5687         * device/include/stdarg.h: fixed varargs for hc08
5688         * device/lib/Makefile.in,
5689         * device/lib/hc08/Makefile,
5690         * device/lib/hc08/_mulint.c,
5691         * device/lib/hc08/_mullong.c: fixed some endian problems
5692
5693 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5694
5695         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
5696         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
5697         * device/lib/_gptrget.c,
5698         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
5699
5700 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5701
5702         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
5703         * src/SDCCast.c (astErrors): fixed bug #846007
5704         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
5705
5706 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5707
5708         * src/SDCCast.c (decorateType): disabled a transformation I added in
5709         revision 1.188 (access to fields of a structure at an absolute address);
5710         it breaks with bitfields, extern declarations, and gcse analysis.
5711         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
5712         could be assigned through a pointer, so don't complain.
5713         * src/SDCCast.c (astErrors),
5714         * src/SDCCast.h,
5715         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
5716
5717 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
5718
5719         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
5720         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
5721         output of __config directives, since gpasm now supports them
5722         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
5723         pre-processor macro, i.e. -DMCU=p18f452
5724         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
5725         and modified to handle 'cast' icode similarly to '=' icode
5726         * src/pic16/device.h (typedef struct PIC_device): added field
5727         'extMIface' to indicate that chip has external memory interface
5728         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
5729         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
5730         18F8720
5731
5732 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5733
5734         * src/SDCC.y (pointer): fixed bug #846006
5735         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
5736         * src/SDCCast.c (decorateType): fixed bug #846009
5737         * src/ds390/peeph.def,
5738         * src/ds390/gen.c (genAnd, genOr),
5739         * src/mcs51/peeph.def,
5740         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
5741
5742 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5743
5744         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
5745         * src/SDCCdflow.c
5746         * src/SDCCcse.c
5747         * src/SDCCcse.h
5748         * src/SDCCBBlock.h
5749         * src/SDCCBBlock.c
5750
5751 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
5752
5753         fixed bug #845089
5754         * src/SDCCbitv.h,
5755         * src/SDCCbitv.c: added function to free a bitvector
5756         * src/SDCClrange.h,
5757         * src/SDCClrange.c: added function to recompute the liveranges
5758         * src/avr/ralloc.c,
5759         * src/ds390/ralloc.c,
5760         * src/hc08/ralloc.c,
5761         * src/mcs51/ralloc.c,
5762         * src/pic/ralloc.c,
5763         * src/pic16/ralloc.c,
5764         * src/xa51/ralloc.c,
5765         * src/z80/ralloc.c: recompute the liveranges after register packing
5766
5767 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
5768
5769         * src/SDCCloop.c (newInduction): fixed bug #845630
5770
5771 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5772
5773         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
5774         inadvertantly left behind from my 2003-11-12 change
5775
5776 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5777
5778         Updated headers I neglected to commit yesterday.
5779         * src/SDCClrange.h,
5780         * src/SDCCicode.h
5781
5782 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5783
5784         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
5785         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
5786         * src/SDCCopt.c (eBBlockFromiCode),
5787         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
5788         the creation of the key hash table from the sequencing so it can be used
5789         earlier (for some GCSE bug fixes still pending)
5790
5791 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5792
5793         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
5794         * support/regression/tests/addsub.c: testing genPlus shortcut
5795
5796 2003-11-15  Borut Razem <borut.razem AT siol.net>
5797
5798         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
5799
5800 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5801
5802         * src/SDCCcse.c (cseBBlock): fixed bug #527779
5803         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
5804         ordering is immaterial.
5805         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
5806
5807 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5808
5809         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
5810         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
5811         (SIGSEV) of bug #840381
5812         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
5813         unlink new file before rename if new and old filenames are the same)
5814
5815 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5816
5817         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
5818         uninitialized variables) for the mcs51. Set environment variable
5819         SDCC_GENRAMCLEAR to test.
5820         xdata initialization slightly shorter
5821
5822 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5823
5824         * src/SDCCsymt.h,
5825         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
5826         #838241 & 780691 (basicly the same bug)
5827         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
5828         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
5829
5830 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
5831
5832         * src/SDCCmain.c (linkEdit): "fix" #834252
5833
5834 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5835
5836         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
5837         * src/SDCCast.h,
5838         * src/SDCC.y: fixed bug #819403
5839
5840 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5841
5842         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
5843         the reentrant attribute.
5844         * src/hc08/gen.c (genPackBits): added missing stack readjustment
5845         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
5846         simulation
5847         * src/SDCCast.c (decorateType): fixed bug with storage class not being
5848         updated during pointer dereference; f.e. ~(((char *)1)*) was being
5849         erroneously reduced to a literal.
5850         * src/hc08/ralloc.c (packRegisters, rematStr),
5851         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
5852         some cases
5853
5854 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5855
5856         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
5857         * doc/sdccman.lyx: changed from 'article' to 'book'
5858         * doc/Makefile: readded test_suite_spec and cdbfileformat
5859
5860 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
5861
5862         * device/include/stdlib.h: include malloc.h to comply with ANSI
5863         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
5864
5865 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5866
5867         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
5868         * doc/clean.mk: also remove *.out files
5869         * doc/sdccman.lyx: some additions, larger top/bottom margins
5870
5871 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5872
5873         * src/SDCC.y: fixed bug #837365
5874         * support/regression/tests/bitopcse.c
5875         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
5876         a symbol (might be valop instead)
5877         * device/lib/Makefile.in: added errno.c to HC08SOURCES
5878         * device/lib/clean.mk: added hc08 to the cleaning list
5879
5880 2003-11-04  Borut Razem <borut.razem AT siol.net>
5881
5882         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
5883           made 2003-11-04
5884         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
5885           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
5886           malloc is declared in standard stdlib.h
5887
5888 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5889
5890         * device/lib/hc08/Makefile: need to clean .rel not .o files
5891         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
5892
5893 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5894
5895         * src/port.h,
5896         * src/hc08/main.c,
5897         * src/mcs51/main.c,
5898         * src/ds390/main.c,
5899         * src/z80/main.c,
5900         * src/avr/main.c,
5901         * src/pic/main.c,
5902         * src/pic16/main.c,
5903         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
5904         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
5905         tests (which uses the port's oclsExpense function)
5906         * src/SDCC.y,
5907         * src/SDCCast.c,
5908         * src/SDCCicode.c,
5909         * src/hc08/gen.c,
5910         * src/ds390/gen.c,
5911         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
5912
5913 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5914
5915         * src/SDCCcse.c (ifxOptimize),
5916         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
5917         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
5918         deleting the IFX iCode.
5919         * src/hc08/ralloc.c: reduced unneeded slocs
5920         * src/hc08/gen.c: fixed bug in asmopToBoolean
5921
5922 2003-11-04  Borut Razem <borut.razem AT siol.net>
5923
5924         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
5925           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
5926           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
5927           transferred to configure
5928
5929 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
5930
5931         Use headers defined in the C[++] standards:
5932         * sim/ucsim/gui.src/serio.src/fileio.cc
5933         * sim/ucsim/gui.src/serio.src/frontend.cc
5934         * sim/ucsim/gui.src/serio.src/main.cc
5935         * sim/ucsim/gui.src/serio.src/posix_signal.cc
5936         * support/Util/NewAlloc.c
5937         * as/hc08/lklibr.c
5938         * as/mcs51/lklibr.c
5939         * as/z80/aslist.c
5940         * as/z80/assym.c
5941
5942 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5943
5944         * Added MSVC projects for hc08 assembler and linker:
5945         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
5946         /as/hc08/link_hc08.dsp
5947
5948 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
5949
5950         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
5951
5952 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
5953
5954         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
5955
5956 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5957
5958         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
5959
5960 2003-10-31  Borut Razem <borut.razem AT siol.net>
5961
5962         * support/cpp2/cpplib.h,
5963           support/cpp2/cpplib.c,
5964           support/cpp2/cpplex.c,
5965           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
5966           to switch _asm block preprocessing on / off. Default is
5967           #pragma preproc_asm +
5968
5969 2003-10-31  Borut Razem <borut.razem AT siol.net>
5970
5971         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
5972           when outputting comment blocks (when executed with -C option) and
5973           _asm (SDCPP specific) blocks
5974
5975 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5976
5977         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
5978
5979 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
5980
5981         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
5982
5983 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
5984
5985         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
5986         * src/SDCCast.c (decorateType): fixed bug #832664
5987
5988 2003-10-31  Borut Razem <borut.razem AT siol.net>
5989
5990         * support\cpp2\cpplex.c: fixed for SDCPP:
5991           comments(when executed with -C option) and _asm blocks
5992           were included even if they where in skipped #if block.
5993           Applied solution from GCC cpp 3.3.2
5994
5995 2003-10-31  Borut Razem <borut.razem AT siol.net>
5996
5997         * src/SDCC.lex: sdcc now understands both formats:
5998           '# <line_number> <file_name>' and
5999           '#line <line_number> <file_name>'
6000         * support/cpp2/cppmain.c: sdcpp now generates the standard
6001           '# <line_number> <file_name>' instead of former
6002           '#line <line_number> <file_name>'
6003
6004 2003-10-30  Borut Razem <borut.razem AT siol.net>
6005
6006         * support/cpp2/cpphash.h,
6007         * support/cpp2/cpplib.h
6008         * support/cpp2/cpplex.c,
6009         * support/cpp2/cppmain.c,
6010         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
6011
6012 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6013
6014         Fixed a number of problems revealed by bug #827883.
6015         * src/SDCCloop.c (loopInvariants): Spill location of the
6016         result operand should be recomputed if extracted from
6017         a loop. Also, don't extract assignments of an iTemp
6018         from a literal.
6019         * src/SDCCast.c (isConformingBody): loop reversal should
6020         not occur if the control variable is involved with a
6021         relational operator.
6022
6023 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
6024
6025         * .version: bumped to 2.3.6 to reflect the big improvements
6026         made by Erik and Klaus. Thanks!
6027
6028 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
6029
6030         Replaced the livrange code.
6031         * src/SDCClrange.c: added new LR code
6032         * src/SDCCloop.c,
6033         * src/SDCCBBlock.h: removed remainig parts from old LR code
6034         * src/ds390/ralloc.c,
6035         * src/ds390/gen.c: minor fixes to make it work with new code
6036
6037 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6038
6039         * as/hc08/asm.h,
6040         * as/hc08/lkrloc.c,
6041         * src/hc08/gen.c,
6042         * src/hc08/ralloc.c: Fix various warnings related to the hc08
6043         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
6044         (tweaked fix for bug #818696)
6045
6046 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6047
6048         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
6049
6050 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6051
6052         * src/SDCCmain.c,
6053         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
6054         * src/mcs51/gen.c (gencjneshort),
6055         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
6056         more efficient (per Scott Bronson's suggestion)
6057
6058 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6059
6060         Extended the semantics of the critical keyword to include
6061         individual statements. See RFE #827755 and #799831
6062         * src/SDCC.y
6063         * src/SDCCicode.c
6064         * src/SDCCopt.c
6065         * src/SDCCast.c
6066         * support/Util/SDCCerr.c
6067         * support/Util/SDCCerr.h
6068         * src/mcs51/gen.c
6069         * src/ds390/gen.c
6070         * src/hc08/gen.c
6071
6072 2003-10-19  Borut Razem <borut.razem AT siol.net>
6073
6074         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
6075
6076 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6077
6078         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
6079         Fixed bug #818696
6080         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
6081         and predecrement operand is displayed
6082
6083 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
6084
6085         * src/SDCCval.c (valMinus): fixed bug #826041
6086
6087 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6088
6089         Some hc08 related updates that I missed earlier
6090         * sim/ucsim/stypes.h
6091         * support/regression/ports/hc08/spec.mk
6092
6093 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6094
6095         New target "hc08" for the Motorola 68hc08 family of micros
6096
6097         * configure
6098         * configure.in
6099         * Makefile
6100         * src/hc08/*
6101         * src/SDCCmain.c
6102         * src/port.h
6103         * sim/ucsim/hc08.src/*
6104         * sim/ucsim/configure.in
6105         * src/ucsim/configure
6106         * sim/ucsim/packages_in.mk
6107         * as/hc08/*
6108         * as/Makefile
6109         * device/include/mc68hc908qy.h
6110         * device/lib/hc08/*
6111         * device/lib/Makefile.in
6112         * support/regression/ports/hc08/*
6113         * support/regression/Makefile
6114
6115 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6116
6117         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
6118         regression test
6119         * src/ds390/gen.c (genCast): fixed bug #821957
6120
6121 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
6122
6123         * device/lib/logf.c: "fixed" overlay bug
6124         * support/regression/ports/host/spec.mk: added m library
6125         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
6126         * support/regression/tests/float_trans: added (for Eric)
6127
6128 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
6129
6130         * src/mcs51/gen.c (genCpl): fixed bug
6131         http://sf.net/mailarchive/message.php?msg_id=6263915
6132
6133 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
6134
6135         * src/SDCCast.c (decorateType): added extended constant folding
6136         * src/SDCCsymt.c (computeType): cleanup
6137         * src/SDCCval.c (valShift): minor optimization
6138         * support/regression/tests/ast_constant_folding.c: added
6139
6140 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6141
6142         * src/SDCCmain.c: removed some unintended changes
6143
6144 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6145
6146         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
6147         * src/z80/gen.c: fixed part of bug #817589
6148         * src/SDCCsymt.c (checkFunction): fixed bug #817895
6149
6150 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
6151
6152         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
6153         * src/SDCCcflow.c
6154         * src/SDCCcse.c
6155         * src/SDCCdflow.c
6156         * src/SDCClabel.c
6157         * src/SDCClrange.c
6158         * src/SDCCmem.c
6159         * src/SDCCopt.c
6160         * src/SDCCpeeph.c
6161         * src/SDCCset.c
6162         * src/avr/ralloc.c
6163         * src/ds390/ralloc.c
6164         * src/izt/ralloc.c
6165         * src/mcs51/ralloc.c
6166         * src/pic/ralloc.c
6167         * src/pic16/ralloc.c
6168         * src/xa51/ralloc.c
6169         * src/z80/ralloc.c
6170         * src/z80/gen.c: removed unused label "release:"
6171
6172 2003-10-06  Borut Razem <borut.razem AT siol.net>
6173
6174         * src/SDCC.lex: removed definition of unused variables
6175           save_optimize and save_options
6176
6177 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
6178
6179         * clean.mk: removed '=' in "-maxdepth=1"
6180         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
6181         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
6182
6183 2003-10-06  Borut Razem <borut.razem AT siol.net>
6184
6185         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
6186           my_unput() replaced by unput()
6187
6188 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
6189
6190         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
6191         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
6192         type-punned pointer will break strict-aliasing rules"
6193         Old LR behaviour is again default; Klaus' LR can be choosen by
6194         defining the environment variable LRKLAUS
6195         * src/SDCCBBlock.h
6196         * src/SDCCloop.c
6197         * src/SDCClrange.c
6198         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
6199         * clean.mk: fixed removal of files in bin/CVS/
6200         * device/lib/clean.mk: fixed removal of directories small and large
6201         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
6202         * src/SDCCicode.c,
6203         * src/SDCCval.c: removed superflous test for pedantic
6204
6205 2003-10-05  Borut Razem <borut.razem AT siol.net>
6206
6207         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
6208           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
6209           message "unmatched #pragma SAVE and #pragma RESTORE"
6210
6211 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6212
6213         * doc/sdccman.lyx: various additions and updates (interrupts, inline
6214           assembly, critical functions, atomic, nojtbound)
6215
6216 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
6217
6218         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
6219         * src/SDCCBBlock.h
6220         * src/SDCCloop.c
6221         * src/SDCCloop.h
6222         * src/SDCClrange.c
6223
6224 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6225
6226         * src/z80/gen.h,
6227         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
6228         * src/mcs51/gen.h
6229         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
6230         * src/ds390/gen.h
6231         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
6232         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
6233         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
6234
6235 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6236
6237         * src/z80/gen.c (genRet): fixed bug #524753
6238         * src/z80/gen.c (genCast): fixed internal error on cast from
6239         pointer to long
6240         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
6241         fix for bug #477835 to the z80
6242         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
6243         for tracking iCodes in the peephole optimizer for z80
6244
6245 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6246
6247         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
6248         the other part of bug #814548
6249         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
6250
6251 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
6252
6253         * src/SDCCcse.c: fixed part of bug #814548
6254
6255 2003-09-28  Borut Razem <borut.razem AT siol.net>
6256
6257         * src/asm.c: rewrite of printILine() to use temporary file instead
6258           a pipe
6259         * src/xa51/main.c: commented out declaration of int rewinds
6260
6261 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6262
6263         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
6264
6265 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6266
6267         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
6268         * src/asm.c (printILine): Fixed bug #811015
6269
6270 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6271
6272         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
6273         freeing.
6274
6275 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6276
6277         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
6278         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
6279         to correctly handle general case of AOP_PAIRPTR
6280         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
6281
6282 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6283
6284         * src/mcs51/ralloc.c (fillGaps),
6285         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
6286         register positioning bug)
6287
6288 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
6289
6290         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
6291
6292 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6293
6294         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
6295         genCodePointerGet, genGenPointerGet, genFarPointerSet,
6296         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
6297         (ralloc doesn't intentionally do this now, but perhaps later)
6298         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
6299         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
6300         register positioning bugs (Fixed bug #762602 and #795325)
6301         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
6302         (Fixed bug #808779)
6303         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
6304         lines that --i-code-in-asm generates
6305
6306 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6307
6308         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
6309         trying to fclose a FILE* that was already closed.
6310
6311 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6312
6313         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
6314         of const struct should be treated as if const themselves)
6315
6316 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
6317
6318         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
6319
6320 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6321
6322         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
6323         Unix (/n) and DOS (/r/n) line terminations.
6324
6325 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6326
6327         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
6328         bug #613775
6329
6330 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6331
6332         * src/mcs51/gen.c (genFunction, genEndFunction),
6333         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
6334         and restore of EA so that stack offsets to parameters are
6335         correct when using both critical and reentrant/stack-auto.
6336         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
6337         size (can be triggered in error if sloc is shared between
6338         different sized objects)
6339         * device/include/float.h: fixed macros to explicitly use
6340         unsigned long where needed
6341
6342 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
6343
6344         Feature req. 799831: added code to allow nesting of critical functions
6345         * src/mcs51/gen.c (genFunction, genEndFunction)
6346         * src/ds390/gen.c (genFunction, genEndFunction)
6347
6348 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6349
6350         * src/SDCCsymt.c (sclsFromPtr),
6351         * src/SDCCsymt.h,
6352         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
6353         support for standard C idiom of memory mapped variables; for
6354         example, *((xdata int*)0x1234) = 1 is now internally equivalent
6355         to xdata int at 0x1234 tempvar = 1.
6356         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
6357         provided by Akiya ISHIDA
6358
6359 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
6360
6361         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
6362         * src/SDCCval.c (constVal): added reduction from int to char
6363         * src/SDCCval.c (valMult, valDiv): fixed sign handling
6364         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
6365         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
6366         to ignore the sign
6367         * support/regression/tests/shifts.c: fixed
6368
6369 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6370
6371         * src/z80/gen.c (genXor): Fixed bug #805445
6372
6373 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6374
6375         Fixed bug #621531 (const & volatile confusion in the type chain).
6376         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
6377         refer to the const or volatile state of the pointer itself.
6378
6379         * src/SDCCast.c
6380         * src/SDCCglue.c
6381         * src/SDCCicode.c
6382         * src/SDCCsymt.c
6383         * src/SDCCval.c
6384         * src/SDCC.y
6385         * src/SDCCsymt.h
6386         * src/pic/gen.c
6387         * src/pic/ralloc.c
6388         * src/pic16/gen.c
6389         * src/pic16/ralloc.c
6390         * support/regression/tests/const.c
6391
6392 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6393
6394         When checking for duplicated modules, use absolute paths
6395         instead of relative paths.  Files changed:
6396
6397         * as/mcs51/lklib.c
6398         * link/z80/lklib.c
6399
6400 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6401
6402         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
6403
6404 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6405
6406         * device/include/string.h: added size_t typedef, changed
6407         prototypes to use size_t, eliminated separate reentrant and
6408         non-reentrant declarations, added _memmove declaration
6409         * device/lib/_memcpy.c: changed to use size_t instead of int,
6410         changed /4 to >>2 to avoid division library call
6411         * device/lib/_memcmp.c,
6412         * device/lib/_memset.c,
6413         * device/lib/_strncat.c,
6414         * device/lib/_strncpy.c,
6415         * device/lib/_strncmp.c: changed to use size_t instead of int
6416         * device/lib/_memmove.c: new file (fixed bug #772294)
6417         * device/lib/Makefile.in: added _memmove.c
6418         * device/lib/z80/asm_strings.s: fixed bug #772290
6419         * support/regression/tests/bitfields.c: attempt to fix host assertion
6420         failure on amd64-unknown-linux2.2
6421
6422 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6423
6424         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
6425         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
6426         * as/z80/asmain.c (main): fixed bug #801766
6427
6428 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
6429
6430         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
6431         compilers
6432
6433 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6434
6435         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
6436         reported in bug #800609
6437
6438 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
6439
6440         * Top header beautifications in src/pic16 directory:
6441           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
6442           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
6443           pcoderegs.h, ralloc.c, ralloc.h
6444         * main.c: added top header and GPL license notice
6445         * pcode.c: fixed the if-conditional warning
6446
6447 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
6448
6449         * device/lib/_mullong.c: replaced int by short for gcc
6450
6451 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6452
6453         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
6454         and JUMPTABLE iCodes properly now (worked by accident before)
6455         * src/mcs51/gen.c (leftRightUseAcc),
6456         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
6457         iCode properly now. Use getSize instead of nRegs since a & b
6458         aren't part of the nRegs tally.
6459
6460 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
6461
6462         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
6463         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
6464           before instructions that use the _STATUS register
6465
6466 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
6467
6468         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
6469         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
6470         fetching of the pointer
6471         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
6472         copied from genNearPointerSet()
6473         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
6474         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
6475         If they pop r0/r1 they must be called in the opposite order than aopOp().
6476         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
6477         (resp. --stack-auto), prepared for --xstack
6478
6479 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6480
6481         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
6482
6483 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
6484
6485         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
6486         these ports have their own __sdcc_external_start()
6487
6488 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
6489
6490         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
6491         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
6492         type for bits was changed. It resulted in bit variables becoming
6493         global, which is not permitted in PIC 14 assembly output.
6494
6495 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6496
6497         * doc/sdccman.lyx: various additions and updates. Rearranged sections
6498
6499 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6500
6501         Z80 and MCS51 linkers complaint if a public symbol is defined
6502         in more than one library module:
6503
6504         * as/mcs51/lklib.c
6505         * link/z80/lklib.c
6506         * as/mcs51/Makefile.in
6507
6508 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6509
6510         A few small changes that speed up the peephole optimizer.
6511
6512         * src/SDCCpeeph.c
6513
6514 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6515
6516         Try to make the peephole optimizer smarter by maintaining
6517         an association between the assembly source code and the
6518         iCodes that originated them. Put this information to use
6519         with a new peephole rule condition "notVolatile" so that
6520         the rules can be aggressive yet still safe.
6521
6522         * src/SDCCpeeph.c
6523         * src/SDCCpeeph.h
6524         * src/mcs51/gen.c
6525         * src/mcs51/peeph.def
6526
6527 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6528
6529         Fixed bug #741761
6530
6531         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
6532         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
6533         if the left or right operand symbols have the accuse flag set.
6534
6535 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6536
6537         Changed the type of the result of the ! (NOT) operator to char;
6538         previously it returned the same type as the source. This allows
6539         us to eliminate all the genFloatNot functions (all of its target
6540         implementations were very buggy) since !float can use the same
6541         code as !long now.
6542
6543         * src/SDCCicode.c (ast2iCode): ! returns char
6544         * src/mcs51/gen.c (genNot, genNotFloat),
6545         * src/ds390/gen.c (genNot, genNotFloat),
6546         * src/z80/gen.c (genNot, genNotFloat),
6547         * src/pic/gen.c (genNot, genNotFloat),
6548         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
6549
6550 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
6551
6552         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
6553         1. Interrupt would not compile properly. Ensure PCLATH register is saved
6554            during interrupts. Ensure WSAVE is located at a shared bank address.
6555         2. Fixed page selection in some places
6556         3. Fixed BTFSS/C to where necessary use registers directly and not simply
6557            the registers name strings.
6558         4. Fixed "signed / unsigned compare" compiler warnings.
6559         5. The PIC port manages its own allocation of the general purpose
6560            registers, but makes no attempt to reuse them. As a result when
6561            compiling it soon runs out of general purpose registers. Some
6562            additional code was added to the files pcode.c and device.c to walk
6563            through the function call tree and rename the registers so that they
6564            get reused.
6565
6566         * src/pic/device.c
6567         * src/pic/gen.c
6568         * src/pic/glue.c
6569         * src/pic/pcode.c
6570         * src/pic/pcode.h
6571         * src/pic/ralloc.c
6572         * src/pic/ralloc.h
6573         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
6574         genPlus() & genMinus() when the result is the same as left or right
6575
6576 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6577
6578         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
6579
6580 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6581
6582         Made bitfield a distinct type from bit so that bitfields
6583         convert as per ANSI C and bits retain their traditional
6584         boolean style behaviour. Implemented bitfield support in
6585         the z80 port.
6586
6587         * src/SDCCsymt.h,
6588         * src/SDCCsymt.c,
6589         * src/SDCCast.c,
6590         * src/cdbFile.c,
6591         * src/mcs51/gen.c,
6592         * src/ds390/gen.c: bit v bitfield split
6593         * src/z80/gen.c: New support for bitfields
6594         * support/regression/tests/bitfields.c: reenabled z80,
6595         added more tests
6596
6597 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6598
6599         Rules 246.x, 247.x relate to bitfields, the others speed up
6600         access to xdata mapped I/O devices.
6601
6602         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
6603
6604 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6605
6606         Cleaned up genPackBits and genUnpackBits and added two helper
6607         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
6608         for literal assignments in genPackBits (thanks to Frieder for
6609         reminding me).
6610
6611         * src/mcs51/gen.c
6612         * src/ds390/gen.c
6613
6614 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6615
6616         Fixed bug #748310 (pointer to function type mishandled when the
6617         function name is omitted). Also fixed a SIGSEGV when a function
6618         attribute (reentrant, etc) is used on a non-function or on a
6619         function but misplaced before the parameter list.
6620
6621         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
6622         bug #748310
6623         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
6624         * support/Util/SDCCerr.h,
6625         * support/Util/SDCCerr.c: Added func attr misuse error msg
6626
6627 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
6628
6629         Fixed bug #787649 by anonymous
6630         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
6631         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
6632
6633 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6634
6635         Fixed numerous bitfield problems.
6636
6637         * src/SDCC.y: More bitfield related error checking
6638         * src/SDCCsymt.h,
6639         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
6640         * support/Util/SDCCerr.h,
6641         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
6642         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
6643         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
6644         * support/regression/tests/bitfields.c: tests added
6645
6646 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6647
6648         Made the constant following the "interrupt" keyword optional. If
6649         omitted, the function will not automatically be given an entry
6650         in the interrupt vector table (similar to #pragma NOIV, but
6651         less syntacticly kludgy). The interrupt number is also now
6652         range checked. Also fixed a bug in the high order bit example
6653         in the manual.
6654
6655         * src/SDCC.y
6656         * src/SDCCmem.c
6657         * src/SDCCglue.c
6658         * src/SDCCsymt.h
6659         * support/Util/SDCCerr.c
6660         * support/Util/SDCCerr.h
6661         * doc/sdccman.lyx
6662
6663 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
6664
6665         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
6666         * src/SDCCicode.c (operandOperation): rewritten some ops
6667         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
6668         * src/SDCCsymt.c (computeType): literals are handled the same way as any
6669         other type
6670         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
6671         be re-activated by defining REDUCE_LITERALS)
6672         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
6673         unsigned, but are signed by default
6674         * src/SDCCval.c (constVal): rearranged
6675         * src/SDCCval.c (valMod): preliminary fix
6676         * src/SDCCval.c (valCastLiteral): use TYPE_* types
6677         * support/regression/literalop.c: added, work in progress
6678
6679 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6680
6681         Generate warnings for useless declarations like "char data;"
6682         that don't do what new users expect.
6683
6684         * src/SDCC.y
6685         * support/Util/SDCCerr.h
6686         * support/Util/SDCCerr.c
6687
6688 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
6689
6690         * src/SDCCval.c (valMult): fix overflow detection of negative int
6691
6692 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6693
6694         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
6695
6696         Changes to support big endian targets:
6697
6698         * src/ports.h
6699         * src/SDCCglue.c
6700         * src/avr/main.c
6701         * src/ds390/main.c
6702         * src/izt/i186.c
6703         * src/mcs51/main.c
6704         * src/pic/main.c
6705         * src/pic16/main.c
6706         * src/xa51/main.c
6707         * src/z80/main.c
6708
6709 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
6710
6711         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
6712         * device/lib/time.c: fixed warning "integer overflow in expression"
6713
6714 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
6715
6716         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
6717         * src/SDCCval.c (constVal): changed default to signed; hex and octal
6718         constants are unsigned; added recognition of "u" flag for unsigned
6719         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
6720         * src/SDCCval.c (valDiv, valMod): fixed signdness
6721         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
6722         signedness of modulo, left and right shift
6723         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
6724         * support/Util/SDCCerr.h: added warning W_INT_OVL
6725         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
6726         * src/SDCCast.c (ast_print): improved output of constants
6727
6728 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6729
6730         Fixed some warnings when building with MSVC:
6731
6732         * as\mcs51\asdata.c
6733         * as\z80\asdata.c
6734         * as\mcs51\asm.h
6735         * as\z80\asm.h
6736         * link\z80\aslink.h
6737         * link\z80\lkdata.c
6738         * link\z80\lkeval.c
6739         * link\z80\lkgb.c
6740         * link\z80\lkihx.c
6741         * link\z80\lks19.c
6742         * link\z80\lksym.c
6743         * support\cpp2\cpplib.c
6744         * src\ds390\gen.c
6745         * src\mcs51\gen.c
6746
6747 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
6748
6749         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
6750
6751 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6752
6753         * support\librarian\clean.mk: Do not remove Makefile.
6754         * support\librarian\Makefile: added.
6755
6756 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6757
6758         Added librarian to MSVC build:
6759         * all.dsp
6760         * sdcc.dsw
6761         * support\librarian\librarian.dsp
6762
6763         'configure' not needed for librarian, removed:
6764         * support\librarian\configure
6765         * support\librarian\configure.in
6766         * support\librarian\config_in.h
6767         * support\librarian\Makefile.in
6768
6769         Hopefully these ones built the librarian and the rest of sdcc properly:
6770         * Makefile
6771         * Makefile.common.in
6772
6773         Messed up 'configure', so revert to previous version:
6774         * configure
6775         * configure.in
6776
6777 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
6778
6779         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
6780         there, while the mantissa of a double is "only" 53 bits wide.
6781
6782 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6783
6784         Adding sdcclib to the build.  MSVC project coming soon.
6785         Files added/changed:
6786
6787         * support\librarian\clean.mk
6788         * support\librarian\configure
6789         * support\librarian\configure.in
6790         * support\librarian\config_in.h
6791         * support\librarian\Makefile.bcc
6792         * support\librarian\Makefile.in
6793         * support\librarian\sdcclib.c
6794         * Makefile.bcc
6795         * Makefile
6796         * Makefile.common.in
6797         * configure
6798         * configure.in
6799
6800 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6801
6802         Linker now complaints if linked modules have conflicting options, for
6803         example, one compiled using --model-large and another one compiled with
6804         --model-small.  The following files were modified:
6805
6806         * as\mcs51\asdata.c
6807         * as\mcs51\aslink.h
6808         * as\mcs51\asm.h
6809         * as\mcs51\asmain.c
6810         * as\mcs51\asout.c
6811         * as\mcs51\i51pst.c
6812         * as\mcs51\lkdata.c
6813         * as\mcs51\lklibr.c
6814         * as\mcs51\lkmain.c
6815         * as\z80\asdata.c
6816         * as\z80\asm.h
6817         * as\z80\asmain.c
6818         * as\z80\asout.c
6819         * as\z80\z80pst.c
6820         * link\z80\aslink.h
6821         * link\z80\lkdata.c
6822         * link\z80\lklibr.c
6823         * link\z80\lkmain.c
6824         * src\SDCCglue.c
6825
6826 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6827
6828         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
6829         as/mcs51/lklibr.c: Generate a warning when a library is not found.
6830
6831 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
6832
6833         * src/z80/mappings.i: fix _mul[us][int,long] entries
6834
6835 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6836
6837         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
6838
6839 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
6840
6841         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
6842         * support/regression/tests/bitopcse.c: added
6843         fixed warning:
6844         * src/avr/gen.c:
6845         * src/pic/gen.c:
6846         * src/pic16/gen.c:
6847         * src/z80/gen.c:
6848         * src/xa51/gen.c:
6849
6850 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6851
6852         added support for new library format to z80, gbz80 linkers:
6853         *link/z80/aslink.h
6854         *link/z80/lklex.c
6855         *link/z80/lklib.c
6856         *link/z80/lklist.c
6857
6858 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
6859
6860         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
6861         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
6862
6863 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
6864
6865         added DUMMY_READ_VOLATILE:
6866         * src/SDCC.y:
6867         * src/avr/gen.c:
6868         * src/xa51/gen.c:
6869         * src/z80/gen.c:
6870         * src/pic/gen.c:
6871         * src/pic16/gen.c:
6872         * src/mcs51/gen.c:
6873         * src/ds390/gen.c:
6874         * src/SDCCcse.c (algebraicOpts): many improvements
6875         * src/SDCCcse.h: removed algebraicOpts()
6876         * src/SDCCicode.c (picDummyRead): added
6877
6878 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6879
6880         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
6881         "Insufficient space in data memory".
6882
6883 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6884
6885         * src/mcs51/gen.c: fixed bug #771358
6886         * src/z80/gen.c: fixed bug #759087
6887
6888 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
6889
6890         * src/pic16/glue.c: minor cleanup by Vangelis
6891
6892 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6893
6894         * device/include/regc515c.h: fixed #758477
6895         * device/lib/_gptrget.c: saving some cycles in generic pointer get
6896         * device/lib/_gptrput.c: saved a few bytes
6897         * my tab spacing is 8, yours too?)
6898         * device/lib/_ser.c: process RX bytes earlier than TX bytes
6899         * device/lib/serial.c: process RX bytes earlier than TX bytes
6900         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
6901
6902 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6903
6904         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
6905
6906 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6907
6908     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
6909
6910 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
6911
6912         * device/lib/Makefile.in: bad fix, reverted to 1.43
6913
6914 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
6915
6916         * device/lib/Makefile.in: added missing z80 object files
6917
6918 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
6919
6920         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
6921         pic16 progress by Vangelis:
6922         * src/SDCCglobl.h:
6923         * src/SDCCmain.c:
6924         * src/pic/Makefile:
6925         * src/pic:
6926         * pic/Makefile:
6927         * pic16/device.c:
6928         * pic16/device.h:
6929         * pic16/gen.c:
6930         * pic16/gen.h:
6931         * pic16/genarith.c:
6932         * pic16/glue.c:
6933         * pic16/main.c:
6934         * pic16/pcode.c:
6935         * pic16/pcode.h:
6936         * pic16/pcodepeep.c:
6937         * pic16/peeph.def:
6938
6939 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6940
6941     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
6942
6943 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6944
6945     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
6946     added gbz80 build to MSVC project.
6947     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
6948     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
6949     from 8051 stuff and setup so it links using a .lnk file.
6950
6951 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6952
6953     * support/librarian/sdcclib.c: sdcc librarian.
6954     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
6955     with sdcclib.
6956
6957 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6958
6959     * as/mcs51/lkmain.c: properly handle extensions in function afile.
6960
6961 2003-07-02  Borut Razem <borut.razem AT siol.net>
6962
6963         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
6964         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
6965         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
6966         src/xa51/main.c, src/z80/main.c:
6967         virtualization of glue() function: each port has it's own glue function,
6968         which is accessed by do_glue function pointer in PORT.general structure
6969
6970 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
6971
6972         * DS800C400 fun, improved ROM interface and tinibios.
6973
6974 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
6975
6976         * More support for DS80C400. Now includes beginning of interface to ROM.
6977
6978 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
6979
6980         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
6981
6982 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6983
6984         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
6985
6986 2003-06-19  Borut Razem <borut.razem AT siol.net>
6987
6988         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
6989
6990 2003-06-19  Borut Razem <borut.razem AT siol.net>
6991
6992         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
6993         fixed Z80 port - crt0.o: cannot open.
6994
6995 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
6996
6997         * support/Util/MySystem.c (merge_command): revert bad fix
6998
6999 2003-06-18  Borut Razem <borut.razem AT siol.net>
7000
7001         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
7002
7003 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7004
7005         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
7006         option --use-stdout sends errors to stdout instead of stderr.
7007
7008 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
7009
7010         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
7011
7012 2003-06-15  Borut Razem <borut.razem AT siol.net>
7013
7014         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
7015         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
7016         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
7017         fixed width array of pointers replaced with sets;
7018         multiple include and lib paths ared transferred to preprocessor and linker
7019         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
7020         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
7021         fixed width array of pointers
7022         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
7023         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
7024         fixupPath(), getPathDifference()
7025         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
7026         fixed width array of pointers
7027
7028 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
7029
7030         * src/pic16/ralloc.c: fix warnings
7031         * src/pic16/pcode.c: fix warning
7032
7033 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
7034
7035          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
7036         know all the details, but essentially this set of changes enable
7037         the pic16 port to generate movff instructions and generate assembler
7038         directives,
7039         * src/SDCCmain.c:
7040         * src/pic16/gen.c:
7041         * src/pic16/glue.c:
7042         * src/pic16/pcode.c:
7043         * src/pic16/device.c:
7044         * src/pic16/main.c:
7045         * src/pic16/pcode.h:
7046         * src/pic16/pcoderegs.c:
7047         * src/pic16/ralloc.c:
7048         * src/pic16/ralloc.h:
7049
7050 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7051
7052         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
7053         added option --vc, so sdcc errors and warnings are compatible with
7054         Microsoft Visual Studio.
7055
7056 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7057
7058         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
7059           device/lib/libfloat.lib: added atof function.
7060
7061 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
7062
7063         * doc/sdccman.lyx: updated to Lyx 1.3
7064         * doc/cdbfileformat.lyx: updated to Lyx 1.3
7065         * doc/test_suite_spec.lyx: updated to Lyx 1.3
7066         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
7067
7068 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
7069
7070         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
7071
7072 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7073
7074         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
7075           additions to the "related tools/documentation" section
7076
7077 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
7078
7079         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
7080
7081 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
7082
7083         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
7084         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
7085
7086 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
7087
7088         * doc/sdccman.lyx: fix double dash and other minor things
7089         * doc/Makefile: fix double dash
7090
7091 2003-05-28  Karl Bongers(patches from Martin Helmling)
7092         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
7093           condition and ignore commands.
7094
7095 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7096
7097         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
7098           is in parts still quite out of date, I did changes as far as I felt makes sense
7099           for a non-native english speaker.
7100           Please feel free to add to the manual or to correct my changes.
7101         * doc/Makefile: undid touching the date of intermediate tex files.
7102
7103 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7104
7105         * doc/sdccman.lyx: Manual has an index now
7106
7107 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
7108
7109         Finalize muluint/mulsint and mululong/mulslong merging:
7110         * device/lib/_mulint.c
7111         * device/lib/_mullong.c
7112         * device/lib/gbz80/mul.s
7113         * device/lib/gbz80/stubs.s
7114         * device/lib/z80/mul.s
7115         * device/lib/z80/stubs.s
7116         * src/SDCCsymt.c (initCSupport)
7117
7118 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7119
7120         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
7121         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
7122           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
7123           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
7124           instead of /Zm500.
7125
7126 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7127
7128         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
7129           the regression tests I'm not brave enough to enable 245.b, 245.c
7130         * doc/sdccman.lyx: added latex preamble for hyperref package.
7131           Using pdflatex this will give you a hyperlinked pdf file with
7132           bookmarks. (prepend '%' before /usepackage if this breaks something)
7133
7134 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7135
7136          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
7137
7138 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
7139
7140         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
7141
7142 2003-05-21    <johan AT balder>
7143
7144         * src/SDCCglue.c (printIval): fixed bug #739934
7145
7146 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
7147
7148         Applied patch from bug 737905 (renamed yylineo to mylineno):
7149         * src/altlex.c
7150         * src/SDCCast.c
7151         * src/SDCglobl.h
7152         * src/SDCC.lex
7153         * src/SDCCsymt.c
7154         * src/SDCCval.c
7155         * src/pic16/pcode.c: Cleaned warnings
7156         * src/pic16/pcodeflow.c: Cleaned warnings
7157         * src/pic16/pcoderegs.c: Cleaned warnings
7158
7159 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
7160
7161         * src/pic16/pcode.c: Cleaned warnings
7162         * src/pic16/pcodepeep.c: Cleaned warnings
7163         * src/pic16/ralloc.c: Cleaned warnings
7164
7165 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
7166
7167         * doc/sdccman.lyx: fixed bug 739745
7168         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
7169
7170 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
7171
7172         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
7173         it can be defined with CFLAGS when running configure
7174         * src/SDCCmain.c: fixed compiling + linking with object files
7175
7176 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
7177
7178         * configure.in: configure for pic16 port,
7179             added --disable-pic16-port
7180         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
7181         * src/SDCCmain.c: linkOptions is changed to set *,
7182             added if/endif conditional macros to remove options help
7183             messages from optionsTable when a port is not configured, added
7184             support for the PIc16 port in the ports table, when executing
7185             the compiler with no port specified on command line, a default
7186             port is selected with the new macro DEFAULT_PORT which is
7187             defined in port.h, in setDefaultOptions() linkOptions is removed
7188             from initialization assignment, since now it is a set,
7189             parseCmdLine uses setParseWithComma for linkOptions, in
7190             linkEdit() linkOptions are accessed with new function indexSet()
7191             which returns the i'th item of a set variable. See SDCCset.c, in
7192             linkEdit() when calling buildCmdLine(), added linkOptions as
7193             last argument. Now users can pass arguments to gplink via the
7194             -Wl option, main() uses pic16glue() to glue up pic16 programs
7195         * src/SDCCpeeph.c: various changes to support pic16
7196         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
7197             return the i'th item of the set
7198         * src/SDCCset.h: added function prototype for indexSet()
7199         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
7200         * src/clean.mk: added pic16 in CLEANALLPORTS variable
7201         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
7202             added macro DEFAULT_PORT
7203         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
7204         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
7205             generated
7206         * src/pic16/glue.c: commented out some error producing lines
7207         * src/pic16/main.c: __config directives are commented out to stop
7208             gpasm complaining and test the linkage with gplink, _linkCmd and
7209             _asmCmd changed to be more gplink and gpasm friendly
7210         * src/pic16/peeph.def: peep rule 3 is commented out, since it
7211             produced an error when parsed, peep rule 12 is added to utilize
7212             movff, but it is commented out since the pCode does not support
7213             yet a command with 2 address arguments
7214
7215 2003-05-18    <johan AT balder>
7216
7217         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
7218         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
7219 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
7220
7221         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
7222   Added feature to script commands from file.
7223
7224 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
7225
7226         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
7227         * src/SDCCutil.c: include ctype.h for win32
7228
7229 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
7230
7231         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
7232
7233 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
7234
7235         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
7236   Fixed so you can set breakpoints prior to run, run does not stop
7237   on entry now.  Add tbreak.  Other enhancements and fixes for use
7238   with ddd.
7239
7240 2003-05-12  Borut Razem <borut.razem AT siol.net>
7241
7242         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
7243
7244 2003-05-11  Borut Razem <borut.razem AT siol.net>
7245
7246         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
7247         the path of bin directory, so that PATH is the only env. variable, which has to be set
7248         in case of standard installation.
7249         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
7250         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
7251         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
7252
7253 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
7254
7255         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
7256         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
7257         temp files are in the port dir; clean the gen/test directory when
7258         generating new test.c
7259         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
7260         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
7261         * support/regression/tests/zeropad.c: added
7262
7263 2003-05-09    <johan AT balder>
7264
7265         * src/SDCCglue.c: fixed bug #597940
7266
7267 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
7268
7269         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
7270   cache sfr, optimize next,step, fix off by one sourceline,
7271   support ddd list function.
7272         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
7273
7274 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
7275
7276         * support/regression/HTMLgen.py: added compare_s2f()
7277         * support/regression/Makefile: redo 1.27
7278         * support/regression/generate-cases.py: redo 1.5
7279
7280 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
7281
7282         * support/regression/tests/float.c: workaround 33 bit hex constant
7283         * support/regression/tests/simplefloat.c: fix division for host
7284
7285 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
7286
7287         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
7288         that tame's the PIC's over-aggressive optimizer.
7289
7290 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7291
7292          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
7293          support for MSVC.
7294
7295 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
7296
7297         Initial support for DS80C400. "Hello world" runs on TINIm400
7298         (with polled I/O).
7299
7300 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
7301
7302          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
7303          * Some notes on ddd usage added in debugger/README
7304          Martin Helmling adding more features and fixes for ddd GUI debugger.
7305          Code added for nexti, stepi, up, down, and other adjustments.
7306
7307 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
7308
7309         * src/pic/pCodepeep.c non-wildcard asmops are now handled
7310         * src/pic/peeph.def Added two rules to optimize carry manipulation
7311         * src/pic/* removed debug printfs
7312
7313 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
7314
7315         * debugger/mcs51/cmd.c: added header newalloc.h
7316
7317 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
7318
7319         * as/Makefile: new EXEEXT
7320         * as/z80/Makefile: remove trailing slash of BUILDIR
7321         * as/z80/clean.mk: new EXEEXT
7322         * Makefile.common.in: add to CFLAGS (and others), don't replace it
7323         * support/cpp2/Makefile.in: new EXEEXT
7324         * src/pic/glue.c (pic14emitRegularMap): fixed warning
7325
7326 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
7327
7328         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
7329         EXEEXT was introduced to fix all related problems with targets
7330         "clean", "install" and "uninstall"; a couple of further flaws
7331         especially with "clean" have been fixed too
7332         * as/mcs51/Makefile.in
7333         * as/mcs51/clean.mk
7334         * as/z80/Makefile
7335         * Makefile
7336         * clean.mk
7337         * debugger/mcs51/Makefile.in
7338         * debugger/mcs51/clean.mk
7339         * link/z80/Makefile
7340         * link/z80/Makefile.in
7341         * link/z80/clean.mk
7342         * link/Makefile
7343         * packihx/Makefile.in
7344         * packihx/clean.mk
7345         * sim/ucsim/Makefile
7346         * sim/ucsim/clean.mk
7347         * sim/ucsim/avr.src/Makefile.in
7348         * sim/ucsim/avr.src/clean.mk
7349         * sim/ucsim/s51.src/Makefile.in
7350         * sim/ucsim/s51.src/clean.mk
7351         * sim/ucsim/xa.src/Makefile.in
7352         * sim/ucsim/xa.src/clean.mk
7353         * sim/ucsim/z80.src/Makefile.in
7354         * sim/ucsim/z80.src/clean.mk
7355         * sim/ucsim/main_in.mk
7356         * sim/ucsim/packages_in.mk
7357         * sim/ucsim/gui.src/Makefile.in
7358         * sim/ucsim/gui.src/serio.src/Makefile.in
7359         * sim/ucsim/gui.src/serio.src/clean.mk
7360         * src/Makefile.in
7361         * src/clean.mk
7362         * support/cpp2/Makefile.in
7363         * support/cpp2/clean.mk
7364         * support/makebin/Makefile
7365         * support/makebin/clean.mk
7366         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
7367         * doc/sdccman.lyx: --program-suffix no longer needed
7368
7369 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
7370
7371          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
7372          Martin Helmling added support for ddd GUI debugger.
7373          Code added to display assembly, set variables, and other commands
7374          to interface to ddd.
7375
7376 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
7377
7378         * as/Makefile: fix target clean
7379         * as/clean.mk: fix target clean
7380         * as/z80/clean.mk: fix target clean
7381
7382 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
7383
7384         * Makefile.common.in: added  AT EXEEXT AT
7385         * configure.in: removed all mingw32 stuff
7386         * configure: rebuilt from configure.in
7387         * doc/sdccman.lyx: updated section "installation"
7388         * support/scripts/sdcc_mingw32: adapted to configure
7389         * support/scripts/sdcc_cygwin_mingw32: added
7390
7391 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
7392
7393         * src/pic Added object file support for the PIC port
7394         * src/pic Applied patch from Craig Franklin (this started the object file support)
7395         * src/regression Updated the PIC regression tests for object files
7396
7397 2003-04-20  Borut Razem <borut.razem AT siol.net>
7398
7399         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
7400           lklex.c: In function `getfid':
7401           lklex.c:203: warning: array subscript has type `char'
7402         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
7403           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
7404         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
7405           stack handling macros
7406
7407 2003-04-19  Borut Razem <borut.razem AT siol.net>
7408
7409         * "handling space characters in file path" task:
7410         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
7411         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
7412         * support/Util/MySystem.h: make it self-sufficient
7413         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
7414           src/z80/main.c, sdcc/as/mcs51/lklex.c:
7415           handling space characters in file path
7416         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
7417           (it will be used by assemblers, which have their own includes, e.g. gpasm)
7418         * support/Util/MySystem.c: handling space characters in executable's path
7419
7420 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
7421
7422         * as/z80/Makefile: fix permanent rebuild of z80
7423         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
7424         * support/regression/tests/bitfields.c: added Johan's bitfields.c
7425
7426 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
7427
7428         * src/SDCCopt.c: add special case optimization to replace modulo by
7429           a power of two with a bitwise AND.
7430
7431 2003-04-18    <johan AT balder>
7432
7433         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
7434
7435 2003-04-17    <johan AT balder>
7436
7437         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
7438         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
7439
7440 2003-04-13  Borut Razem <borut.razem AT siol.net>
7441
7442         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
7443         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
7444           fixed mingw problem in adl_NORMALIZE_PATH
7445
7446 2003-04-12  Borut Razem <borut.razem AT siol.net>
7447
7448         * fixed "#pragma SAVE/RESTORE can not be nested":
7449         * src/SDCC.lex: reworked pragma handling functions
7450         * sdcc/src/SDCCglobl.h: reworked stack handling macros
7451         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
7452
7453 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
7454
7455         * src/SDCCutil.c (pathEquivalent): defined but not used
7456         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
7457         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
7458         * configure: rebuilt from configure.in
7459         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
7460         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
7461         * device/include/Makefile.in: replace sdcc_datadir
7462         * device/lib/Makefile.in: replace sdcc_datadir
7463         * Makefile.common.in: add LDFLAGS from configure
7464         * packihx/Makefile.in: use LDFLAGS
7465         * src/Makefile.in: use LDFLAGS
7466         * support/cpp2/Makefile.in: add LDFLAGS from configure
7467         * support/makebin/Makefile: use LDFLAGS
7468         * .version: bumped version number to 2.3.5
7469
7470 2003-04-12  Borut Razem <borut.razem AT siol.net>
7471
7472         * completed "different paths" task:
7473         * src/SDCCmacro.c: fixed bug in handling quotes
7474         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
7475         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
7476
7477 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
7478
7479         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
7480
7481 2003-04-11 kevin Vigor <kevin AT vigor.nu>
7482
7483         * ds390/gen.c ds390/peeph.def: fix bug 706781
7484
7485 2003-04-11  Borut Razem <borut.razem AT siol.net>
7486
7487         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
7488
7489 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
7490
7491         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
7492         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
7493          set - this bit used to not be set...).
7494         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
7495           bad code in PIC Port
7496         * src/regression/and2.c added to test bug 609268
7497         * src/regression/Makefile added and2.c to regression test
7498
7499
7500 2003-04-08    <johan AT CP255758-A>
7501
7502         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
7503         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
7504         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
7505
7506 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
7507
7508         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
7509         fix bug #487815
7510         * support/cpp2/Makefile.in: fix bug #487815
7511         * configure: rebuilt from configure.in
7512         * Makefile.common.in: docdir changed, new path suffixes
7513         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
7514         * sdcc_vc_in.h: reflect changes from sdccconf.h
7515         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
7516         * src/SDCCutil.h: remove BINDIR hack
7517         * doc/sdccman.lyx: update new path hierarchy
7518
7519 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
7520
7521         * src/SDCCpeeph.c: added okToRemoveSLOC test
7522
7523 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
7524
7525         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
7526
7527 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
7528
7529         * src/SDCCpeeph.c: added labelIsReturnOnly test
7530         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
7531
7532 2003-04-05    <johan AT balder>
7533
7534         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
7535         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
7536         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
7537         * src/SDCCast.c: fixed a warning
7538         * src/SDCCast.h: fixed a warning
7539         * src/SDCCicode.c (operandFromAst): fixed a warning
7540
7541 2003-04-04    <johan AT balder>
7542
7543         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
7544         * src/SDCCast.c (decorateType): fixed bug #715076
7545         * src/SDCC.y: fixed bug #702907
7546
7547 2003-04-03    <johan AT balder>
7548
7549         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
7550         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
7551         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
7552         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
7553         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
7554
7555 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
7556
7557         * _decdptr.c: fix return values
7558         * _gptrget.c: fix return values
7559         * _gptrgetc.c: fix return values
7560         * _gptrput.c: fix return values
7561         * _mulint.c: fix return values
7562         * as/z80/Makefile: fix 'make -j' problem
7563
7564 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
7565
7566         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
7567         * configure.in: big cleanup, updated to autoconf 2.5x
7568         * configure: rebuilt from configure.in
7569         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
7570         * sdcc_vc_in.h: reflect changes from sdccconf.h
7571         * doc/Makefile: fixed a flaw in "make install"
7572
7573 2003-04-02    <johan AT balder>
7574
7575         * src/ds390/gen.c (genCmp): no comments
7576         * src/mcs51/gen.c (genCmp): no comments
7577         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
7578         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
7579
7580 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
7581
7582         * support/regression/generate-cases.py: place generated file in given sub directory
7583         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
7584         * support/regression/Makefile: improvements for 'make -j';
7585         side effect: it's simpler and faster now
7586
7587 2003-03-31  Borut Razem <borut.razem AT siol.net>
7588
7589         * src/z80/main.c: link-{port} and as-{port} defined without path
7590         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
7591
7592 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
7593
7594         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
7595
7596 2003-03-30  Borut Razem <borut.razem AT siol.net>
7597
7598         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
7599           changed type of list parameter to set
7600         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
7601         * src/port.h: changed type of do_assemble() parameter to set
7602         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
7603           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
7604           definition of "cppoutfilename" macro with NULL value in preProcess()
7605         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
7606         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
7607         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
7608           replaced with set *binPathSet
7609         * shash_add() deallocates the item, if allready exsists, before adding the new one
7610         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
7611
7612 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
7613
7614         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
7615           a nested for loop bug in the PIC port
7616         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
7617           for loops
7618
7619 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
7620
7621         * support/Util/dbuf.h: remove C++ stuff to make it portable
7622
7623 2003-03-28  Borut Razem <borut.razem AT siol.net>
7624
7625         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
7626           literal strings in stringLiteral()
7627         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
7628         * src/Makefile.bcc, src/Makefile.in, src\src.dsp: added support/Util/dbuf.c
7629           to the project
7630
7631 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
7632
7633         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
7634
7635 2003-03-26    <johan AT balder>
7636
7637         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
7638         * src/ds390/gen.c (saveRegisters): catched symbol abuse
7639         * src/SDCCast.c (decorateType): fixed " -v < 3"
7640
7641 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
7642
7643         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
7644         Added Lenny Story's debug infrastructure changes:
7645         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
7646         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
7647         * src/cdbFile.c: added
7648         * src/SDCCdebug.c: added
7649         * src/SDCCdebug.h: added
7650         * src/SDCCast.c (createFunction)
7651         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
7652         * src/SDCCmain.c (parseCmdLine, main)
7653         * src/SDCCmem.c (redoStackOffsets)
7654         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
7655         * src/SDCCsymt.h
7656         * src/common.h
7657         * src/avr/gen.c (genAVRCode)
7658         * src/ds390/gen.c (gen390Code)
7659         * src/mcs51/gen.c (gen51Code)
7660         * src/pic/gen.c (genpic14Code)
7661         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
7662         * src/xa51/gen.c (genXA51Code)
7663         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
7664
7665 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7666
7667         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
7668         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
7669
7670 2003-03-22    <johan AT balder>
7671
7672         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
7673
7674 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
7675
7676         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
7677         * doc/cdbfileformat.lyx: added, written by Lenny Story
7678         * doc/Makefile: added cdbfileformat.lyx
7679         * doc/clean.mk: added cdbfileformat.lyx
7680
7681 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
7682
7683         * src/mcs51/peeph.def: fix bug #705773
7684
7685 2003-03-20    <johan AT balder>
7686
7687         An sfr/sbit can have an "at #" AND an initializer
7688         * src/SDCCsymt.c (checkSClass):
7689         * src/SDCCmem.c (allocGlobal):
7690         * src/SDCCmem.c (allocLocal):
7691         * src/SDCCast.c (createBlock):
7692
7693 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
7694
7695         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
7696
7697 2003-03-16    <johan AT balder>
7698
7699         Undid the hackup of const and volatile, the problem is much bigger
7700         * src/SDCC.y:1.65
7701         * src/SDCCast.c:1.171
7702         * src/SDCCglue.c:1.138
7703         * src/SDCCicode.c:1.146
7704         * src/SDCCsymt.c:1.150
7705         * src/SDCCval.c:1.65
7706
7707 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
7708
7709         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
7710         * src/ds390/gen.c (genAddrOf): fixed bug #704087
7711
7712 2003-03-13    <johan AT balder>
7713
7714         Hackup const and volatile modifiers in type chains a bit:
7715         * src/SDCC.y:1.63
7716         * src/SDCCast.c:1.169
7717         * src/SDCCglue.c:1.136
7718         * src/SDCCicode.c:1.143
7719         * src/SDCCsymt.c1.146
7720         * src/SDCCsymt.h1.59
7721         * src/SDCCval.c:1.63
7722
7723 2003-03-12    <johan AT balder>
7724
7725         * src/SDCCBBlock.h: more LRH debugging junk
7726         * src/SDCCcflow.h: more LRH debugging junk
7727         * src/SDCCloop.c: more LRH debugging junk
7728         * src/SDCC.y (struct_declaration): fixed bug #697590
7729         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
7730         * src/ds390/gen.c (aopForRemat): fixed bug #700031
7731         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
7732
7733 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
7734         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
7735         test function names must now match exactly).
7736         * src/SDCCcse.c: added special case in findCheaperOp to allow
7737         extending a short integer. Makes less awful code for bug 700121 test case.
7738
7739 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7740
7741         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
7742         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
7743
7744 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
7745
7746         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
7747         actually called (operandsNotEqual() was called for all
7748         operandsNotEqualX tests).
7749
7750 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
7751
7752         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
7753         with shorter literals. Fixes bug 700121.
7754
7755 2003-03-11    <johan AT balder>
7756
7757         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
7758
7759 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
7760
7761         * src/SDCCloop.c (mergeRegions): an evil beast is dead
7762         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
7763
7764 2003-03-10  Borut Razem <borut.razem AT siol.net>
7765
7766         * src/SDCCmain.c: pipe preprocessor's output
7767         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
7768         * sdcc_vc_in.h: define pclose as _pclose for WIN32
7769         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
7770         which closes all pipes in pipeSet set
7771         * src/SDCCset.c: free deleted item in function deleteSetItem()
7772         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
7773         moved from z80 to src subproject
7774         * .version: increased version number to 2.3.4
7775
7776 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
7777
7778         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
7779         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
7780         * support/regression/ports/xa51/spec.mk: fix typo
7781
7782 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
7783
7784         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
7785
7786 2003-03-09  Borut Razem <borut.razem AT siol.net>
7787
7788         * src/SDCCmain.c: pipe preprocessor's output
7789         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
7790         * sdcc_vc_in.h: define pclose as _pclose for WIN32
7791         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
7792         which closes all pipes in pipeSet set
7793         * src/SDCCset.c: free deleted item in function deleteSetItem()
7794         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
7795         moved from z80 to src subproject
7796
7797 2003-03-09  Borut Razem <borut.razem AT siol.net>
7798
7799         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
7800         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
7801         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
7802         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
7803         * src/SDCCglobl.h: unification of WIN32 native definitions
7804
7805 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7806
7807         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
7808
7809 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
7810
7811         * src/configure.in:   check for endianess (even while cross-compiling)
7812         * src/configure:      check for endianess (even while cross-compiling)
7813         * src/configure_in.h: check for endianess (even while cross-compiling)
7814         * src/avr/gen.c:        remove old endianess stuff
7815         * src/mcs51/gen.c:      remove old endianess stuff
7816         * src/ds390/gen.c:      remove old endianess stuff
7817         * src/pic/gen.c:        remove old endianess stuff
7818         * src/pic/genarith.c:   remove old endianess stuff
7819         * src/pic/glue.c:       fix endianess check
7820         * src/pic16/gen.c:      remove old endianess stuff
7821         * src/pic16/genarith.c: remove old endianess stuff
7822         * src/pic16/glue.c:     fix endianess check
7823         * src/xa51/gen.c:       remove old endianess stuff
7824         * src/z80/gen.c:        fix endianess check
7825         * src/SDCCglue.c:       fix endianess check
7826         * src/ds390/peeph.def: fix bug 700036
7827
7828 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
7829
7830         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
7831         * src/configure: find appropriate data-types on host for SDCC's int and long
7832         * src/configure.in: find appropriate data-types on host for SDCC's int and long
7833         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
7834         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
7835
7836 2003-03-07    <johan AT balder>
7837
7838         Just a big NOOP:
7839                 some minor cleanups before the big shot
7840                 OP_DEFS and OP_USES now use Kevin's protection
7841                 new option --nolabelopt
7842
7843         * src/SDCCBBlock.c:
7844         * src/SDCCast.c,:
7845         * src/SDCCcflow.c:
7846         * src/SDCCcse.c:
7847         * src/SDCCicode.c:
7848         * src/SDCCicode.h:
7849         * src/SDCClabel.c:
7850         * src/SDCCloop.c:
7851         * src/SDCCmain.c:
7852         * src/ds390/ralloc.c:
7853         * src/mcs51/ralloc.c:
7854         * src/pic/ralloc.c:
7855         * src/xa51/ralloc.c:
7856         * src/z80/ralloc.c:
7857
7858 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
7859
7860         * src/pic/pcode.c (get_op): fix 64 bit warnings
7861         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
7862         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
7863         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
7864         * support/regression/tests/malloc.c: fix 64 bit warnings
7865
7866 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
7867
7868         * src/mcs51/gen.c (genMinus): fixed bug 696436
7869
7870 2003-03-02  Borut Razem <borut.razem AT siol.net>
7871
7872         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
7873
7874 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
7875
7876         * configure.in: test for mkstemp
7877         * sdccconf_in.h: add HAVE_MKSTEMP
7878
7879 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
7880
7881         * device/include/ctype.h: removed warning while using --stack-auto
7882         * device/include/malloc.h: removed warning while using --stack-auto
7883         * device/include/string.h: removed warning while using --stack-auto
7884
7885 2003-02-23  Borut Razem <borut.razem AT siol.net>
7886
7887         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
7888         because NDEBUG is defined (see man assert)
7889         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
7890
7891 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7892
7893         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
7894         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
7895
7896 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7897
7898         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
7899         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
7900
7901 2003-02-18    <johan AT balder>
7902
7903         * as/mcs51/asmain.c (asmbl): module can start with a digit
7904         * as/z80/asmain.c (asmbl): module can start with a digit
7905
7906 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
7907
7908         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
7909         * src/asm.c: fix pipe() for Mingw32
7910
7911 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
7912
7913         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
7914         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
7915         make -V work again; --c1mode reads now from stdin
7916         * doc/sdccman.lyx: added --c1mode
7917         * support/Util/SDCCerr.c: new messages for c1 mode
7918         * support/Util/SDCCerr.h: new messages for c1 mode
7919         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
7920
7921 2003-02-15    <johan AT balder>
7922
7923         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
7924
7925 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
7926
7927         * doc/sdccman.lyx: Environment variables, -o and other minor things
7928
7929 2003-02-14    <johan AT balder>
7930
7931         * src/xa51/main.c: before anyone really tries to use it :)
7932
7933         * Install doc's in share/sdcc/doc
7934         * removed some obsolete files
7935         * Do a proper make distclean and uninstall
7936         M Makefile.common.in
7937         R sdccbuild.sh
7938         M as/Makefile
7939         M device/include/Makefile.in
7940         M device/lib/Makefile.in
7941         M doc/sdccman.lyx
7942         M link/Makefile
7943         M sim/ucsim/doc/Makefile.in
7944         M src/clean.mk
7945         R src/avr/peeph.rul
7946         R src/xa51/peeph.rul
7947         M support/cpp2/Makefile.in
7948         M support/makebin/Makefile
7949
7950
7951 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
7952
7953         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
7954
7955 2003-02-10  Borut Razem <borut.razem AT siol.net>
7956
7957         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
7958         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
7959         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
7960         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
7961         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
7962         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
7963         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
7964         src/z80/Makefile.bcc: Borland Makefile cleanup
7965         * as/z80/Makefile.bcc: Added Borland Makefile
7966         * support/cpp2/borland.h: Removed
7967
7968 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
7969
7970         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
7971         * src/SDCC.lex: new pragma NOIV
7972         * src/SDCCglobl.h: new pragma NOIV
7973         * src/SDCCmem.c: new pragma NOIV
7974
7975 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
7976
7977         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
7978
7979 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
7980
7981         * src/SDCCmain.c: signal handling is switched off by --debug
7982         * doc/Makefile: small fix for install; use clean.mk again
7983         * doc/clean.mk: clean *.pdf and *.html too
7984
7985 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
7986
7987         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
7988         * device/lib/printfl.c: fix a ds390 bug by making it portable
7989         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
7990         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
7991         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
7992         * debugger/mcs51/cmd.c: converted multi-line string literals
7993         * sim/ucsim/globals.cc: converted multi-line string literals
7994         * src/SDCCmain.c: introduced signal handler to remove temp files
7995         * doc/Makefile: small tweaks, implement clean
7996         * doc: removed generated files
7997
7998 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7999
8000         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
8001         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
8002         Address Record is not correctly generated for DS390."
8003
8004 2003-02-02  Borut Razem <borut.razem AT siol.net>
8005
8006         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
8007         * as/mcs51/asm.h: fixed compilation with Borland C
8008         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
8009         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
8010         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
8011         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
8012         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
8013         src/z80/Makefile.bcc: delete $(LIB) only if exist
8014         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
8015
8016 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
8017
8018         * device/include/malloc.h: introduced NULL
8019         * device/include/string.h: introduced NULL
8020         * device/include/stdlib.h: introduced NULL
8021         * device/lib/_memcpy.c: removed NULL
8022         * device/lib/_strcat.c: removed NULL
8023         * device/lib/_strchr.c: removed NULL
8024         * device/lib/_strcmp.c: removed NULL
8025         * device/lib/_strcpy.c: removed NULL
8026         * device/lib/_strcspn.c: removed NULL
8027         * device/lib/_strlen.c: removed NULL
8028         * device/lib/_strncat.c: removed NULL
8029         * device/lib/_strncmp.c: removed NULL
8030         * device/lib/_strncpy.c: removed NULL
8031         * device/lib/_strpbrk.c: removed NULL
8032         * device/lib/_strrchr.c: removed NULL
8033         * device/lib/_strspn.c: removed NULL
8034         * device/lib/_strstr.c: removed NULL
8035         * device/lib/_strtok.c: removed NULL
8036         * device/lib/malloc.c: removed NULL, include own header
8037
8038 2003-02-02    <johan AT balder>
8039
8040         * src/mcs51/ralloc.c (packForPush): fixed bug #631653, maybe other ports need this too? At least now some new alerts in SDCCBBlock.c and SDCCicode.c gives an early warning
8041         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
8042         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
8043         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
8044         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
8045         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
8046
8047 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8048
8049         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
8050         area 'DATA'"
8051
8052 2003-02-01    <johan AT balder>
8053
8054         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
8055
8056 2003-01-31    <johan AT CP255758-A>
8057
8058         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
8059
8060 2003-01-30    <johan AT balder>
8061
8062         * src/SDCCBBlock.c: automatic bug detection
8063         * src/SDCCicode.c: automatic bug detection
8064
8065 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8066
8067         * src/SDCCglobl.h:   now --xram-size 0 works
8068         * src/SDCCmain.c:    now --xram-size 0 works
8069
8070 2003-01-29    <johan AT balder>
8071
8072         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
8073
8074 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8075
8076         * as/mcs51/aslink.h: Added options --xram-size and --code-size
8077         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
8078         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
8079         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
8080         * src/SDCCglobl.h:   Added options --xram-size and --code-size
8081         * src/SDCCmain.c:    Added options --xram-size and --code-size
8082
8083 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
8084
8085         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
8086         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
8087
8088 2003-01-27    <johan AT balder>
8089
8090         * src/SDCC.y: fixed bug #613764
8091
8092 2003-01-26    <johan AT balder>
8093
8094         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
8095         * src/SDCCsymt.h: fixed bug #673374
8096         * src/SDCCglue.c: fixed bug #661910
8097         * src/SDCCast.c: fixed bug #458099 and 673374
8098
8099 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
8100
8101         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
8102         * as/mcs51/strcmpi.h: added
8103         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
8104         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
8105         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
8106         * as/mcs51/assym.c: strcmpi -> as_strcmpi
8107         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
8108         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
8109         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
8110         * as/mcs51/Makefile.aslink: new module strcmpi
8111         * as/mcs51/Makefile.asx8051: new module strcmpi
8112         * as/mcs51/Makefil.bcc: new module strcmpi
8113         * as/mcs51/Makefile.in: new module strcmpi
8114         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
8115
8116 2003-01-26    <johan AT balder>
8117
8118         * src/SDCCglue.c: reverted back to 1.124
8119         * src/SDCCast.c: reverted back to 1.156
8120         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
8121
8122 2003-01-25    <johan AT balder>
8123
8124         * src/SDCCglue.c: A better fix for bug #661910
8125         * src/SDCCast.c: A better fix for bug #661910
8126         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
8127
8128 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
8129
8130         * src/Makefile.in: remove spawn.o
8131         * src/SDCCmain.c: remove spawn.h
8132         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
8133         * src/spawn.c: removed
8134         * src/spawn.h: removed
8135         * support/regression/ports/ds390/spec.mk: link with -r
8136
8137 2003-01-24    <johan AT CP255758-A>
8138
8139         * src/ds390/gen.c (aopOp): fixed bug #667458
8140         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
8141         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
8142         (createIvalCharPtr): an ival doesn't always have a storage class anymore
8143
8144 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
8145
8146         * src/mcs51/peeph.def: better assembler identation by Frieder
8147         * src/mcs51/gen.c: better assembler identation by Frieder
8148
8149 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
8150
8151         * as/z80/string.h: removed for gcc 3.2
8152         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
8153         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
8154
8155 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
8156
8157         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
8158         * src/SDCCpeeph.c (replaceRule): fix bug #663503
8159         * support/regression/Makefile: separate temp files for ports
8160         * support/regression/generate-cases.py: separate temp files for ports
8161         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
8162         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
8163
8164 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
8165
8166         * moved tinitalk to device/examples/ds390
8167
8168 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
8169
8170         * as/mcs51/lkmem.c: rflag is for DS390
8171         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
8172         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
8173                          (linkEdit): move mem- and map-files the same way as ihx-files
8174         * src/z80/main.c (_setDefaultOptions): removed --generic
8175         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
8176         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
8177         * src/pic/glue.c (picglue): --c1mode works again
8178         * src/pic16/glue.c (pic16glue): --c1mode works again
8179         * src/asm.c (printCLine): fix #660034
8180
8181 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
8182
8183         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
8184         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
8185         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
8186         * as/mcs51/lkmem (summary): better fix for sp problem
8187         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
8188         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
8189         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
8190                                               remove --stack-after-data
8191
8192 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
8193
8194         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
8195         * src/SDCCutil.c (join): ugly bug: missing '\0'
8196         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
8197
8198 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
8199
8200         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
8201         * src/port.h: typo
8202         * src/pic/main.c (_asmCmd): gpasm supports -o
8203         * src/z80/main.c: more general macros
8204         * device/lib/Makefile.in: remove intermediate files
8205
8206 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
8207
8208         * .version: Bumped version number to 2.3.3
8209         * src/SDCCBBlock.c: new option -o
8210         * src/SDCCglobl.h: new option -o
8211         * src/SDCCglue.c: new option -o
8212         * src/SDCCmain.c: new option -o
8213         * src/asm.c: new option -o
8214         * src/ds390/main.c: new option -o
8215         * src/pic/glue.c: new option -o
8216         * src/pic/pcode.c: new option -o
8217         * src/pic/ralloc.c: new option -o
8218         * src/pic16/glue.c: new option -o
8219         * src/pic16/pcode.c: new option -o
8220         * src/pic16/ralloc.c: new option -o
8221         * src/z80/main.c: new option -o
8222         * device/lib/Makefile.in: use -o
8223         * support/regression/ports/ds390/spec.mk: use -o
8224         * support/regression/ports/gbz80/spec.mk: use -o
8225         * support/regression/ports/mcs51/spec.mk: use -o
8226         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
8227         * support/regression/ports/z80/spec.mk: use -o
8228         * support/regression/ports/ucz80/spec.mk: use -o
8229         * support/regression/ports/xa51/spec.mk: use -o
8230         * support/regression/fwk/lib/timeout.c: fix usage string
8231
8232 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
8233         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
8234
8235 2003-01-07    <johan AT balder>
8236
8237         * src/SDCCast.c (decorateType): fixed bug #600035
8238
8239 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
8240         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
8241         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
8242         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
8243         * src/pic/pcode.c: outcommented unused variable to remove warnings
8244         * src/pic/ralloc.c: outcommented unused variable to remove warnings
8245
8246 2003-01-06    <karl AT turbobit.com>
8247         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
8248    regression tests.
8249
8250 2003-01-06    <johan AT balder>
8251
8252         * src/SDCCicode.c: fixed array add
8253
8254 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
8255         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
8256         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
8257
8258 2003-01-04    <johan AT balder>
8259
8260         * src/SDCCval.c (getNelements): fixed the initialized array of structures
8261
8262 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8263         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
8264
8265 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
8266         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
8267         * support/regression/tests/bug-524697.c: fit mem usage into 8032
8268
8269 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
8270         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
8271
8272 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
8273         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
8274
8275 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
8276         * src/mcs51/main.c: removed {bindir}{sep} from aslink
8277
8278 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8279
8280     * in \sdcc\as\mcs51\ changed these files in order to create an
8281     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
8282     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
8283     following files to include the previous two files: aslink.dsp,
8284     Makefile.aslink, Makefile.bcc, and Makefile.in.
8285
8286     * Changed \sdcc\src\SDCCmain.c so it creates files with extension
8287     .adb instead of .cdb
8288
8289 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8290
8291         * \sdcc\as\mcs51\lklist.c: Now reports memory usage using the
8292         value from option --iram-size.
8293
8294 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8295
8296         * \sdcc\as\mcs51\lklist.c: added boundary check before using
8297         dram[] array.
8298
8299 2002-09-18    <wiml AT hhhh.org>
8300
8301         * SDCClrange.h: exposed setFromRange() and setToRange()
8302         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
8303           packRegsForAccUse() (bug 542397)
8304         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
8305           multiple times and emitting the fetch operations more than once
8306           added aopGetUsesAcc() function to allow binary operators to
8307           fetch their operands in the correct order; made genMinus() emit
8308           compact code for X = LITERAL - Y
8309
8310 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8311         * \sdcc\as\mcs51\lklist.c: Fixed incorrect number of parameters to
8312         sprintf() in line 1267.
8313
8314 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8315         * \sdcc\src\SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
8316         like ports.
8317
8318 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8319         Changes to aslink (All the changes are marked with 'JCF'):
8320
8321         * \sdcc\as\mcs51\aslink.h: External definition of sflag and
8322         summary().
8323
8324         * \sdcc\as\mcs51\lkarea.c: Computes the size of area BSEG_BYTES from
8325         area BSEG.  Also moves, if possible, the DATA area down into the internal
8326         ram so more space is available.
8327
8328         * \sdcc\as\mcs51\lkdata.c: Definition of memory summary output flag
8329         sflag.
8330
8331         * \sdcc\as\mcs51\lklist.c: For the BSEG area report the size in bits,
8332         not bytes.  Function summary() which creates a memory usage summary
8333         file with extension .mem.  Reports of overlaping stack and small stack
8334         size.  If the space for the stack is less than 16 bytes aslink trows a
8335         warning.
8336
8337         * \sdcc\as\mcs51\lkmain.c: Creation of some of the default areas for
8338         the 8051.  Option 'y' for memory summary output file.
8339
8340         Changes to sdcc (All the changes are marked with 'JCF'):
8341
8342         * \sdcc\src\SDCCglobl.h: External definition of RegBankUsed[4].
8343
8344         * \sdcc\src\SDCCglue.c:  If a register bank is used, creates an
8345         overlaying area for it (uses RegBankUsed[4]).
8346
8347         * \sdcc\src\SDCCmain.c: Definition RegBankUsed[4]; marks register
8348         bank zero as used by default.  By default aslink locates the stack
8349         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
8350         the creation of the .mem file.  Delegates the allocation of data area
8351         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
8352         the begining of the stack area to aslink.
8353
8354         * \sdcc\src\SDCCmem.c:  If a register bank is used, marks it so
8355         glue() in SDCCglue.c creates an area for it.
8356
8357 2002-09-03  Borut Razem <borut.razem AT siol.net>
8358         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
8359         sdcc/src/pic/glue.c:
8360         introduced atexit() handler for teporay files removal in case of
8361         errors, assertions, ...
8362
8363 2002-08-29  Borut Razem <borut.razem AT siol.net>
8364         * sdcc/support/cpp2/auto-host_vc_in.h:
8365         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
8366         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
8367         Maybe there is a similar problem with BORLANDC? It should be checked!
8368
8369         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
8370         corrected improper use of assert: the assignment to clr variable was done inside the assert.
8371         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
8372         was not executed, and the compiler (cl) launched a warning:
8373         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
8374
8375 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
8376         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
8377
8378 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
8379         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
8380
8381         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
8382           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
8383           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
8384           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
8385           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
8386           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
8387           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
8388         - added Release configuration in VS projects
8389         - review of compiler an linker options
8390         - VC .exe files are generated in bin_vc directory, not to interfere
8391           with binaries generated from other projects (cygwin, mingw, bcc ...)
8392
8393         * sdcc/src/yacc.dsp: added
8394
8395         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
8396         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
8397         and insert the version number definitions from .version
8398
8399         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
8400
8401         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
8402         added - genarate auto-host.h using auto-host_vc_in.h as template
8403
8404         * sdcc/sdcc_vc.h,
8405         removed from CVS, generated automatically
8406
8407 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
8408         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
8409
8410 2002-08-11  Borut Razem <borut.razem AT siol.net>
8411         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
8412
8413 2002-08-10  Borut Razem <borut.razem AT siol.net>
8414         * src/SDCCmain.c (main):
8415         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
8416         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
8417         The consequence was that some temporary files were not removed.
8418
8419         * src/SDCCglue.c:
8420         unification of code in functions tempfilename() and tempfile():
8421         function tempnam() is defined in Visual Studio 6.0 and .NET
8422
8423         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
8424
8425         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
8426           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
8427         - removed compiler command line option /WX: Treats all warnings as errors
8428         - update a list of source files, included into the project
8429
8430         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
8431           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
8432         changed project type to Generic Project so that can be correcly converted to VS.NET project
8433
8434         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
8435
8436         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
8437
8438         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
8439
8440         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
8441         added return 0 statements after assert() to make compiler happy
8442
8443         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
8444         added newline in the def file to keep MSC compiler satisfied
8445
8446         * sdcc/src/z80/gen.c:
8447         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
8448           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
8449         - solved MSC error in function aopDump()
8450
8451         * sdcc_vc.h: define PREFIX as "\\sdcc"
8452
8453 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
8454         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
8455
8456 2002-06-22  Scott Dattalo <scott AT dattalo.com>
8457         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
8458         - Rewrote the register banking algorithm.
8459         - Added pCode live-range analysis to registers (for now, only non-used and
8460         singly-used registers optimized away)
8461
8462         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
8463
8464         * support/scripts/inc2h.pl Kevin L. Pauba <klpauba AT cox.net> submitted this perl script for converting MicroChip include files into SDCC Pic include files.
8465
8466 2002-05-10  Scott Dattalo <scott AT dattalo.com>
8467         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
8468
8469 2002-04-22  Michael Hope  <michaelh AT vroom>
8470
8471         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
8472
8473         * configure.in (DD_COPT): Added include support required for gbdk.
8474
8475         * .version: Bumped version number just to increase it.
8476
8477         * src/SDCCmain.c: Added -nostdinc to the default options.
8478
8479 2002-04-15  Michael Hope  <michaelh AT vroom>
8480
8481         * device/lib/z80/printf.c (sprintf): Added.
8482
8483         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
8484
8485         * src/z80/peeph.def: Added transpose redundent load rule.
8486
8487         * src/z80/main.c: Added force callee saves for jaune.
8488
8489         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
8490
8491         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
8492
8493 2002-03-28  Johan Knol  <johan AT balder>
8494
8495         * src/SDCCval.c: fixed bug #532436
8496
8497 2002-03-14  Scott Dattalo <scott AT dattalo.com>
8498         * /src/port.h:
8499         Added "char *Processor" field to the port structure.
8500
8501         * /src/SDCCmain.c:
8502         Added -p option. Allows port dependent processor to be specified.
8503
8504         * all ports:
8505         Initialized the new field char *Processor field to NULL in all ports
8506
8507         * /src/pic/*:
8508         Compiler generated registers for interrupt context saving
8509         were not getting allocated.
8510
8511 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
8512
8513         * /src/SDCCast.c:
8514         Fixed left shift. Will promote the left side of a left shift
8515         if a) left shifting more than size of operand or b) when assigned
8516         to something size > size of left side
8517
8518 2002-03-14  Scott Dattalo <scott AT dattalo.com>
8519         * src/pic/*
8520         tons of changes. Register allocation has been
8521         rewritten. Added customization for the various PICs. Flow
8522         analysis is restructured. ...
8523
8524         * src/pic/device.h:
8525         Added
8526
8527         * src/pic/device.c:
8528         Added. device.c is a PIC port hack to accomodate variations
8529         in PIC devices.
8530
8531 2002-03-13  Michael Hope  <michaelh AT vroom>
8532
8533         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
8534
8535 2002-03-04  johanknol  <johanknol AT manik>
8536
8537         * /src/SDCCval.c: fixed
8538
8539         const unsigned char arr[][2] = { { 0, 1 } };
8540         t18.c:1: error: Initializer element is not constant
8541
8542 2002-03-04  bela  <bela AT manik>
8543
8544         * /device/include/mcs51reg.h:
8545         ds89c420 register definition update
8546
8547 2002-03-03    <johan AT FRIJA>
8548
8549         * support/Util/SDCCerr.c: did something, but don't no why anymore
8550
8551         * support/regression/tests/bug-524691.c: made it a little less shy
8552
8553         * src/SDCCast.c (decorateType): fixed bug #524697
8554
8555         * src/SDCCast.c: made some lineno improvements
8556
8557         * src/SDCCval.c (getNelements): changed warning to error
8558
8559         * src/SDCCglue.c (printIvalArray): changed warning to error
8560
8561         * src/SDCCicode.c: fixed a warning for mingw
8562
8563         * src/SDCCast.c (decorateType): fixed the << promotion for ops
8564
8565         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
8566
8567 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
8568
8569         * src/ds390/peeph.def:
8570         Added some more peephole rules
8571
8572         * src/ds390/gen.c: Various fixes & enhancements
8573
8574         * src/SDCClrange.c, src/SDCClrange.h:
8575         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
8576
8577         * src/ds390/ralloc.c:
8578         various fixes & enhancements (ds390) specific
8579
8580         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
8581         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
8582         from rallocs.
8583
8584         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
8585
8586 2002-03-02    <johan AT FRIJA>
8587
8588         * src/SDCCast.c (decorateType): fixed bug #524708
8589
8590         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
8591
8592         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
8593
8594 2002-03-01  Michael Hope  <michaelh AT vroom>
8595
8596         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
8597
8598         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
8599
8600 2002-03-01    <johan AT FRIJA>
8601
8602         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
8603
8604         * src/SDCCast.c (decorateType): fixed bug #524209
8605
8606         * src/SDCCval.c (valNot): fixed bug #524195
8607
8608 2002-02-26    <johan AT balder>
8609
8610         * src/xa51/gen.c: fixed a warning
8611
8612         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
8613
8614         * src/SDCCast.c (decorateType): fixed bug #522534
8615
8616 2002-02-23    <johan AT balder>
8617
8618         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
8619
8620 2002-02-22    <johan AT balder>
8621
8622         * src/SDCCast.c: fixed bug #514865
8623
8624         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
8625
8626 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
8627
8628         * sdcc/src/SDCCloop.c:
8629         Previous fix was not good. basic blocks that have "break" or "return" are
8630         not really partof a loop , but live ranges used in these blocks should
8631         be live thru the entire loop, so set partOfLoop but don't add them to
8632         loop region
8633
8634 2002-02-21    <johan AT FRIJA>
8635
8636         * src/SDCCcse.c: fixed bug #514308
8637
8638 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
8639
8640         * src/SDCCloop.c:
8641         Fixed BUG #519583. If a conditional block ended in a return/break
8642         statement inside a loop, it was not being considered part of the loop.
8643
8644         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
8645
8646 2002-02-10  Karl Bongers <karl AT turbobit.com>
8647
8648         * debugger/*:
8649         Fixed up SDCDB debugger somewhat.  Updated debugger/README
8650         with lots of comments and notes.
8651
8652         * device/examples/test2.c:
8653         Fix bug, "red" variable not being initialized(compiler complained).
8654
8655         * device/examples/Makefile, examples/test3.c:
8656         Add Makefile in device/examples folder, compiles test3.c
8657         for use as a multiple module SDCDB test case.
8658
8659         * sim/ucsim/cmd.src/cmdset.cc:
8660         Took out debug printfs in ucsim "next" command.
8661
8662         * sim/ucsim/xa.src:
8663         Karl and Johan start ucsim XA support.  Most dissassembly working,
8664         about 75% emulation done(plenty of work remaining).
8665
8666         * sim/ucsim/z80.src:
8667         Add Z80 support to ucsim, add test-ucz80 regression test,
8668         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
8669         Notice z80 compiler fails on examples/test3.c/crc code.
8670
8671 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
8672
8673         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
8674         Added support for --parms-in-bank1
8675
8676         * src/ds390/peeph.def:
8677         added a few more peephole optimzations
8678
8679         * src/ds390/main.c:
8680         1) added __builtin_inp & __builtin_outp used to read in data of given length
8681            from a memory mapped port
8682         2) added __builtin_memcmp
8683         3) added __builtin_swapw swap bytes of a short
8684
8685         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
8686         1) handle multiple send & receives from register bank1
8687         2) ralloc can now allocate DPTR1 to some liveRanges
8688
8689         * src/SDCCsymt.c, src/SDCCsymt.h:
8690         changes to handle multiple sends & receives
8691
8692         * src/SDCCptropt.h:
8693         added some pointer arithmetic optimization
8694
8695         * src/SDCCptropt.c:
8696         added some pointer arithmetic optimizations but not stable yet so not
8697         called from anywhere (will get this working shortly)
8698
8699         * src/SDCCopt.c: fixed for multiple sends & receives
8700
8701         * src/SDCCmain.c:
8702         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
8703         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
8704            set preprocessor defines (depending on options)
8705
8706         * src/SDCCicode.c, src/SDCCicode.h:
8707         changes made to handle multiple sends & receives
8708
8709         * src/SDCCglobl.h:
8710         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
8711
8712         * src/SDCCcse.c, src/SDCCcse.h:
8713         added function findbackward def (to be used in upcoming optimization)
8714
8715         * src/SDCCcflow.c, src/SDCCcflow.h:
8716         added function returnAtEnd - to determine if a basic block terminates with
8717         a RETURN iCode
8718
8719         * src/SDCCast.c, src/SDCCast.h:
8720         added option parms-in-bank1
8721
8722         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
8723         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
8724         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
8725         adjusted for --parms-in-bank1 option
8726
8727         * device/include/string.h:
8728         donot redefine "reentrant" keyword
8729
8730         * device/include/ds80c390.h: Added some more SFRs
8731
8732 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
8733
8734         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
8735
8736 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
8737
8738         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
8739
8740 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
8741
8742         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
8743
8744 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
8745
8746         * Added --xram-movc option
8747
8748 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
8749
8750         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
8751
8752 2002-01-11  Johan Knol
8753
8754         * Added math lib of Jesus Calvino-Fraga
8755
8756 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
8757
8758         * src/SDCCmain.c (processFile): fix processing of ../../src.c
8759         * support/regression/Makefile: new target test-mcs51-stack-auto
8760         * support/regression/ports/mcs51-stack-auto/spec.mk: added
8761
8762 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
8763
8764         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
8765
8766 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
8767
8768         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
8769
8770 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
8771
8772         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
8773
8774         * src/SDCCglue.h: add definition for printIvalChar()
8775
8776 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
8777
8778         * src/SDCCast.c: fix #498138 by Johan
8779
8780         * src/SDCCglue.c: fix #498138 by Johan
8781
8782 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
8783
8784         * support/regression/Makefile: fix clean
8785
8786         * support/regression/ports/ds390/support.c: fix transmission of last character
8787
8788 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
8789
8790         * /sdcc/src/ds390/gen.c:
8791         a) improved computing address of stack variable
8792         b) took out some #if 0 code
8793         c) improved parmBytes adjustment
8794         d) improved genPlusIncr & genMinusIncr
8795         e) genCmp could generate bad code (when left assigned to DPTR)
8796         f) Fixed bug in hasInc
8797
8798         * /sdcc/src/ds390/ralloc.c:
8799         a) packRegsForSupport could mess up live information (Fixed)
8800         b) packRegsDPTRuse could be incorrect for left & right shift
8801
8802         * /sdcc/src/mcs51/ralloc.c:
8803         packRegsForSupport could mess up the live information (Fixed)
8804
8805         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
8806
8807         * /sdcc/src/SDCCast.c:
8808         can reverse a loop even if function call is present as long
8809         as the loop control variable is local & is not passed as parameter
8810
8811 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
8812
8813         * /sdcc/ChangeLog: *** empty log message ***
8814
8815         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
8816         More builtin function additions for TININative
8817
8818         * /sdcc/src/ds390/ralloc.c:
8819         Had broken the regression testsuite
8820
8821         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
8822
8823         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
8824         Added funcattr hasStackParms will be set for reentrant functions when there
8825         are paramteres on the stack, this helps in minimizing frame pointer generation
8826         typeFromStr can handle function pointers now
8827
8828         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
8829         *** empty log message ***
8830
8831 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
8832
8833         * /src/ds390/gen.c, /src/ds390/main.c:
8834         More builtin function additions for TININative
8835
8836         * /src/ds390/ralloc.c:
8837         Had broken the regression testsuite
8838
8839         * /src/SDCCast.c: Fixed a bug in dumptree
8840
8841         * /src/SDCCsymt.c, /src/SDCCsymt.h:
8842         Added funcattr hasStackParms will be set for reentrant functions when there
8843         are paramteres on the stack, this helps in minimizing frame pointer generation
8844         typeFromStr can handle function pointers now
8845
8846         * /doc/builtins.txt, /doc/TININative.txt:
8847         *** empty log message ***
8848
8849
8850 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
8851
8852         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
8853         ALPHA version for -mTININative
8854
8855         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
8856         updated to reflect changes in the port structure
8857
8858         * /src/port.h:
8859         added function do_assemble (similar to do_link) if non-null this function
8860         will be called to do assembly (-mTININative) requires a multi command
8861         assembly
8862         added function genAssemblerEnd will be called to generate assembler Epilogue
8863
8864         * /src/SDCCsymt.c:
8865         added _JavaNative to debug info printing
8866
8867         * /src/SDCCmain.c: added option --tini-libid
8868         added port->do_assemble function (-mTININative) has a multi command assemble
8869
8870         * /src/SDCCglue.c: Disabled "constExpr" check
8871         added port->genAssemblerEnd function
8872
8873         * /src/SDCCglobl.h: Added option --tini-libid value
8874
8875         * /src/SDCCast.h:
8876         tookout optimizeCompare from the header (has no external references)
8877
8878         * /src/SDCCast.c: made one more function "static"
8879
8880 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
8881
8882         * src/z80/mappings.i: Added z80asm support.
8883
8884         * src/z80/main.c: Added z80asm support on --asm=z80asm
8885
8886         * src/z80/gen.c: Fixed asm portability issues.
8887
8888         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
8889
8890         * src/SDCCglue.c (printExterns): Added global/extern split.
8891
8892 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
8893
8894         * support/regression/Makefile: added test for mcs51 model large
8895
8896         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
8897
8898         * support/regression/ports/gbz80/spec.mk: added -mgbz80
8899
8900 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
8901
8902         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
8903
8904 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
8905
8906         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
8907
8908         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
8909
8910 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
8911
8912         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
8913
8914         * support/regression/tests/simplefloat.c: Port to mcs51.
8915
8916 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
8917         * support/regression/tests/bug-485362.c: Added.
8918
8919         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
8920
8921         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
8922
8923         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
8924
8925         * src/z80/gen.c (aopDump): Added a dump function.
8926
8927 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
8928         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
8929
8930         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
8931
8932         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
8933
8934         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
8935
8936         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
8937
8938         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
8939
8940         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
8941
8942         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
8943
8944         * support/regression/ports/ds390/support.c: Use tinibios.
8945
8946         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
8947
8948 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
8949
8950         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
8951         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
8952
8953         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
8954
8955         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
8956
8957 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
8958
8959         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
8960
8961         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
8962         (packRegsForIYUse): Created and optimised.
8963
8964 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
8965
8966         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
8967 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
8968
8969         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
8970
8971         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
8972
8973         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
8974
8975 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
8976
8977         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
8978
8979         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
8980
8981 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
8982
8983         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
8984
8985         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
8986
8987         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
8988
8989 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
8990
8991         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
8992         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
8993         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
8994
8995         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
8996
8997         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
8998         (genNotFloat): Added.
8999         (genUminusFloat): Added.
9000
9001         * device/lib/z80/Makefile: Added floating pt stubs.
9002
9003         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
9004
9005         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
9006
9007         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
9008
9009 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
9010
9011         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
9012
9013         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
9014
9015         * sdcc/support/regression/Makefile: Add port ds390.
9016
9017         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
9018
9019         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
9020
9021         * sdcc/support/regression/ports/ds390/spec.mk: Added.
9022
9023         * sdcc/support/regression/ports/ds390/support.c: Added.
9024
9025         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
9026
9027         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
9028
9029         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
9030
9031 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
9032
9033         * device/include/malloc.h: Added z80 and gbz80 support.
9034
9035         * device/lib/gbz80/heap.s: Added.
9036
9037         * device/lib/z80/heap.s: Added.
9038
9039         * device/lib/malloc.c: Added z80 and gbz80 support.
9040
9041         * support/regression/tests/malloc.c (testMalloc): Added.
9042
9043         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
9044
9045         * support/regression/tests/bug-478094.c: Added.
9046
9047         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
9048
9049 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
9050
9051         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
9052
9053         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
9054
9055         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
9056
9057         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
9058
9059         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
9060
9061 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
9062
9063         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
9064
9065 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
9066
9067         * support/regression/tests/bug-477927.c: Added.
9068
9069         * src/z80/peeph.def: Added minor rules.
9070
9071         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
9072
9073         * src/z80/peeph.def: Added jump optimisation modification.
9074
9075 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
9076
9077         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
9078
9079 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
9080
9081         * support/regression/tests/funptrs.c: Added.
9082
9083 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
9084
9085         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
9086
9087 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
9088
9089         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
9090
9091         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
9092
9093         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
9094         (movLeft2ResultLong): Created.
9095
9096         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
9097         (joinPushes): Added.  Joins two char pushes into a word push.
9098
9099 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
9100
9101         * support/cpp2/Makefile.in (install): Added creation of dest dir.
9102
9103         * support/makebin/Makefile (install): Added creation of dest dir.
9104
9105 2001-10-24 Karl Bongers <karl AT turbobit.com>
9106
9107         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
9108
9109 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
9110
9111         * src/z80/ralloc.c: Turned off faulty pack for one use.
9112
9113         * src/z80/peeph-gbz80.def: Removed redundent restart options.
9114
9115         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
9116
9117 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
9118
9119         * support/regression/Makefile: Improved clean
9120
9121         * support/regression/ports/gbz80/spec.mk: Added clean
9122
9123         * support/regression/ports/host/spec.mk: Added clean
9124
9125         * support/regression/ports/z80/spec.mk: Added clean
9126
9127         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
9128
9129         * support/regression/ports/mcs51/timeout.c: little improvements
9130
9131 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
9132
9133         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
9134
9135         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
9136
9137         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
9138
9139 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
9140
9141         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
9142
9143         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
9144
9145 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
9146         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
9147
9148         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
9149
9150         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
9151
9152         * src/mcs51/main.c (_linkCmd): Added bin path to command.
9153
9154         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
9155
9156         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
9157
9158         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
9159
9160         * support/regression/tests/longor.c: Added.
9161
9162 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
9163
9164         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
9165
9166         * as/mcs51/aslink.h: define PATH_MAX
9167
9168         * as/mcs51/asm.h: define PATH_MAX
9169
9170         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
9171
9172         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
9173
9174         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
9175
9176         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
9177
9178         * src/SDCCglobl.h: define PATH_MAX
9179
9180         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
9181
9182         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
9183
9184 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
9185
9186         * src/z80/gen.c (gencjneshort): Fixed
9187
9188         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
9189
9190 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
9191
9192         * support/regression/tests/bug-469671.c: Added.
9193
9194         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
9195
9196 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
9197
9198         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
9199
9200         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
9201
9202 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
9203
9204         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
9205
9206         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
9207
9208         * src/device/lib/_mullong.c : removed hint: nooverlay bug
9209
9210         * src/device/lib/_divuint.c : removed hint: nooverlay bug
9211
9212         * src/device/lib/_divulong.c: removed hint: nooverlay bug
9213
9214         * src/device/lib/_moduint.c : removed hint: nooverlay bug
9215
9216         * src/device/lib/_modulong.c: removed hint: nooverlay bug
9217
9218 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
9219
9220         * src/z80/gen.c (setupPair): Added 'extended stack' support for the z80.  Can now have local variables or parameters of more than 127 bytes in size.  Increadibly slow, but it will work.  Currently anything involving the carry flag.
9221
9222         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
9223
9224         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
9225
9226 2001-10-07    <johan AT FRIJA>
9227
9228         * device/lib/gets.c (gets): fixed the return value.
9229
9230 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
9231         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
9232
9233         * src/SDCCpeeph.c (peepHole): Fixed all leaks.  Added trace support for freeing lines.  Optimised restart logic to re-run instead of restart.  Now compiles dscan.c on ~60MB instead of ~200MB.
9234
9235         * support/Util/NewAlloc.c: Added ability to use libgc instead of malloc.  Added Safe_free and Safe_strdup.  Added trace support where you can log allocations and free all at once.
9236
9237         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
9238
9239         * src/pic/gen.c: Removed Safe_strdup.
9240
9241         * configure.in: Added option to enable libgc support.
9242
9243         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
9244         (bitVectUnion): Optimised.
9245         (bitVectIntersect): Optimised.
9246         (bitVectBitsInCommon): Optimised.
9247         (bitVectCplAnd): Optimised.
9248
9249         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
9250
9251 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
9252
9253         * src/SDCCmain.c: distinguish between assembler debug and plain options
9254
9255         * src/avr/main.c:   remove standard assembler options
9256
9257         * src/ds390/main.c: remove standard assembler options
9258
9259         * src/mcs51/main.c: remove standard assembler options
9260
9261         * src/port.h: removed "PENDING" comment
9262
9263 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
9264
9265         * src/device/lib/_mulint.c  : new, with assember functions
9266
9267         * src/device/lib/_mullong.c : new, with assember functions
9268
9269         * src/device/lib/_divuint.c : with assember functions
9270
9271         * src/device/lib/_divsint.c : with assember functions
9272
9273         * src/device/lib/_divulong.c: with assember functions
9274
9275         * src/device/lib/_divslong.c: with assember functions
9276
9277         * src/device/lib/_moduint.c : with assember functions
9278
9279         * src/device/lib/_modsint.c : with assember functions
9280
9281         * src/device/lib/_modulong.c: with assember functions
9282
9283         * src/device/lib/_modslong.c: with assember functions
9284
9285         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
9286
9287         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
9288
9289         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
9290                                       replaced _mululong.c and _mulslong.c by _mullong.c
9291
9292 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
9293
9294         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
9295
9296 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
9297
9298         * src/SDCCglue.c: test, if win32api is available for MINGW
9299
9300 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
9301
9302         * src/SDCCsymt.c: no more _modifier in printTypeChain()
9303         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
9304         * support/regression/ports/gbz80/spec.mk: removed GENERIC
9305         * support/regression/ports/host/spec.mk: removed GENERIC
9306         * support/regression/ports/mcs51/spec.mk: removed GENERIC
9307         * support/regression/ports/z80/spec.mk: removed GENERIC
9308
9309 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
9310
9311         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
9312
9313         * support/regression/tests/bug-467035.c: Created.
9314
9315 2001-10-01    <johan AT FRIJA>
9316
9317         * src/SDCC.y: fixed bug #466586 part 1
9318
9319 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
9320
9321         * SDCCicode.c: z80 has no generic pointers
9322         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
9323
9324 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
9325
9326         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
9327
9328 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
9329
9330         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
9331
9332         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
9333
9334 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
9335
9336         * configure.in: Fixed up so that ucsim is only configured once.
9337
9338         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
9339
9340         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
9341         (getPathDifference): As above.
9342
9343         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
9344
9345         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
9346
9347 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
9348         * .version: Updated to 2.3.1
9349
9350         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
9351         Added copyright header.
9352
9353         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
9354         (assemble): Added support for macro based assembler commands.
9355         (linkEdit): Added support for macro based linker commands.
9356         (preProcess): Changed the pre-processor to use macros.
9357         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
9358         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
9359
9360         * device/lib/z80/crt0.s: Added module name for debugging.
9361
9362 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
9363
9364         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
9365
9366         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
9367
9368         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
9369
9370         * src/Makefile.in: Added SDCCmacro and SDCCutil
9371
9372 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
9373
9374         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
9375
9376 2001-09-16    <johan AT FRIJA>
9377
9378         * support/Util/SDCCerr.c: fixed up the error/warning/info database. I only changed the E_ W_ I_ prefix to what SDCCerr.c says it is.
9379
9380 2001-09-15    <johan AT FRIJA>
9381
9382         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
9383         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
9384
9385 2001-09-11    <johan AT FRIJA>
9386
9387         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
9388
9389 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
9390
9391         * support/regression/tests/bug-460444.c: Added test case.
9392
9393         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
9394         (genCast): Added justification for all of the asserts.
9395
9396 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
9397
9398         * support/regression/support.c: _xdata replaced by xdata
9399
9400         * support/regression/spec.mk: removed _generic
9401
9402 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
9403
9404         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
9405
9406         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
9407         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
9408
9409         * src/z80/peeph.def: Added a rule to optimise shift then compare.
9410
9411         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
9412
9413         * support/regression/tests/bug-460010.c: Added test case.
9414
9415         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
9416
9417 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
9418
9419         * support/regression/Makefile: inter-port-clean adjusted for mcs51
9420
9421         * support/regression/testfwk.c: removed workaround for bug #436344
9422
9423         * support/regression/tests/bp.c: use less memory with mcs51
9424
9425         * support/regression/tests/bug-441448.c: use less memory
9426
9427         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
9428
9429         * support/regression/collate-results.py: typo
9430
9431 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
9432
9433         * support/regression/tests/fetchoverlap.c: Added new test case.
9434
9435         * support/regression/tests/bp.c: Added new test case.
9436
9437         * support/regression/tests/bug-448984.c: Added new test case.
9438
9439         * support/regression/tests/pow2shifts.c: Added new test case.
9440
9441         * src/z80/gen.c: Turned off the noise it normally generates for the release.
9442         (genlshTwo): Fixed right shift for count > 8.
9443
9444         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
9445
9446 2001-09-08    <johan AT FRIJA>
9447
9448         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
9449
9450 2001-09-07    <johan AT FRIJA>
9451
9452         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
9453
9454         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
9455
9456 2001-09-06    <johan AT FRIJA>
9457
9458         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
9459         * bernhard noted me at this: "() equals to (void)" (1.38)
9460
9461 2001-09-05    <johan AT FRIJA>
9462
9463         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
9464
9465 2001-09-04    <johan AT FRIJA>
9466
9467         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
9468
9469
9470 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
9471
9472         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
9473
9474 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
9475
9476         * link/z80/aslink.h: Fixed path for PATH_MAX
9477
9478 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
9479
9480         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
9481
9482         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
9483
9484         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
9485
9486         * src/z80/gen.c (genUminus): Fixed add, sub, and uminus on the gbz80 port for longs.  Had to shift some functions about to do it.
9487
9488 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
9489
9490         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
9491         (genCmp): Fixed up genCmp for the GB with longs.
9492
9493         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
9494
9495         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
9496
9497         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
9498
9499         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
9500
9501 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
9502
9503         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
9504
9505 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
9506
9507         * device/lib/gbz80/crt0.s (init): Fixed up support for the gbz80 such that it will at least run (and fail badly) the regression tests.
9508
9509         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
9510
9511 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
9512
9513         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
9514
9515         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
9516
9517 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
9518
9519   * sim/ucsim/configure:    little improvement of Cygwin-detection
9520   * sim/ucsim/configure.in: little improvement of Cygwin-detection
9521   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
9522   * support/regression/tests/bug-221100.c: small changes for mcs51
9523   * support/regression/tests/bug-221168.c: small changes for mcs51
9524   * support/regression/tests/bug-227710.c: small changes for mcs51
9525   * support/regression/tests/staticinit.c: small changes for mcs51
9526   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
9527   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
9528   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
9529
9530 $Revision$