* as/link/aslink.h: added LKOBJEXT
[fw/sdcc] / ChangeLog
1 2007-03-14 Maarten Brock <sourceforge.brock AT dse.nl>
2
3         * as/link/aslink.h: added LKOBJEXT
4         * as/link/hc08/link_hc08.dsp,
5         * as/link/hc08/Makefile.bcc,
6         * as/link/hc08/Makefile.in,
7         * as/link/mcs51/aslink.dsp,
8         * as/link/mcs51/Makefile.bcc,
9         * as/link/mcs51/Makefile.in: moved lkamof51.c and lkdata.c
10         * as/link/hc08/lkaomf51.c,      as/link/mcs51/lkaomf51.c,
11         * as/link/lkaomf51.c: merged and moved
12         * as/link/hc08/lkdata.c,        as/link/mcs51/lkdata.c,
13         * as/link/z80/lkdata.c,
14         * as/link/lkdata.c: merged and moved
15         * as/link/hc08/lkmain.c,
16         * as/link/mcs51/lkmain.c: cosmetic changes
17         * as/link/z80/lkeval.c,         as/link/lkeval.c: merged
18         * as/link/lklex.c: use LKOBJEXT
19         * as/link/z80/lklist.c,         as/link/lklist.c: merged,
20           ANSI-fied functions, removed bubble-sorts
21         * as/link/z80/lksym.c           as/link/lksym.c: merged,
22           ANSI-fied functions
23         * as/link/z80/linkgbz80.dsp,
24         * as/link/z80/linkz80.dsp,
25         * as/link/z80/Makefile.in: added lkaomf51.c and lknoice.c,
26           moved lkdata.c, lkeval.c, lkhead.c, lklex.x, lklist.c, lksym.c
27         * as/link/z80/lkhead.c,
28         * as/link/z80/lklex.c: deleted
29         * as/link/z80/lklibr.c: moved LKOBJEXT to aslink.h
30         * as/link/z80/lkmain.c: added copyfile()
31
32 2007-03-13 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
33
34         * device/include/mcs51/P89LPC925.h: Added missing P1_6 and P1_7.
35
36 2007-03-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
37
38         * device/lib/_strlen.c: assembler version for mcs51
39
40 2007-03-13 Raphael Neider <rneider AT web.de>
41
42         * device/include/pic16/pic18f2221.h,
43         * device/include/pic16/pic18f2321.h,
44         * device/include/pic16/pic18f2331.h,
45         * device/include/pic16/pic18f4221.h,
46         * device/include/pic16/pic18f4321.h,
47         * device/include/pic16/pic18f4331.h: fixed config byte location names
48         * support/scripts/inc2h-pic16.pl: removed debug output, emit
49           consistently named config byte locations
50
51 2007-03-13 Borut Razem <borut.razem AT siol.net>
52
53         * src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
54           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/s51.src/Makefile.in,
55           sim/ucsim/xa.src/Makefile.in, sim/ucsim/z80.src/Makefile.in,
56           as/link/z80/Makefile.in, as/z80/Makefile.in:
57           introduced LDFLAGS
58
59 2007-03-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
60
61         * device/lib/printfl.c: 13 bytes less __data mem (12 more __idata)
62         * device/lib/printf_large.c: pointer was converted to generic
63         pointer for mcs51 models other than model-small (Maarten noticed)
64
65 2007-03-10 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
66
67         * device/include/mcs51/ADuC84x.h: Added.
68
69 2007-03-10 Borut Razem <borut.razem AT siol.net>
70
71         * src/SDCC.lex, src/SDCCutil.[ch], src/SDCCval:
72           fixed RFE #1624219: double backslashes in filenames;
73           functions hexEscape(), octalEscape() and copyStr() moved from
74           SDCCval.c to SDCCutil.c and made them glovbally available
75
76 2007-03-09 Borut Razem <borut.razem AT siol.net>
77
78         * src/SDCC.lex, src/SDCCast.c. src/SDCCglobl.c, src/SDCCsymt.c,
79           src/SDCCval.c: fixed bugs #1676768: Wrong line number reported and
80           1673361: Missaligned comments in output files
81
82 2007-03-09 Raphael Neider <rneider AT web.de>
83
84         * device/include/pic/pic14devices.txt: fixed confsiz of 16f91[3467]
85
86 2007-03-09 Raphael Neider <rneider AT web.de>
87
88         * src/pic/gen.c,
89         * src/pic/glue.c,
90         * src/pic/ralloc.c: suppress undesired debug output
91         * src/SDCCmain.c (linkEdit): initialize c to quieten compiler
92
93 2007-03-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
94
95         * device/lib/printf_large.c: 6 bytes less __data mem (6 more __idata)
96
97 2007-03-07 Borut Razem <borut.razem AT siol.net>
98
99         * device/lib/pic16/libdev/pic18f[24][34]31.c:
100           search include files in the current directory
101
102 2007-03-04 Maarten Brock <sourceforge.brock AT dse.nl>
103
104         * src/SDCCglue.c (emitMaps, glue),
105         * src/SDCCmem.c (initMem, allocDefault): added x_abs for initialized
106           absolute xdata
107         * support/regression/tests/absolute.c: added xdata test
108
109 2007-03-03 Maarten Brock <sourceforge.brock AT dse.nl>
110
111         * src/SDCCmain.c (parseCmdLine): only set options.xstack_loc for mcs51,
112           added condition to macro, fixes bug 1666080
113
114 2007-03-02 Raphael Neider <rneider AT web.de>
115
116         * src/pic/gen.c (genGenPointerSet): removed bogus assertion
117
118 2007-02-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
119
120         * device/lib/mcs51/crtxclear.asm: pdata segment of 256 byte would not
121         be cleared. Unconditionally set __XPAGE
122         * src/hc08/gen.c: --no-gen-comments (RFE #1493816) for hc08
123
124 2007-02-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
125
126         * src/SDCCglobl.h,
127         * src/SDCCmain.c,
128         * src/mcs51/gen.c,
129         * src/mcs51/rtrack.c,
130         * src/ds390/gen.c,
131         * doc/sdccman.lyx: added --no-gen-comments
132         * src/mcs51/peeph.def: added 192.b, disabled 185
133
134 2007-02-25 Raphael Neider <rneider AT web.de>
135
136         * src/pic16/gen.c (genCast): fixed typo
137         * device/lib/pic16/Makefile.subdir: only install existing files
138         * device/lib/pic16/libdev/Makefile.in: build serially, avoid races
139
140 2007-02-25 Maarten Brock <sourceforge.brock AT dse.nl>
141
142         * device/lib/mcs51/crtcall.asm: new, added for indirect calls
143         * device/lib/mcs51/crtclear.asm,
144         * device/lib/mcs51/crtxclear.asm: renumbered labels
145         * device/lib/mcs51/Makefile.in: added crtcall.asm
146         * doc/sdccman.lyx: documented mcs51 crt* library startup code
147         * src/mcs51/gen.c (movc): removed,
148           (aopGet, genPlusBits): clear a after loading the carry (possibly from
149             acc.x or psw.x),
150           (toCarry, genSend, genRet): added function toCarry,
151           (genPcall): use "lcall @a+dptr" for functions w/o parameters,
152           (assignBit, genAssign, genCast): added function assignBit
153         * src/mcs51/Makefile.bcc: added rtrack.c
154         * src/mcs51/ralloc.h: made valueKnown a bitfield
155         * src/mcs51/rtrack.c (getReg, rtrackUpdate): added getReg,
156           fixed "jbc acc" and "cpl acc" bug, enhanced "cjne", "jnz" and "djnz",
157           disabled InvalidateAllRx for lcall __gptrput, added "xch a,rn"
158         * src/pic/pcode.c (FixRegisterBanking): fixed warning used uninitialized
159         * src/z80/gen.c: added AOP_IS_PAIRPTR,
160           (_pop): only pop valid pairs, see gencjneshort,
161           (gencjneshort): return pair that still needs to be popped, restructured,
162           (gencjne, genCmpEq): call _pop
163
164 2007-02-23 Raphael Neider <rneider AT web.de>
165
166         * device/include/pic/pic14devices.txt: 16f684 has only one config word
167
168 2007-02-22 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
169
170         * device/include/mcs51/P89LPC925.h: Added.
171
172 2007-02-18 Raphael Neider <rneider AT web.de>
173
174         * src/pic/glue.c (emitInitVal): fixed #1659894 (SIGSEGV on arrays)
175
176 2007-02-17 Borut Razem <borut.razem AT siol.net>
177
178         * support/cpp2/directives.c, support/cpp2/version.c:
179           synchronized with GCC CPP 4.1.2
180
181 2007-02-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
182
183         * src/mcs51/rtrack.h,
184         * src/mcs51/rtrack.c: added register tracking for the mcs51 port,
185           by checking the strings passed by emitcode() to the assembler.
186           Feel free to change. This in part addresses RFE #482179.
187           Set environment variable SDCC_RTRACK to enable.
188         * src/mcs51/gen.c: inserted hooks
189         * src/mcs51/ralloc.h: added two members to struct regs
190         * support/regression/tests/regtrack.c: added
191
192 2007-02-14 Borut Razem <borut.razem AT siol.net>
193
194         * src/SDCC.y: fixed bug #1291133: duplicate members across enum(s)
195         * Makefile.in: applied patch from Makefile related part of
196           #1469393: Compiler does not initialize static data
197
198 2007-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
199
200         * src/SDCCicode.c (geniCodeAssign): return (itemp) right instead of left
201           for better fix of bug 1273984, compiles pic16 rand.c
202
203 2007-02-12 Borut Razem <borut.razem AT siol.net>
204
205         * src/pic16/main.c: fixed pic16 standard library directory bug
206
207 2007-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
208
209         * src/hc08/gen.c (genSwap): fix swap regression test
210
211 2007-02-10 Borut Razem <borut.razem AT siol.net>
212
213         * src/SDCCsymt.c: fixed bug #1159134: invalid duplicate declarations
214           with same scope
215         * support/regression/tests/bug-1654060.c: added regression test for
216           #1654060
217
218 2007-02-09 Bernhard Held <bernhard AT bernhardheld.de>
219
220         * src/mcs51/gen.c (genRet): fixed RFE 1652561: added code for bit to
221         bit moves in return statement
222
223 2007-02-09 Borut Razem <borut.razem AT siol.net>
224
225         * src/SDCC.y: fixed bug #1654060 typedef within function causes
226           syntax error
227
228 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
229
230         * src/mcs51/gen.c (aopPut): use direct name for pushing registers
231         * src/SDCCmain.c (parseCmdLine): dbuf_s path must be initialised
232
233 2007-02-07 Raphael Neider <rneider AT web.de>
234
235         * src/pic16/devices.inc,
236         * device/include/pic16/pic18fregs.h,
237         * device/include/pic16/pic18f[24][34]31.h,
238         * device/lib/pic16/libdev/pic18f[24][34]31.c,
239         * device/lib/pic16/pics.all: added 18f[24][34]31 family
240         * device/lib/pic16/libio/i2c.ignore: do not build i2c
241
242 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
243
244         * device/lib/printf_large.c (_print_format): fixed compare/assign bug, how
245           can this have lived here for so many years?
246         * src/SDCCicode.c (ast2iCode): return left instead of right for assignment,
247           fixes bug 1273984, see also patch 1645121, thanks Gnther Jehle
248         * support/regression/tests/bug1273984.c: new, added, thanks Gnther Jehle
249
250 2007-02-06 Bernhard Held <bernhard AT bernhardheld.de>
251
252         * src/SDCCBlock.c (addiCodeToeBBlock): fixed bug 1652207: GOTO icodes
253         appended by loop induction must be at the very end of the eBBlock
254
255 2007-02-05 Kevin Vigor
256
257         * src/ds390/gen.c, src/ds390/main.c: Address bug 1469393.
258
259 2007-02-05 Borut Razem <borut.razem AT siol.net>
260
261         * support/regression/fwk/lib/timeout.c: native WIN32 port,
262           implemented #1651830 Reg. tests: rewrite timeout.c to use WIN32 API
263
264 2007-02-03 Borut Razem <borut.razem AT siol.net>
265
266         * src/SDCC.y, src/SDCCmain.c, src/SDCCglobl.h, doc/sdccman.lyx:
267           applied patch #1646602 option to set default signedness of char to
268           unsigned, added -funsigned-char command line option,
269           thanks to Gunther Jehle
270         * device/lib/Makefile.in: added the -f option to rm so it doesn't
271           prompt for file deletion a few hundred times (especially the
272           subversion files, which have ro permissions so it asks for
273           confirmation), thanks to Simon McAuliffe;
274           added {} + option to find in order to remove multiple files from a
275           single rm commad
276
277 2007-02-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
278
279         * device/include/mcs51/SST89x5xRDx.h: Added.
280
281 2007-02-02 Raphael Neider <rneider AT web.de>
282
283         * src/pic/glue.c (emitSymbolSet): check sym->etype before use
284         * src/regression/Makefile: use --no-pcode-opt, ignore failing tests
285
286 2007-02-01 Raphael Neider <rneider AT web.de>
287
288         * src/pic/glue.c (picglue,emitSymbolSet,showAllMemmaps): emit the
289           config words again
290
291 2007-01-31 Borut Razem <borut.razem AT siol.net>
292
293         * support/Util/dbuf_string.h: added ATTRIBUTE_PRINTF to dbuf_printf()
294           if compiled with GCC. Thanks to Raphael Neider
295
296 2007-01-31 Raphael Neider <rneider AT web.de>
297
298         * src/pic/pcode.c (isValidIdChar,bankCompare): fuzzy matching of
299             operand names, handles name and (name + n) for all n,
300           (sameBank): restructured, also check bank allocation policy,
301         * src/pic/glue.c (emitPseudoStack): fixed printf arguments,
302           (pic14_operandsAllocatedInSameBank): check whether to operands
303             will be allocated into the same bank (i.e., section) to reduce
304             BANKSEL overhead, queried from pcode.c:sameBank,
305           (pic14printLocals): reintroduced clustering registers into a single
306             section: all compiler generated symbols will now reside in one
307             bank (per file), reducing BANKSEL overhead and code size,
308           (showAllMemmaps): use local dbuf where possible
309
310 2007-01-29 Raphael Neider <rneider AT web.de>
311
312         * src/pic/gen.c (popGetExternal): simplified, mark symbol as used,
313           (call_libraryfunc): retrieve/create symbol and mark as used,
314           (genFunction): mark defined functions as non-extern and add again
315            to code memmap for later output
316         * src/pic/glue.c (emitPseudoStack): put into own subroutine,
317           (pic14printLocals): reworked for new symbol emission,
318           (emitIfNew,pic14_constructAbsMap,emitIvalLabel,emitIvals,emitInitVal,
319           showAllMemmaps): reworked symbol output using dbufs, added handling
320             of string literals (still incomplete),
321           (picglue): removed symbol emission, moved into showAllMemmaps,
322           (emitSymbolSet): new workhorse for symbol output,
323           (pic14emitMaps,pic14printPublics,pic14printExterns): commented out
324
325 2007-01-29 Borut Razem <borut.razem AT siol.net>
326
327         * src/SDCCmain.c, src/SDCCutil.c: dbuf_splitFile: file extension
328           component contains the extension separator.
329
330 2007-01-28 Borut Razem <borut.razem AT siol.net>
331
332         * sim/ucsim/cmd.src/cmdutil.cc: NUL device is detected as CG_FILE type
333           on WIN32
334         * src/SDCCdwarf2.c, src/SDCCglobl.h, src/SDCCmain.c, src/SDCCutil.c,
335           src/SDCCutil.h, src/avr/gen.c, src/ds390/gen.c, src/hc08/gen.c,
336           src/mcs51/gen.c, src/pic/device.c, src/pic/gen.c, src/pic/pcode.c,
337           src/pic/pcodepeep.c, src/pic/ralloc.c, src/pic16/device.h,
338           src/pic16/gen.c, src/pic16/main.c, src/pic16/pcode.c,
339           src/pic16/pcodepeep.c, src/pic16/ralloc.c, src/xa51/gen.c,
340           src/z80/gen.c, support/Util/MySystem.c:
341           accept slash and backslash as directory separator on WIN32 and
342           Cygwin ports
343
344 2007-01-28 Raphael Neider <rneider AT web.de>
345
346         * src/pic16/devices.inc,
347         * device/include/pic16/pic18f[24][23]21.h,
348         * device/include/pic16/pic18fregs.h,
349         * device/lib/pic16/libdev/pic18f[24][23]21.c,
350         * device/lib/pic16/pics.all: added support for the 18f[24][23]21 family
351         * device/lib/pic16/libio/adc.ignore,
352         * device/lib/pic16/libio/i2c.ignore,
353         * device/lib/pic16/libio/usart.ignore: do not build I/O lib for new
354           family, as gputils do not yet support the devices
355         * device/lib/pic16/Makefile.subdir: ignore errors on install
356         * support/scripts/inc2h-pic16.pl: script to generate pic16 device
357           headers and libraries from gputils .inc files
358
359 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
360
361         * doc/sdccman.lyx: add printf_fast_f precision limitation note
362
363 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
364
365         * doc/sdccman.lyx: add printf benchmarks
366
367 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
368
369         * device/lib/printf_fast.c: fix %c, char promoted to int
370         * device/lib/printf_tiny.c: fix %c, char promoted to int
371
372 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
373
374         * device/lib/printf_fast.c: fix float overflow check, bug #1525093
375
376 2007-01-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
377
378         * support/regression/tests/swap.c: 64 bit hosts failed
379         * doc/sdccman.lyx: added preliminary mcs51 printf feature matrix
380
381 2007-01-25 Raphael Neider <rneider AT web.de>
382
383         * src/pic/pcode.c (sameBank,FixRegisterBanking): optimize banksels
384           based on absolute register address, patch by Alex Blond
385
386 2007-01-22 Raphael Neider <rneider AT web.de>
387
388         * src/pic/glue.c (pic14emitRegularMap): mark initialized symbols as
389           emitted, do not emit them again...
390
391 2007-01-22 Raphael Neider <rneider AT web.de>
392
393         * src/regression/bank1.c, src/regression/compare6.c,
394           src/regression/add.c: cosmetic changes
395         * src/pic/pcode.h: moved GPTRTAG_* here from gen.c
396         * src/pic/gen.c: fixed global zero and one,
397           (aopForSym): removed unued code,
398           (aopGet): assert aop is defined, check and use `index' of
399             pCodeImmd operands (fixes #1630908),
400         * src/pic/pcode.c (get_op): added output of generic pointer tag,
401           (register_reassign): prevent accidental register unification,
402           (ReuseReg): cosmetic changes (also above)
403         * src/pic/glue.c (pic14_constructAbsMap,pic14emitRegularMap,
404           pic14emitStaticSeg): do not emit initialized data,
405           (printIval*): replaced with working versions,
406           (pic14createInterruptVect,picglue): use idata for initialized data,
407             now init data should work in all modules (not only main()),
408         * device/lib/pic/libsdcc/idata.c: NEW, handle initialized data
409
410 2007-01-21 Borut Razem <borut.razem AT siol.net>
411
412         * sim/ucsim/configure.in: introduced macro DD_COPT_NO_IGNORE,
413           use -fPIC or -fpic if they are supported and not ignored
414         * src/SDCCval.c: fixed bug introduced by me in rev. #4577
415         * support/cpp2/libcpp/lex.c: fixed gcc 4.1.1 warnings
416
417 2007-01-20 Borut Razem <borut.razem AT siol.net>
418
419         * src/SDCC.lex, src/SDCCmain.c, sdc/SDCCglobl.h, doc/sdccman.lyx:
420           implemented RFE #1470316: allow "$" in variable names
421
422 2007-01-20 Raphael Neider <rneider AT web.de>
423
424         * device/include/pic/pic14regs.h: reverted accidental wipe of the file
425
426 2007-01-20 Raphael Neider <rneider AT web.de>
427
428         * device/lib/pic/libdev/devices.txt: device list for mkall.sh
429         * device/lib/pic/libdev/mkall.sh: script to rebuild all device libs
430         * device/lib/pic/libdev/pic14ports.txt: device PORT specifications
431         * support/scripts/inc2h.pl: fixed major .inc parsing bugs,
432           applied patch from Robert Tate (#1629249) to add PORTs and TRISs
433         * device/lib/pic/libdev/pic*.c,
434         * device/include/pic/pic*.h: regenerated with enhanced inc2h.pl
435         * device/lib/pic/libdev/Makefile.in: show progress
436
437 2007-01-19 Bernhard Held <bernhard AT bernhardheld.de>
438
439         * doc/sdccman.lyx: updated "configure options" for autoconf 2.6
440         * support/scripts/sdcc_cygwin_mingw32,
441         * support/scripts/sdcc_mingw32,
442         * support/scripts/build.mak: replaced --datadir by --datarootdir for
443         conformance with autoconf 2.6
444
445 2007-01-19 Raphael Neider <rneider AT web.de>
446
447         * src/pic/device.c (register_map): fixed list construction
448         * src/pic/gen.c (genDivOneByte,genModOneByte): accept result > 1 byte,
449           (genMod): removed case for genModbits,
450           (genModbits): removed as now unused/unimplemented
451         * src/pic/glue.c (picglue): prevent name clash with sources 'init.c'
452
453 2007-01-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
454
455         * support/regression/tests/swap.c: added in response to #1638622
456         * doc/sdccman.lyx: synced version, minor changes
457
458 2007-01-18 Borut Razem <borut.razem AT siol.net>
459
460         * SDCClabel.c: fixed bug #1638651: wrong linenumber presented in warning,
461           thanks to Gunther Jehle
462         * src/asm.c: don't die if the file drfined in #line couldn't be opened
463         * src/SDCC.lex, src/SDCCglobal.h, src/SDCCicode.c, src/SDCCsymt.c,
464           src/SDCCval.c: removed redundant definitions of currFname and mylineno;
465           use filename in lineno instead.
466         * SDCCast.c: removed MSVC warning C4018: '==' : signed/unsigned mismatch,
467           print the file name in ast_print()
468
469 2007-01-18 Borut Razem <borut.razem AT siol.net>
470
471         * support/Util/dbuf_string.c: removed (PTR) cast since it is not
472           defined in MSVC
473         * src/SDCC.lex: stringLiteral() returns const char pointer,
474           EOF detection in stringLiteral(), fixed asmbuf memory leak,
475           fixed column counting
476         * src/SDCCval.[ch]: constVal(), value *strVal() and charVal()
477           accept const char pointer as parameter
478         * src/SDCCdwarf2.c: corrected buffer size
479
480 2007-01-17 Borut Razem <borut.razem AT siol.net>
481
482         * support/Util/dbuf_string.c: fixed for amd64
483
484 2007-01-15 Borut Razem <borut.razem AT siol.net>
485
486         * src/pic16/ralloc.c, src/pic/ralloc.c, src/SDCC.y:
487           removed terminal symbol ELIPSIS, since it was never generated by the
488           lexer and it was wrongly used in parameter_identifier_list rule
489
490 2007-01-15 Raphael Neider <rneider AT web.de>
491
492         * doc/sdccman.lyx: updated PIC14/16 command line args, updated PIC14
493             code page and data banking description
494         * src/pic/genarith.c,
495         * src/pic/gen.h: removed bit arithmetic functions,
496             updated exit(1) to exit(EXIT_FAILURE)
497         * device/lib/pic16/libsdcc/stack/stack.S: default to 256 byte stack
498         * device/include/pic16/pic18f2455.h,
499         * device/lib/pic16/libdev/pic18f2455.c: added PORTD, LATD, LATE,
500             TRISD and TRISE, fixed/added some bit names
501         * device/lib/pic16/libdev/pic18f{2550,4550,4455}.c,
502         * device/include/pic16/pic18f{2550,4550,4455}.h: simply include
503             updated pic18f2455.{c,h} instead of duplicating them
504
505 2007-01-14 Borut Razem <borut.razem AT siol.net>
506
507         * as/mcs51/asnoice.c, as/hc08/asnoice.c: fixed bug #1447412:
508           Cannot debug files that contain spaces in the path name
509           by converting spaces in asm file name to underscores
510
511 2007-01-13 Borut Razem <borut.razem AT siol.net>
512
513         * doc/sdccman.lyx: fixed format errors
514
515 2007-01-10 Borut Razem <borut.razem AT siol.net>
516
517         * src/SDCC.lex, src/SDCCmain.c: fixed bug #1631895:
518           codeseg/constseg #pragma fail
519         * suppoprt/cpp2/Makefile.bcc: reenable Borland C compilation
520         * suppoprt/cpp2/configure.in, suppoprt/cpp2/libcpp/lex.c,
521           suppoprt/cpp2/Makefile.in, suppoprt/cpp2/sdcpp-opts,
522           suppoprt/cpp2/sdcpp.[ch]: house cleaning
523
524 2007-01-09 Borut Razem <borut.razem AT siol.net>
525
526         * get rid of diagnistic.[ch], pretty-print.[ch],
527           c-pretty-print.[ch], ... used just for error, warning, ...
528           message formatting
529         * suppoprt/cpp2/pretty-print.[ch], suppoprt/cpp2/diagnostic.[ch],
530           suppoprt/cpp2/diagnostic.def, suppoprt/cpp2/input.h,
531           suppoprt/cpp2/pretty-print.[ch]:
532           removed
533         * suppoprt/cpp2/Makefile.in, suppoprt/cpp2/opts.c,
534           suppoprt/cpp2/sdcpp-opts.c, suppoprt/cpp2/sdcpp.[ch],
535           suppoprt/cpp2/sdcpp.dsp:
536           changed
537
538 2007-01-08 Maarten Brock <sourceforge.brock AT dse.nl>
539
540         * device/lib/printf_large.c (output_float): removed recursion,
541           use smaller buffer on stack for mcs51,
542           fixed bug printing 1.96
543         * support/regression/tests/snprintf.c: added test
544
545 2007-01-07 Borut Razem <borut.razem AT siol.net>
546
547         * use dynamic memory buffers instead temporary files
548         * support/Util/dbuf_string.c, support/Util/dbuf_string.h:
549           added
550         * src/Makefile.in, src/SDCC.lex, src/SDCCast.c, src/SDCCast.h,
551           src/SDCCcse.c, src/SDCCglobl.h, src/SDCCglue.c, src/SDCCglue.h,
552           src/SDCCicode.c, src/SDCCicode.h, src/SDCCmain.c, src/SDCCmem.c,
553           src/SDCCmem.h, src/SDCCpeeph.c, src/SDCCpeeph.h, src/SDCCsymt.c,
554           src/SDCCsymt.h, src/SDCCutil.c, src/asm.c, src/asm.h, src/avr/gen.c,
555           src/avr/main.c, src/ds390/gen.c, src/ds390/main.c, src/hc08/gen.c,
556           src/hc08/main.c, src/izt/gen.c, src/mcs51/gen.c, src/mcs51/main.c,
557           src/pic/device.c, src/pic/gen.c, src/pic/glue.c, src/pic/main.c,
558           src/pic/ralloc.c, src/pic16/gen.c, src/pic16/glue.c,
559           src/pic16/main.c, src/pic16/ralloc.c, src/port.h, src/src.dsp,
560           src/xa51/gen.c, src/xa51/main.c, src/z80/gen.c, src/z80/main.c,
561           support/Util/dbuf.c, support/Util/dbuf.h:
562           modified
563         * .version, sdcc.spec: bumped version to 2.6.4
564
565 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
566
567         * src/port.h: added TARGET_Z80_LIKE macro
568         * src/SDCCmain.c (linkEdit): use TARGET_Z80_LIKE,
569           output PSEG location if --xram-loc or --xstack-loc was used
570         * as/link/mcs51/lkarea.c (lnksect2): set segment address afterwards
571
572 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
573
574         * as/as_gbz80.dsp, as/z80/as_gbz80.dsp,
575         * as/as_z80.dsp,   as/z80/as_z80.dsp,
576         * as/asx8051.dsp,  as/mcs51/asx8051.dsp,
577         * sdcc.dsw: moved project files into subdir
578         * as/hc08/as_hc08.dsp,
579         * as/hc08/Makefile.bcc,
580         * as/hc08/Makefile.in,
581         * as/mcs51/Makefile.bcc,
582         * as/mcs51/Makefile.in,
583         * as/z80/Makefile.bcc,
584         * as/z80/Makefile.in,
585         * as/link/mcs51/Makefile.bcc: use as/strcmpi.c
586         * as/hc08/asm.h,
587         * as/mcs51/asm.h,
588         * as/z80/asm.h: added as_strcmpi() and as_strncmpi() prototypes
589         * as/hc08/asmain.c,
590         * as/hc08/assym.c,
591         * as/mcs51/asmain.c,
592         * as/mcs51/assym.c,
593         * as/z80/assym.c: removed include "strcmpi.h"
594         * as/hc08/strcmpi.c,
595         * as/hc08/strcmpi.h,
596         * as/mcs51/strcmpi.c,
597         * as/mcs51/strcmpi.h,
598         * support/Util/strcmpi.c,
599         * support/Util/strcmpi.h: removed files
600         * as/strcmpi.c: added as_strncmpi()
601
602 2007-01-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
603
604         * sdcc.dsw: Added some dependencies on project config.dsp
605
606 2007-01-05 Maarten Brock <sourceforge.brock AT dse.nl>
607
608         * as/link/mcs51/lkarea.c (lnkarea2, lnksect2): replaced [di]seg_ap->a_addr
609           with [di]ram_start to fix a regresion
610
611 2007-01-03 Bernhard Held <bernhard AT bernhardheld.de>
612
613         * configure.in: added missing mcs51 in status output
614         * Makefile.in: add support/regression to SDCC_EXTRA to distclean this
615         directory
616         * debugger/mcs51/clean.mk (distclean): remove config.h
617         * src/clean.mk (clean): remove SDCCy.c, SDCCy.h, SDCClex.c
618         * support/cpp2/Makefile.in (clean): remove s-options, optionlist,
619         options.h, s-options-h and options.c
620         * support/cpp2/clean.mk: unused, removed
621         * Makefile.common.in,
622         * main_in.mk,
623         * as/Makefile.in,
624         * as/hc08/Makefile.in,
625         * as/hc08/clean.mk,
626         * as/mcs51/Makefile.in,
627         * as/mcs51/clean.mk,
628         * as/z80/clean.mk,
629         * as/z80/conf.mk,
630         * as/z80/Makefile.in,
631         * as/z80/clean.mk,
632         * as/link/Makefile.in,
633         * as/link/hc08/Makefile.in,
634         * as/link/hc08/clean.mk,
635         * as/link/mcs51/Makefile.in,
636         * as/link/mcs51/clean.mk,
637         * as/link/z80/Makefile.in,
638         * as/link/z80/clean.mk,
639         * as/link/z80/conf.mk,
640         * debugger/mcs51/Makefile.in,
641         * debugger/mcs51/clean.mk,
642         * device/include/Makefile.in,
643         * device/lib/Makefile.in,
644         * device/lib/mcs51/Makefile.in,
645         * device/lib/pic/Makefile.in,
646         * device/lib/pic/Makefile.common.in,
647         * device/lib/pic/Makefile.subdir,
648         * device/lib/pic/Makefile.rules,
649         * device/lib/pic16/libio/Makefile.in,
650         * device/lib/pic16/Makefile.subdir,
651         * device/lib/pic16/libdev/Makefile.in,
652         * device/lib/pic16/Makefile.rules,
653         * device/lib/pic16/Makefile.common.in,
654         * sim/ucsim/avr.src/Makefile.in,
655         * sim/ucsim/main_in.mk,
656         * sim/ucsim/cmd.src/Makefile.in,
657         * sim/ucsim/doc/Makefile.in,
658         * sim/ucsim/gui.src/Makefile.in,
659         * sim/ucsim/gui.src/obsolete/portmon.src/Makefile.in,
660         * sim/ucsim/gui.src/serio.src/Makefile.in,
661         * sim/ucsim/hc08.src/Makefile.in,
662         * sim/ucsim/libltdl/Makefile.in,
663         * sim/ucsim/s51.src/Makefile.in,
664         * sim/ucsim/sim.src/Makefile.in,
665         * sim/ucsim/sim.src/conf.mk,
666         * sim/ucsim/xa.src/Makefile.in,
667         * sim/ucsim/z80.src/Makefile.in,
668         * src/Makefile.in,
669         * src/clean.mk,
670         * src/port.mk,
671         * support/cpp2/Makefile.in,
672         * support/librarian/Makefile.in,
673         * support/librarian/clean.mk,
674         * support/makebin/Makefile.in,
675         * support/makebin/clean.mk,
676         * support/packihx/Makefile.in,
677         * support/regression/Makefile.in,
678         * support/regression/ports/ds390/spec.mk,
679         * support/regression/ports/gbz80/spec.mk,
680         * support/regression/ports/hc08/spec.mk,
681         * support/regression/ports/mcs51/spec.mk,
682         * support/regression/ports/mcs51-large/spec.mk,
683         * support/regression/ports/mcs51-medium/spec.mk,
684         * support/regression/ports/mcs51-xstack-auto/spec.mk,
685         * support/regression/ports/pic14/spec.mk,
686         * support/regression/ports/pic16/spec.mk,
687         * support/regression/ports/mcs51-stack-auto/spec.mk,
688         * support/regression/ports/ucz80/spec.mk,
689         * support/regression/ports/xa51/spec.mk,
690         * support/regression/ports/z80/spec.mk: fixed for autoconf 2.6x by
691         adding a slash after $(top_builddir) and/or adding @datarootdir@
692         * configure.in,
693         * debugger/mcs51/configure.in,
694         * device/lib/pic/configure.in,
695         * device/lib/pic16/configure.in,
696         * sim/ucsim/configure.in,
697         * support/cpp2/configure.in,
698         * support/packihx/configure.in: changed AC_PREREQ to 2.60
699         * configure,
700         * debugger/mcs51/configure,
701         * device/lib/pic/configure,
702         * device/lib/pic16/configure,
703         * sim/ucsim/configure,
704         * support/cpp2/configure,
705         * support/packihx/configure: generated with autoconf 2.60
706
707 2007-01-02 Maarten Brock <sourceforge.brock AT dse.nl>
708
709         * as/link/hc08/lkihx.c (newArea),
710         * as/link/hc08/lkrloc.c: renamed newArea() to ihxNewArea()
711
712 2007-01-02 Borut Razem <borut.razem AT siol.net>
713
714         * doc/sdccman.lyx: documented #pragma sdcc_hash
715         * support/cpp2/sdcpp.c: allow_naked_hash (value of #pragma sdcc_hash)
716           initialized to 0
717         * support/cpp2/c-ppoutput.c: fixed warning: no newline at end of file
718
719 2007-01-01 Bernhard Held <bernhard AT bernhardheld.de>
720
721         * src/SDCCast.c (createDo): backPatchLabels() needs falseLabel in
722         empty 'while'-loop to work correctly, see regression test 'while.c'
723         * support/regression/tests/while.c: added
724
725 2007-01-01 Borut Razem <borut.razem AT siol.net>
726
727         * support/cpp2/libcpp/directives.c, support/cpp2/libcpp/identifiers.c,
728           support/cpp2/libcpp/init.c, support/cpp2/libcpp/sdcpp-opts.c,
729           support/cpp2/libcpp/sdcpp.c:
730           sdcpp specific pragma/directive/option handling moved to sdcpp.c
731         * doc/sdccman.lyx: reference to the GCC 4.1.1 CPP Manual
732         * support/cpp2/libcpp/mkdeps.c: synchronized with GCC CPP 4.1.1
733
734 2006-12-31 Borut Razem <borut.razem AT siol.net>
735
736         * SDCPP synchronized with GCC CPP release version 4.1.1,
737           currently the latest release:
738         * support/cpp2/libcpp, support/cpp2/libcpp/include,
739           support/cpp2/libcpp/include/cpp-id-data.h
740           support/cpp2/libiberty/fopen_unlocked.c
741           support/cpp2/libiberty/md5.c
742           support/cpp2/md5.h
743           support/cpp2/opt-functions.awk
744           support/cpp2/opt-gather.awk
745           support/cpp2/optc-gen.awk
746           support/cpp2/opth-gen.awk:
747           added
748         * support/cpp2/Makefile.in, support/cpp2/auto-host_vc_in.h,
749           support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
750           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
751           support/cpp2/c-pretty-print.h, support/cpp2/cppdefault.c,
752           support/cpp2/cppdefault.h, support/cpp2/diagnostic.c,
753           support/cpp2/diagnostic.h, support/cpp2/except.h,
754           support/cpp2/hwint.h, support/cpp2/input.h,
755           support/cpp2/intl.h, support/cpp2/move-if-change,
756           support/cpp2/opts.c, support/cpp2/opts.h,
757           support/cpp2/output.h, support/cpp2/prefix.c,
758           support/cpp2/prefix.h, support/cpp2/pretty-print.c,
759           support/cpp2/pretty-print.h, support/cpp2/sdcpp-opts.c,
760           support/cpp2/sdcpp.c, support/cpp2/sdcpp.dsp,
761           support/cpp2/sdcpp.h, support/cpp2/sdcpp.opt,
762           support/cpp2/sdcppa.dsp, support/cpp2/symcat.h,
763           support/cpp2/version.c:
764           modified
765         * support/cpp2/libcpp/charset.c, support/cpp2/libcpp/directives.c,
766           support/cpp2/libcpp/errors.c, support/cpp2/libcpp/expr.c,
767           support/cpp2/libcpp/files.c, support/cpp2/libcpp/identifiers.c,
768           support/cpp2/libcpp/include/cpplib.h, support/cpp2/libcpp/include/line-map.h,
769           support/cpp2/libcpp/include/mkdeps.h, support/cpp2/libcpp/include/symtab.h,
770           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
771           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/line-map.c,
772           support/cpp2/libcpp/macro.c, support/cpp2/libcpp/mkdeps.c,
773           support/cpp2/libcpp/symtab.c, support/cpp2/libcpp/system.h,
774           support/cpp2/libcpp/traditional.c, support/cpp2/libcpp/ucnid.h,
775           support/cpp2/libiberty/hashtab.c, support/cpp2/libiberty/hashtab.h:
776           moved
777         * support/cpp2/cppcharset.c, support/cpp2/cpperror.c,
778           support/cpp2/cppexp.c, support/cpp2/cppfiles.c,
779           support/cpp2/cpphash.c, support/cpp2/cpphash.h,
780           support/cpp2/cppinit.c, support/cpp2/cpplex.c,
781           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
782           support/cpp2/cppmacro.c, support/cpp2/cpptrad.c,
783           support/cpp2/cppucnid.h, support/cpp2/hashtab.c,
784           support/cpp2/hashtab.h, support/cpp2/hashtable.c,
785           support/cpp2/hashtable.h, support/cpp2/line-map.c,
786           support/cpp2/line-map.h, support/cpp2/mkdeps.c,
787           support/cpp2/mkdeps.h, support/cpp2/options_vc_in.c,
788           support/cpp2/options_vc_in.h, support/cpp2/opts.sh,
789           support/cpp2/system.h:
790           deleted / moved
791
792 2006-12-31 Borut Razem <borut.razem AT siol.net>
793
794         * configure.in, configure: fixed bug #1538756: configure dies if bison
795           and flex are not installed, 2nd try
796
797 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
798
799         * src/mcs51/peeph.def: renamed rule 400 to 500, moved rule 253.x to
800         400.x for better code in RFE 899102
801
802 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
803
804         * src/SDCCpeeph.c (deadMove),
805         * src/port.h,
806         * src/mcs51/peep.h: renamed 'op' by 'reg'
807         * src/mcs51/peep.c (isFunc, isCallerSaveFunc): added,
808         (scan4op): small change for removeDeadMove(), added support for
809         'callee saves' and/or PACLL function calls,
810         (removeDeadMove): added, removes superflous 'mov r%1,%2',
811         (removeDeadPopPush): renamed from mcs51DeadMove(), common parts
812         left in new dispatcher mcs51DeadMove()
813         (mcs51DeadMove): dispatcher for removeDeadPopPush() and new
814         removeDeadMove()
815         * src/mcs51/peeph.def: added rule 301 removing superflous 'mov r%1,%2'
816
817 2006-12-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
818
819         * support/cpp2/options_vc_in.h, support/cpp2/options_vc_in.c,
820           support/cpp2/sdcppa.dsp: create 'options.h' and 'options.c' under MSVC.
821
822 2006-12-30 Borut Razem <borut.razem AT siol.net>
823
824         * support/cpp2/spacs.h: deleted from svn
825         * configure.in, configure: fixed bug #1538756: configure dies if bison
826           and flex are not installed
827
828 2006-12-29 Maarten Brock <sourceforge.brock AT dse.nl>
829
830         * src/z80/gen.c (assignResultValue): fixed bug when registers overlap,
831           with this z80 passes printf float test when enabled
832         * support/regression/tests/bug1057979.c: typo disabled ds390 float test
833
834 2006-12-28 Borut Razem <borut.razem AT siol.net>
835
836         * support/cpp2/config.in, support/cpp2/configure.in,
837           support/cpp2/configure, support/cpp2/Makefile.in:
838           fix for the solaris build
839
840 2006-12-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
841
842         * src/SDCC.y (type_specifier2, pointer),
843         * src/SDCCsymt.h,
844         * src/SDCCsymt.c (mergeSpec, checkSClass),
845         * support/Util/SDCCerr.c,
846         * support/Util/SDCCerr.h: Parse and validate the restrict keyword
847         * support/valdiag/valdiag.py: Allow test cases to specify
848           required language standard
849         * support/valdiag/tests/restrict.c: New file to test restrict keyword
850         * support/valdiag/tests/tentdecl.c: Supress empty source file error
851
852 2006-12-27 Borut Razem <borut.razem AT siol.net>
853
854         * support/cpp2/cppmain.c, support/cpp2/mbchar.[ch]: removed
855         * support/cpp2/libiberty/Makefile.in, support/cpp2/libiberty/sdcpp.dsp:
856           mbchar removed
857         * support/cpp2/libiberty/getpwd.c, support/cpp2/sdcpp.h:
858           fixed for borland C
859         * support/cpp2/libiberty/Makefile.bcc: updated
860         * src/pic16/main.c: fixed #pragma udata handling
861         * src/mcs51/mcs51.dsp: added peep.[ch] to the project
862
863 2006-12-26 Bernhard Held <bernhard AT bernhardheld.de>
864
865         * src/SDCCpeeph.c: made labelHashEntry global,
866         made pcDistance, FBYNAME static,
867         (pcDistance): made static, use isComment and isLabel,
868         (deadMove): added,
869         (getLabelRef): added, extracted from labelRefCount(),
870         (labelRefCount): use new getLabelRef(),
871         (callFuncByName): made static, added deadMove,
872         use isComment and isLabel,
873         (newPeepRule): made static, set isLabel,
874         (isLabelDefinition): added parameter isPeepRule to allow '%' in
875         labels from peephole rules,
876         (buildLabelRefCountHash): speed up by running isLabelDefinition() only
877         when isComment or isLabel is set
878         * src/SDCCpeeph.h: added "isLabel" and "visited" to struct lineNode,
879         added labelHashEntry, isLabelDefinition, labelHash and getLabelRef
880         to make them global
881         * src/mcs51/peep.h: added
882         * src/mcs51/peep.c: added, implements mcs51DeadMove()
883         * src/port.h: added peep->deadMove to port structure
884         * src/mcs51/main.c: initialize peep->deadMove with mcs51DeadMove
885         * src/mcs51/peeph.def: renumbered rule 300 to 400, added new rule 300
886         deadMove, finally removed no. 1 and 2
887         * src/mcs51/gen.c,
888         * src/pic/gen.c,
889         * src/z80/gen.c,
890         * src/z80/ralloc.c,
891         * src/pic16/gen.c,
892         * src/ds390/gen.c,
893         * src/hc08/gen.c: mark lines with isComment or isLabel
894         * sim/ucsim/s51.src/uc390hw.cc: don't waist 65535 ticks before CKRDY
895         * .version,
896         * sdcc.spec: bumped version to 2.6.3
897
898 2006-12-26 Borut Razem <borut.razem AT siol.net>
899
900         * support/cpp2/Makefile.in: added dependency on options.h
901         * configure: regenerated
902         * support/cpp2/sdcpp.opt, support/cpp2/move-if-change: svn:eol-style native
903         * support/cpp2/Makefile.in: added vasprintf.c
904
905 2006-12-25 Borut Razem <borut.razem AT siol.net>
906
907         * SDCPP synchronized with GCC CPP release version 3.4.6,
908           the latest release before 4.x:
909         * support/cpp2/Makefile.in, support/cpp2/config.h,
910           support/cpp2/configure, support/cpp2/configure.in,
911           support/cpp2/cppdefault.c, support/cpp2/cppdefault.h,
912           support/cpp2/cpperror.c, support/cpp2/cppexp.c,
913           support/cpp2/cppfiles.c, support/cpp2/cpphash.c,
914           support/cpp2/cpphash.h, support/cpp2/cppinit.c,
915           support/cpp2/cpplex.c, support/cpp2/cpplib.c,
916           support/cpp2/cpplib.h, support/cpp2/cppmacro.c,
917           support/cpp2/cpptrad.c, support/cpp2/except.h,
918           support/cpp2/hashtable.c, support/cpp2/hashtable.h,
919           support/cpp2/hwint.h, support/cpp2/intl.h,
920           support/cpp2/line-map.c, support/cpp2/line-map.h,
921           support/cpp2/mkdeps.c, support/cpp2/mkdeps.h,
922           support/cpp2/output.h, support/cpp2/prefix.c,
923           support/cpp2/prefix.h, support/cpp2/sdcpp.dsp,
924           support/cpp2/system.h, support/cpp2/version.c:
925           modified
926         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
927           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
928           support/cpp2/c-pretty-print.h, support/cpp2/cppcharset.c,
929           support/cpp2/cppucnid.h, support/cpp2/diagnostic.c,
930           support/cpp2/diagnostic.def, support/cpp2/diagnostic.h,
931           support/cpp2/hashtab.c, support/cpp2/hashtab.h,
932           support/cpp2/input.h, support/cpp2/libiberty/getpwd.c,
933           support/cpp2/libiberty/vasprintf.c, support/cpp2/libiberty/xmemdup.c,
934           support/cpp2/move-if-change, support/cpp2/opts.c,
935           support/cpp2/opts.h, support/cpp2/opts.sh,
936           support/cpp2/pretty-print.c, support/cpp2/pretty-print.h,
937           support/cpp2/sdcpp.opt, support/cpp2/sdcpp-opts.c,
938           support/cpp2/win32, support/cpp2/win32/dirent.c,
939           support/cpp2/win32/dirent.h:
940           added
941         * support/cpp2/sdcpp.c: renamed from sdcppmain.c
942         * support/cpp2/sdcpp.h: renamed from sdcc.h
943         * sdcppinit.c: deleted
944
945 2006-12-23 Borut Razem <borut.razem AT siol.net>
946
947         * support/cpp2/cpphash.h, support/cpp2/cpplex.c,
948           support/cpp2/cpplib.[ch], support/cpp2/sdcppinit.c, doc/sdccman.lyx,
949           preproc.c: an other try to fix bug #982435: introduced
950           -pedantic-parse-number command line option and pedantic_parse_number
951           pragma
952
953 2006-12-21 Maarten Brock <sourceforge.brock AT dse.nl>
954
955         * as/link/mcs51/lkarea.c (lnkarea2): handle absolute areas, restructured
956            BSEG handling,
957           (lnksect2): use --data-loc and --idata-loc as lower bound for ramstart,
958            corrected overlayed areax addresses, warn about memory overlaps
959         * as/mcs51/asmain.c (asmbl): create a new area for every .org directive
960         * src/avr/main.c,
961         * src/ds390/main.c,
962         * src/hc08/main.c,
963         * src/mcs51/main.c,
964         * src/pic16/main.c,
965         * src/pic/main.c,
966         * src/xa51/main.c,
967         * src/z80/main.c,
968         * src/port.h: added xabs_name and iabs_name
969         * src/SDCCglue.c (emitRegularMap): allocate for absolutes with initializer
970           (glue, emitMaps): create and emit maps d_abs and i_abs
971         * src/SDCCglue.h: cosmetic changes
972         * src/SDCCmain.c (setDefaultOptions): idata can start below 0x80
973         * src/SDCCmem.h,
974         * src/SDCCmem.c (initMem): added x_abs, i_abs and d_abs
975           (allocDefault): put absolute, initialized globals in them
976         * support/regression/tests/absolute.c: added absolute bdata test
977         * device/lib/printf_large.c (output_float): moved fpBuffer to stack/xdata
978
979 2006-12-20 Borut Razem <borut.razem AT siol.net>
980
981         * support/cpp2/cpphash.h, support/cpp2/cpplex.c: fixed bug #982435
982         * support/regression/tests/preproc.c: renamed from bug-1351710.c,
983           added regression test for bug #982435
984
985 2006-12-18 Borut Razem <borut.razem AT siol.net>
986
987         * src/SDCCutil.c: fixed a bug in (get_pragma_token)
988         * src/pic16/main.c, src/SDCC.lex, src/z80/main.c:
989           small cosmetic changes
990         * src/SDCC.lex: (stringLiteral) fixed bug #1351710
991         * support/regression/tests/bug-1351710.c: added regression test
992
993 2006-12-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
994
995         * doc/sdccman.lyx: added the long missed iCode table
996           "<where is figure II?>", added links to wiki
997
998 2006-12-17 Borut Razem <borut.razem AT siol.net>
999
1000         * doc/sdccman.lyx, src/pic16/main.c, src/pic/main.c, src/port.h,
1001           src/SDCC.lex, src/SDCCutil.[ch], src/z80/main.c,
1002           support/Util/SDCCerr.[ch]: removed deprecated pragmas,
1003           unified table driven pragma handling, pragma argument type checking
1004         * support/Util/dbuf.c: (dbuf_set_size) allow to set size equal to the
1005           current one - version 1.1.3
1006         * src/SDCCmain.c: (setParseWithComma) substituted brain damaged strtok
1007
1008 2006-12-13 Raphael Neider <rneider AT web.de>
1009
1010         * src/pic/device.h: removed AssignedMemory structure and macros
1011         * src/pic/device.c: removed global finalMapping (linker assigns
1012             memory locations),
1013           (register_map): add SFRs to remembered memRanges
1014           (addMemRange,isSFR,dump_map,dump_sfr,mapRegister,assignRegister,
1015           assignFixedRegisters,assignRelocatableRegisters): removed,
1016           (setMaxRAM,validAddress): adapted accordingly,
1017           (pic14_hasSharebank,pic14_getSharedStack): only report and use
1018             reasonably sized sharebanks,
1019         * src/pic/ralloc.c (writeUsedRegs): stripped down (remove?),
1020           (allDefsOutOfRange): removed unused code,
1021         * src/pic/main.c (_process_pragma): removed memmap/maxram pragma
1022             handling
1023         * src/pic/pcode.c (register_reassign): removed recursion warning,
1024             fired far too often,
1025         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap): modified
1026             to use existing pic14_stringInSet() to avoid duplicate symbols,
1027             tidied up the code a bit,
1028           (pic14printLocals): added in symmetry to printExterns, replaces
1029             writeUsedRegs more or less,
1030           (picglue): call new pic14_printLocals(),
1031         * device/include/pic/pic*.h: removed #pragma memmap directives,
1032             information gathered from include/pic/pic14devices.txt
1033         * support/scripts/inc2h.pl: do not emit #pragma memmap lines
1034
1035 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
1036
1037         * device/include/mcs51/C8051F520.h: fixed buggy CPT0MX
1038
1039 2006-12-11 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1040
1041         * device/include/mcs51/cc2430.h: fixed missing ';'
1042
1043 2006-12-10 Raphael Neider <rneider AT web.de>
1044
1045         * device/lib/pic16/libc/stdio/vfprintf.c,
1046         * device/lib/pic16/libc/stdio/printf_small.c,
1047         * device/lib/pic16/libc/stdio/printf_timy.c: pop int from stack for
1048           char arguments, as char varargs are cast to int by the caller,
1049           hopefully fixes #1604915 (other device libraries are still affected)
1050
1051 2006-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1052
1053         * src/mcs51/ralloc.c (packRegsForAssign),
1054         * src/hc08/ralloc.c (packRegsForAssign): fixed bug #1605880
1055
1056 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
1057
1058         * device/include/malloc.h: removed init_dynamic_memory
1059         * device/lib/malloc.c: made init_dynamic_memory static and automatically
1060           call it once from malloc. Also use _sdcc_heap[] from _heap.c
1061         * device/lib/_heap.c: new, added, contains _sdcc_heap[]
1062         * device/lib/libsdcc.lib,
1063         * device/lib/Makefile.in,
1064         * support/regression/ports/mcs51-xstack-auto/spec.mk: added _heap.c
1065         * doc/sdccman.lyx: documented use of new _heap.c
1066         * support/regression/tests/malloc.c: removed init_dynamic_memory
1067         * src/cdbFile.c(spacesToUnderscores): new function,
1068           (cdbWriteEndFunction, cdbWriteCLine): use spacesToUnderscores, fixes bug
1069           1068030
1070         * device/include/tinibios.h: removed defines for putchar and getchar
1071         * device/lib/ds390/Makefile.in: added putchar.c
1072         * device/lib/ds390/putchar.c: new, added, fixes bug 1465671
1073
1074 2006-12-09 Borut Razem <borut.razem AT siol.net>
1075
1076         * support/cpp2/sdcc.h: prevent multiple inclusion
1077         * support/cpp2/options.h: deleted
1078
1079 2006-12-08 Borut Razem <borut.razem AT siol.net>
1080
1081         * support/cpp2/sdcc.h: removed x*alloc() macros
1082         * support/cpp2/libiberty.h: uncommented out x*alloc() declarations
1083         * support/cpp2/Makefile.bcc, support/cpp2/Makefile.in,
1084           support/cpp2/sdcpp.sdc: x*alloc files added to the project
1085         * support/cpp2/system.h: moved #include "sdcc.h"
1086         * support/cpp2/libiberty/xexit.c, support/cpp2/libiberty/xmalloc.c,
1087           support/cpp2/libiberty/xstrdup.c, support/cpp2/libiberty/xstrerror.c:
1088           added
1089         * support/cpp2/sdcppinit.c: added -isysroot, -fsigned-char,
1090           -funsigned-char options
1091         * support/cpp2/sdcppmain.c: fixed bug 1611411
1092
1093 2006-12-07 Borut Razem <borut.razem AT siol.net>
1094
1095         * support/cpp2/cpplib.c: reverted sdcpp special handling of _Pragma()
1096           directive
1097
1098 2006-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
1099
1100         * src/SDCCsymt.c (addDecl): fixed bug 1609244
1101         * src/SDCCmain.c (linkEdit): fixed bug 1609279
1102         * doc/sdccman.lyx,
1103         * .version: bumped to 2.6.2 because a) it's been a while
1104           b) the linker sources have moved c) the preprocessor is upgraded
1105
1106 2006-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1107
1108         * support/regression/tests/snprintf.c: some checks
1109         * lib/src/printf_large.c: %bc: read char instead of int from stack
1110
1111 2006-12-03 Maarten Brock <sourceforge.brock AT dse.nl>
1112
1113         * device/include/mcs51/cc2430.h: inserted _XPAGE
1114
1115 2006-12-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1116
1117         * device/include/mcs51/cc2430.h: added
1118
1119 2006-12-02 Maarten Brock <sourceforge.brock AT dse.nl>
1120
1121         * device/include/asm/default/features.h,
1122         * device/include/asm/ds390/features.h,
1123         * device/include/mcs51/at89s53.h,
1124         * device/include/ser.h,
1125         * device/include/ser_ir.h,
1126         * device/include/serial.h: changed keywords to double underscore variants,
1127           fixes bug 1590261 some more, thanks Steven Borley
1128
1129 2006-12-01 Raphael Neider <rneider AT web.de>
1130
1131         * src/pic/pcode.c (register_reassign): do not crash on recursive code
1132           but emit warning (recursion is not supported for pic14)
1133
1134 2006-11-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1135
1136         * src/mcs51/peeph.def: added 101.a,b (moves to int/long xdata)
1137         * doc/sdccman.lyx: various small changes, acknowledged Sourceforge
1138
1139 2006-11-30 Raphael Neider <rneider AT web.de>
1140
1141         * src/pic/device.c (dump_sfr): always emit symbols
1142         * src/pic/glue.c (pic14printPublics): fixed typo
1143
1144 2006-11-30 Raphael Neider <rneider AT web.de>
1145
1146         * src/pic/device.c (create_pic,ram_map): add memRange entries to PIC
1147           (pic14_getSharebankSize, pic14_getSharebankAddress): replaced with
1148           (pic14_hasSharebank,pic14_isShared,pic14_allRAMShared,
1149            pic14_getSharedStack): NEW, evaluate the memRange entries to locate
1150            a sharebank, use a non-shared bank for the stack if none available
1151         * src/pic/device.h (struct memRange): added linked list next field,
1152           added prototypes for above functions
1153         * src/pic/ralloc.c (initStack): handle shared and banked stacks,
1154           (typeRegWithIdx): accept fixed and unfixed stack registers
1155         * src/pic/pcode.c (pCodeInitRegisters): use new functions to create
1156           the stack, handle shared and banked stack (except for WSAVE),
1157           (insertBankSel): removed useless optimization (will never fire),
1158           (FixRegisterBanking): added optimization for devices with only one
1159           possibly aliased bank of memory, like 16f84
1160         * src/pic/glue.c (pic14_constructAbsMap): back to udata_ovr, as some
1161           devices have no SHAREBANK in the linker script
1162         * device/include/pic/pic14devices.txt: documented memmap
1163         * device/lib/pic/libdev/Makefile.in: removed --stack-loc again
1164
1165 2006-11-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1166
1167         * src/hc08/gen.c (transferRegReg, loadRegFromAop, forceStackedAop,
1168           storeRegToAop, freeAsmop, genPlusIncr, genPlus, genPointerGetSetOfs,
1169           genAnd, genOr, genXor, genLeftShiftLiteral, genRightShiftLiteral,
1170           genhc08Code): switched most of the D (debug) macros to DD (detailed
1171           debug) macros to better control clutter in the generated .asm file.
1172         * src/hc08/gen.c: (forceStackedAop, genUminus, genLeftShift,
1173           genRightShift): fixed bug with non-constant bit shift stored to
1174           a volatile result (SF Open Discussion forum thread #1616749).
1175           Single byte case is not yet optimized.
1176
1177 2006-11-28 Maarten Brock <sourceforge.brock AT dse.nl>
1178
1179         * device/include/asm/mcs51/features.h,
1180         * device/include/malloc.h,
1181         * device/include/stdio.h: changed keywords to double underscore variants,
1182           fixes bug 1590261
1183
1184 2006-11-27 Borut Razem <borut.razem AT siol.net>
1185
1186         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
1187           support/cpp2/Makefile.in, support/cpp2/cppfiles.c,
1188           support/cpp2/output.h, support/cpp2/cppinit.c,
1189           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
1190           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
1191           support/cpp2/cppdefault.c, support/cpp2/system.h,
1192           support/cpp2/cpphash.h, support/cpp2/cpplex.c,
1193           support/cpp2/cppdefault.h, support/cpp2/mbchar.c,
1194           support/cpp2/prefix.c, support/cpp2/except.h,
1195           support/cpp2/hwint.h, support/cpp2/cppmacro.c,
1196           support/cpp2/line-map.h, support/cpp2/sdcpp.dsp,
1197           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
1198           support/cpp2/version.c, support/cpp2/cppmain.c,
1199           support/cpp2/version.h, support/cpp2/hashtable.c,
1200           support/cpp2/cpperror.c:
1201           synchronized with GCC CPP release version 3.3.6,
1202           the latest where cppmain.c still exists.
1203         * support/cpp2/cpptrad.c, support/cpp2/sdcppmain.c,
1204           support/cpp2/sdcppinit.c: added
1205
1206 2006-11-27 Borut Razem <borut.razem AT siol.net>
1207
1208         * support/cpp2/cpplex.c:
1209           fixed _asm ... _endasm handling bug, introduce with GCC CPP
1210           synchronization
1211         * support/cpp2/cpplib.c: removed definitions of unused variables
1212
1213 2006-11-26 Borut Razem <borut.razem AT siol.net>
1214
1215         * support/cpp2/libiberty.h: commented out x*alloc() declarations
1216           since they are redefined by macros in support/cpp2/sdcc.h
1217         * support/cpp2/sdcc.h: x*alloc macro redefinition
1218
1219 2006-11-25 Borut Razem <borut.razem AT siol.net>
1220
1221         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
1222           support/cpp2/configure, support/cpp2/Makefile.in,
1223           support/cpp2/cppfiles.c, support/cpp2/output.h,
1224           support/cpp2/cppinit.c, support/cpp2/cpplib.c,
1225           support/cpp2/config.h, support/cpp2/cpplib.h,
1226           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
1227           support/cpp2/cppdefault.c, support/cpp2/config.in,
1228           support/cpp2/system.h, support/cpp2/cpplex.c,
1229           support/cpp2/cpphash.h, support/cpp2/mbchar.c,
1230           support/cpp2/cppdefault.h, support/cpp2/prefix.c
1231           support/cpp2/hwint.h, support/cpp2/mbchar.h,
1232           support/cpp2/prefix.h, support/cpp2/cppmacro.c,
1233           support/cpp2/configure.in, support/cpp2/intl.h,
1234           support/cpp2/sdcpp.dsp, support/cpp2/acconfig.h,
1235           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
1236           support/cpp2/version.c, support/cpp2/cppmain.c,
1237           support/cpp2/ansidecl.h, support/cpp2/libiberty.h,
1238           support/cpp2/hashtable.c, support/cpp2/aclocal.m4,
1239           support/cpp2/cpperror.c,
1240           support/cpp2/libiberty/safe-ctype.c,
1241           support/cpp2/libiberty/safe-ctype.h,
1242           support/cpp2/libiberty/splay-tree.c,
1243           support/cpp2/libiberty/obstack.c,
1244           support/cpp2/libiberty/lbasename.c,
1245           support/cpp2/libiberty/splay-tree.h,
1246           support/cpp2/libiberty/obstack.h:
1247           synchronized with GCC CPP release version 3.2.3,
1248           the latest before integration of cpp into gcc
1249         * support/cpp2/except.h, support/cpp2/line-map.c,
1250           support/cpp2/line-map.h,
1251           support/cpp2/libiberty/hex.c,
1252           support/cpp2/libiberty/concat.c,
1253           support/cpp2/libiberty/filenames.h: added
1254         * support/cpp2/intl.c: deleted
1255
1256 2006-11-24 Borut Razem <borut.razem AT siol.net>
1257
1258         * src/SDCC.y: enabled compilation of empty source file
1259         * support/Util/SDCCerr.[ch]: added sdcc warning 190 -
1260           "ISO C forbids an empty source file"
1261         * device/lib/_startup.c, device/lib/printf_tiny.c: disable warning 190
1262           if all the code is ifdefed out.
1263
1264 2006-11-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1265
1266         * src/hc08/gen.c (genPcall): fix for bug #1601032
1267
1268 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
1269
1270         * device/include/mcs51/c8051f000.h, device/include/mcs51/C8051F000.h,
1271         * device/include/mcs51/c8051f018.h, device/include/mcs51/C8051F018.h,
1272         * device/include/mcs51/c8051f020.h, device/include/mcs51/C8051F020.h,
1273         * device/include/mcs51/c8051f040.h, device/include/mcs51/C8051F040.h,
1274         * device/include/mcs51/c8051f060.h, device/include/mcs51/C8051F060.h,
1275         * device/include/mcs51/c8051f120.h, device/include/mcs51/C8051F120.h,
1276         * device/include/mcs51/c8051f200.h, device/include/mcs51/C8051F200.h,
1277         * device/include/mcs51/c8051f300.h, device/include/mcs51/C8051F300.h,
1278         * device/include/mcs51/c8051f310.h, device/include/mcs51/C8051F310.h,
1279         * device/include/mcs51/c8051f320.h, device/include/mcs51/C8051F320.h,
1280         * device/include/mcs51/c8051f326.h, device/include/mcs51/C8051F326.h,
1281         * device/include/mcs51/c8051f330.h, device/include/mcs51/C8051F330.h,
1282         * device/include/mcs51/c8051f340.h, device/include/mcs51/C8051F340.h,
1283         * device/include/mcs51/c8051f350.h, device/include/mcs51/C8051F350.h,
1284         * device/include/mcs51/c8051f410.h, device/include/mcs51/C8051F410.h:
1285           Renamed to all upper case as per the standard set by SiLabs
1286
1287 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
1288
1289         * device/include/mcs51/C8051F520.h: new, added
1290         * device/include/mcs51/compiler.h: added link about predefined macros
1291
1292 2006-11-23 Raphael Neider <rneider AT web.de>
1293
1294         * src/regression/Makefile: add -L path to fresh library
1295         * src/regression/simulate: emphasize FAILED output
1296         * src/regression/create_stc: output _failures from gpsim
1297         * src/regression/compare4.c,
1298         * src/regression/rotate6.c: fixed char literals,
1299           all compile, all run =8-D
1300
1301         * src/pic/pcode.h: added isPCASMDIR macro
1302         * src/pic/gen.c (genAnd): fixed bit offset
1303         * src/pic/ralloc.c (allocNewDirReg,allocDirReg,allocRegByName,
1304           packBits): unified register numbering schemes,
1305           (newReg): do not insert stack registers into hash table,
1306           (initStack): unpinned pseudo stack, simplified,
1307           (typeRegWithIdx): fixed retrieval of stack registers,
1308         * src/pic/pcode.c (addpCodeComment,sameBank): added,
1309           (pCodeReplace): removed invalid assertion,
1310           (insertPCodeInstruction): fixed newly added labels,
1311           (insertBankSwitch,BankSelect,IsBankChange,DoBankSelect,
1312           FixRegisterBankingInFlow,compareBankFlow,FixBankFlow,
1313           DumpFlow): removed unsed (broken?) code,
1314           (insertBankSel): prevent STATUS from being BANKSELed,
1315           (FixRegisterBanking): rewritten from scratch, implemented generic
1316             optimizations (suppress BANKSELs to same register and to registers
1317             present in all banks),
1318           (AnalyzeBanking): update flow after BANKSELection
1319
1320         * src/pic/glue.c (pic14_constructAbsMap): emit pseudo stack in
1321             sharebank, let linker place it, mark STKxx symbols as emitted
1322
1323 2006-11-21 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1324
1325         * src/regression/arrays.c,
1326         * src/regression/bank1.c,
1327         * src/regression/bool2.c,
1328         * src/regression/compare7.c,
1329         * src/regression/compare8.c,
1330         * src/regression/compare9.c,
1331         * src/regression/compare10.c,
1332         * src/regression/configword.c,
1333         * src/regression/for.c,
1334         * src/regression/mult1.c,
1335         * src/regression/pointer1.c,
1336         * src/regression/rotate6.c,
1337         * src/regression/string1.c,
1338         * src/regression/struct1.c,
1339         * src/regression/Makefile: make PIC14 regression tests run again
1340           (3 fail, 6 won't compile)
1341
1342 2006-11-21 Raphael Neider <rneider AT web.de>
1343
1344         * device/include/pic16/pic18f4550.h,
1345         * device/include/pic16/pic18f4455.h,
1346         * device/lib/pic16/libdev/pic18f4550.c,
1347         * device/lib/pic16/libdev/pic18f4455.c: fixed #1578591 and #1595144
1348         * configure.in: removed superfluous closing bracket
1349
1350 2006-11-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1351
1352         * device/lib/expf.c: Fixed bug 1599523: result of expf(x) is
1353           always positive.
1354
1355 2006-11-21 Raphael Neider <rneider AT web.de>
1356
1357         * src/pic/device.{c,h}: added pic14_getPIC()
1358         * src/pic/gen.c (continueIfTrue,jumpIfTrue): added PIC code,
1359           (genAnd): added PIC code for one case, fixes #1597044
1360         * src/pic/pcode.c (BankSelect): Ohoh, added generic optimization for
1361           SFRs that are present in all banks (e.g., STATUS)
1362
1363 2006-11-20 Raphael Neider <rneider AT web.de>
1364
1365         * src/pic/pcode.c: changed inverted ops for DECFSZ/DECFSZW and
1366           INCFSZ/INCFSZW and declared them as changing Z bit,
1367           (insertPCodeInstruction): correctly invert the above instructions,
1368           fixes #1599333,
1369           (DoBankSelect): don't panic on po_immediates
1370
1371 2006-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
1372
1373         * as/link/aslink.h,
1374         * as/link/mcs51/lkihx.c (newArea),
1375         * as/link/mcs51/lkrloc.c: renamed newArea() to ihxNewArea()
1376         * as/link/mcs51/lkihx.c (ihx): output reset vector as start address
1377
1378 2006-11-11 Raphael Neider <rneider AT web.de>
1379
1380         * src/pic/pcode.c (newpCodeOpBit): search SymbolTab for referenced
1381           bitfield symbols, fixes #1579535 (once more...).
1382
1383 2006-11-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1384
1385         * support/regression/generate-cases.py,
1386         * support/regression/fwk/include/testfwk.h,
1387         * support/regression/fwk/lib/testfwk.c: used code pointers,
1388           (about 50kByte less code generated for mcs51)
1389
1390 2006-11-06 Borut Razem <borut.razem AT siol.net>
1391
1392         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
1393           debugger/mcs51/configure: fixed failed check because the function
1394           rl_function_of_keyseq isn't in Readline 5.2. Thanks to Ilya Goldberg
1395           who submitted the patch for gpsim.
1396         * debugger/mcs51/configure.in: removed the result message
1397         * debugger/mcs51/Makefile.in: fixed the config.status warning
1398           "... seems to ignore the --datarootdir setting"
1399
1400 2006-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
1401
1402         * device/include/mcs51/c8051f020.h,
1403         * device/include/mcs51/c8051f040.h,
1404         * device/include/mcs51/c8051f060.h,
1405         * device/include/mcs51/c8051f120.h: added PS0, fixed bug 1589279
1406         * src/z80/gen.c (gencjneshort),
1407         * src/z80/peeph.def: applied patch 1571373, thanks Philipp Krause
1408
1409 2006-10-31 Borut Razem <borut.razem AT siol.net>
1410
1411         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
1412           debugger/mcs51/configure: get readline version
1413
1414 2006-10-30 Borut Razem <borut.razem AT siol.net>
1415
1416         * debugger/mcs51/sdcdb.c: replaced hardcoded "/" with DIR_SEPARATOR_STRING
1417         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
1418           debugger/mcs51/configure: locate readline even when cross compiling
1419         * support/scripts/sdcc.nsi: include readline5.dll into the setup package
1420
1421 2006-10-29 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1422
1423         * device/include/mcs51/serial_IO.h: putchar() and getchar() using
1424           serial port.
1425
1426 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
1427
1428         * device/include/malloc.h,
1429         * device/lib/calloc.c,
1430         * device/lib/free.c,
1431         * device/lib/malloc.c,
1432         * device/lib/realloc.c: moved definition of struct into sources
1433         * support/regression/tests/malloc.c: use void* for init_dynamic_memory()
1434
1435 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
1436
1437         * as/asx8051.dsp: corrected output directories
1438         * as/link/hc08: new directory for hc08 linker
1439         * as/hc08/aslink.h,             as/link/aslink.h,
1440         * as/hc08/aslink.mak,           as/link/hc08/aslink.mak,
1441         * as/hc08/clean.mk,             as/link/hc08/clean.mk,
1442         * as/hc08/link_hc08.dsp,        as/link/hc08/link_hc08.dsp,
1443         * as/hc08/lkaomf51.c,           as/link/hc08/lkaomf51.c,
1444         * as/hc08/lkarea.c,             as/link/hc08/lkarea.c,
1445         * as/hc08/lkdata.c,             as/link/hc08/lkdata.c,
1446         * as/hc08/lkelf.c,              as/link/hc08/lkelf.c,
1447         * as/hc08/lkihx.c,              as/link/hc08/lkihx.c,
1448         * as/hc08/lklibr.c,             as/link/hc08/lklibr.c,
1449         * as/hc08/lkmain.c,             as/link/hc08/lkmain.c,
1450         * as/hc08/lkmem.c,              as/link/hc08/lkmem.c,
1451         * as/hc08/lkrloc.c,             as/link/hc08/lkrloc.c,
1452         * as/hc08/lks19.c,              as/link/hc08/lks19.c,
1453         * as/hc08/Makefile.aslink,      as/link/hc08/Makefile.aslink,
1454         * as/hc08/Makefile.bcc,         as/link/hc08/Makefile.bcc,
1455         * as/hc08/Makefile.in,          as/link/hc08/Makefile.in,
1456         * as/link/hc08/conf.mk,
1457         * configure,
1458         * configure.in,
1459         * Makefile.in,
1460         * sdcc.dsw: moved hc08 linker to as/link/hc08
1461         * as/hc08/lkeval.c,     as/link/mcs51/lkeval.c,     as/link/lkeval.c,
1462         * as/hc08/lkhead.c,     as/link/mcs51/lkhead.c,     as/link/lkhead.c,
1463         * as/hc08/lklex.c,      as/link/mcs51/lklex.c,      as/link/lklex.c,
1464         * as/hc08/lklist.c,     as/link/mcs51/lklist.c,     as/link/lklist.c,
1465         * as/hc08/lknoice.c,    as/link/mcs51/lknoice.c,    as/link/lknoice.c,
1466         * as/hc08/lksym.c,      as/link/mcs51/lksym.c,      as/link/lksym.c,
1467         * as/link/mcs51/aslink.dsp,
1468         * as/link/mcs51/Makefile.in: factored out the common files
1469         * as/hc08/lkstore.c: deleted, use the one already in as/link/
1470         * as/clean.mk: extra cleaning common files
1471         * as/link/mcs51/strcmpi.c,      as/strcmpi.c: moved
1472         * as/link/mcs51/strcmpi.h: deleted, moved protoype to aslink.h
1473         * as/mcs51/asm.h: include sdccconf.h or sdcc_vc.h
1474
1475 2006-10-29 Raphael Neider <rneider AT web.de>
1476
1477         * src/pic/ralloc.c (newReg): create aliases for registers with
1478           multiple names to fix #1579535 and #1584001,
1479           (regWithIdx,dirregWithName): resolve aliases on lookup
1480         * src/pic/pcode.c (DoBankSelect): die with error message on failing
1481           bankselect
1482         * device/lib/pic/libdev/Makefile.in: move pseudo stack down to 0x4f
1483           to prevent build errors on small devices
1484
1485 2006-10-28 Raphael Neider <rneider AT web.de>
1486
1487         * src/pic/gen.c (genFunction,genCall): drop "same code page"
1488           assumption within interrupt handlers, fixes #1584940
1489         * src/pic/glue.c (pic14_constructAbsMap): mark absolute symbols as
1490           "emitted" to avoid emitting them again in udata
1491
1492 2006-10-27 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1493
1494         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
1495         Removed.
1496
1497 2006-10-26 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1498
1499         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
1500         Initialize uart only if SM0 and SM1 are zero.  Also, use flag to turn
1501         on/off CR to CRLF conversion.
1502
1503 2006-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1504
1505         * doc/sdccman.lyx: updated IRQ section
1506
1507 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1508
1509         * device/lib/serial_io.c: removed
1510         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c
1511         replacements for serial_io.c
1512
1513 2006-10-24 Maarten Brock <sourceforge.brock AT dse.nl>
1514
1515         * src/z80/main.c (_process_pragma, _parseOptions): fixed bug 1583318
1516
1517 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1518
1519         * device/lib/serial_io.c: Default putchar() and getchar() for
1520           mcs51 uses serial port.
1521
1522 2006-10-23 Maarten Brock <sourceforge.brock AT dse.nl>
1523
1524         * src/mcs51/gen.c (movc): improved check for 0 and 1, see RFE 1582704
1525
1526 2006-10-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1527
1528         * support/regression/ports/mcs51/support.c: smaller
1529         _sdcc_external_startup()
1530         * device/lib/mcs51/crtxclear.asm: don't check high byte of l_PSEG
1531
1532 2006-10-20 Maarten Brock <sourceforge.brock AT dse.nl>
1533
1534         * device/lib/gbz80/crt0.s,
1535         * device/lib/gbz80/crt0_rle.s,
1536         * device/lib/gbz80/div.s,
1537         * device/lib/gbz80/fstubs.s,
1538         * device/lib/gbz80/heap.s,
1539         * device/lib/gbz80/mul.s,
1540         * device/lib/gbz80/putchar.s,
1541         * device/lib/gbz80/stubs.s,
1542         * device/lib/z80/crt0.s,
1543         * device/lib/z80/crt0_rle.s,
1544         * device/lib/z80/div.s,
1545         * device/lib/z80/fstubs.s,
1546         * device/lib/z80/heap.s,
1547         * device/lib/z80/mul.s,
1548         * device/lib/z80/putchar.s,
1549         * device/lib/z80/stubs.s: reverted, I was mistaken
1550
1551 2006-10-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1552
1553         * src/mcs51/peeph.def: peephole 238.x added check for notvolatile
1554         * support/regression/ports/mcs51/support.c: removed race
1555         condition on TI in _putchar allowing to use serial port mode 0
1556
1557 2006-10-20 Borut Razem <borut.razem AT siol.net>
1558
1559         * debugger/mcs51/sdcdb.c: replaced isblank() with isspace()
1560
1561 2006-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
1562
1563         * device/lib/gbz80/crt0.s,
1564         * device/lib/gbz80/crt0_rle.s,
1565         * device/lib/gbz80/div.s,
1566         * device/lib/gbz80/fstubs.s,
1567         * device/lib/gbz80/heap.s,
1568         * device/lib/gbz80/mul.s,
1569         * device/lib/gbz80/putchar.s,
1570         * device/lib/gbz80/stubs.s,
1571         * device/lib/z80/crt0.s,
1572         * device/lib/z80/crt0_rle.s,
1573         * device/lib/z80/div.s,
1574         * device/lib/z80/fstubs.s,
1575         * device/lib/z80/heap.s,
1576         * device/lib/z80/mul.s,
1577         * device/lib/z80/putchar.s,
1578         * device/lib/z80/stubs.s: removed all leading underscores from area names
1579
1580 2006-10-17 Maarten Brock <sourceforge.brock AT dse.nl>
1581
1582         * support/regression/ports/mcs51/support.c: use highest baudrate so the
1583           regression tests are not waiting in the simulator for simulated
1584           transmission of debug output
1585
1586 2006-10-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1587
1588         * device/lib/printf_large.c: slightly smaller
1589         * doc/sdccman.lyx: do not use spaces within html links
1590
1591 2006-10-16 Borut Razem <borut.razem AT siol.net>
1592
1593         * configure.in, configure, sdccconf_in.h, src/SDCCglobal,
1594           debugger/mcs51/Makefile.in, debugger/mcs51/sdcdb.[ch],
1595           debugger/mcs51/aclocal.m4, debugger/mcs51/acinclide.m4,
1596           debugger/mcs51/config.h.in, debugger/mcs51/configure.in,
1597           debugger/mcs51/configure:
1598           [ 1185668 ] add gnu readline support to sdcdb - enabled
1599
1600 2006-10-16 Raphael Neider <rneider AT web.de>
1601
1602         * src/pic/pcode.c (BankSelect): another fix on (partial) BANKSELs,
1603           fixes #1577882, removes close to all banking optimizations
1604
1605 2006-10-15 Maarten Brock <sourceforge.brock AT dse.nl>
1606
1607         * src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
1608           variables in code memory
1609         * support/regression/tests/absolute.c: added test for this
1610
1611 2006-10-15 Raphael Neider <rneider AT web.de>
1612
1613         * src/pic/pcode.c (InsertBankSel): suppress BANKSELs for one bank
1614           devices,
1615           (BankSelect): emit BANKSEL before touching linker-placed regs,
1616           fixes #1570934
1617
1618 2006-10-10 Raphael Neider <rneider AT web.de>
1619
1620         * src/SDCCmain.c (optionsTable): accept --stack-size for PICs,
1621         * src/pic/device.c (pic14_getSharebankSize,pic14_getSharebankAddress),
1622         * src/pic/main.c (_pic14_parseOptions),
1623         * src/pic/main.h: mostly reverted to previous state, now use results
1624             from SDCCmain.c's argument parsing
1625
1626 2006-10-10 Borut Razem <borut.razem AT siol.net>
1627
1628         * debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
1629           debugger/mcs51/sdcdb.[ch], debugger/mcs51/simi.c:
1630           [ 1185668 ] add gnu readline support to sdcdb -
1631           prepared for READLINE, not enabled yet,
1632           thanks to <tal.bav AT gmail.com>
1633
1634 2006-10-10 Raphael Neider <rneider AT web.de>
1635
1636         * src/pic16/pcode.c (pic16_pCode2str): use isACCESS_BANK macro
1637         * src/pic16/devices.inc,
1638         * device/include/pic16 (pic18f[24]620.h),
1639         * device/include/pic18fregs.h,
1640         * device/lib/pic16/pics.all,
1641         * device/lib/pic16/libdev/pic18f[24]{620,525}.c): added support for
1642             18f2620, 18f4620, 18f2525, and 18f4525 devices, thanks to
1643             Gary Plumbridge and Anton Strobl
1644
1645 2006-10-10 Raphael Neider <rneider AT web.de>
1646
1647         * src/pic/main.c (_pic14_parseOptions): added --stack-loc=NUM and
1648           --stack-siz=NUM options to configure the argument passing stack
1649         * src/pic/main.h: added stackLocation and stackSize to pic14_options_t
1650         * src/pic/device.c (mapRegister): catch out-of-memory SIGSEGVs,
1651           (pic14_getSharebankSize): obey --stack-siz=NUM,
1652           (pic14_getSharebankAddress): obey --stack-loc=NUM
1653
1654 2006-10-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1655
1656         * doc/sdccman.lyx: added to the manual
1657         * doc/figures/ddd_example.png: added (neither pdflatex nor
1658         most browsers seem to like the .eps file)
1659
1660 2006-10-06 Bernhard Held <bernhard AT bernhardheld.de>
1661
1662         * src/SDCCglue.c (tempfileandname): changed un*x tmp search paths
1663         to /tmp and /var/tmp acc. LSB
1664         * src/SDCCast.c (addCast): Fixed bug 1571231: promote in case of
1665         RESULT_TYPE_IFX
1666         * support/regression/tests/onebyte.c: added test
1667
1668 2006-10-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1669
1670         * src/mcs51/gen.c: emitcode for "add a,0x%02x" requires only 8 bits.
1671
1672 2006-10-05 Borut Razem <borut.razem AT siol.net>
1673
1674         * partially fixed [ 1570701 ] peephole - not replacing code from multiline macros,
1675           thanks to dfulab:
1676           - sdcc.dsw: changed property eol-style to CRLF
1677           - support/scripts/resource.rc: replaced references to "afxres.h" with "winres.h"
1678
1679 2006-10-04 Raphael Neider <rneider AT web.de>
1680
1681         * device/include/pic/{pic16f84.h,pic16f84a.h},
1682         * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits
1683           from patch #1522504, thanks to Robas Teodor
1684
1685 2006-10-02 Maarten Brock <sourceforge.brock AT dse.nl>
1686
1687         * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which
1688           fixes bug 1566015
1689
1690 2006-10-01 Maarten Brock <sourceforge.brock AT dse.nl>
1691
1692         * src/pic16/glue.c (pic16emitMaps),
1693         * src/pic/glue.c (pic14emitMaps): hopefully fixed bug 1568779
1694         * device/lib/gets.c: fixed bug 1568829,thanks Philipp Krause
1695         * device/lib/pic16/libc/string/memcpypgm2ram.c,
1696         * device/lib/pic16/libc/string/memcpyram2ram.c: fixed bug 1568836, thanks
1697           Philipp Krause
1698         * as/mcs51/asmain.c (asmbl, newdot): fixed problems with absolute areas
1699         * as/link/mcs51/lkmem.c (summary2): reverted, do do count abs segments
1700
1701 2006-09-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1702
1703         * support/librarian/sdcclib.c: Added option -l.
1704         * as/link/mcs51/lkmem.c: don't use absolute segments to compute memory
1705           usage totals.
1706         * device/lib/make51lib.bat: added.  Allows building mcs51 libraries easily
1707           using Windows command prompt.
1708
1709 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
1710
1711         * device/lib/libsdcc.lib: added module rand
1712         * src/ds390/ralloc.c (rematStr),
1713         * src/hc08/ralloc.c (rematStr),
1714         * src/mcs51/ralloc.c (rematStr),
1715         * src/z80/ralloc.c (rematStr): made output more consistent
1716         * src/mcs51/gen.c: cosmetic changes
1717
1718 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
1719
1720         * src/port.h: added mem.cabs_name to PORT
1721         * src/ds390/main.c,
1722         * src/hc08/main.c,
1723         * src/mcs51/main.c,
1724         * src/pic16/main.c,
1725         * src/pic/main.c,
1726         * src/xa51/main.c,
1727         * src/z80/main.c: added cabs_name initializers
1728         * src/SDCCglue.c (emitStaticSeg): allocate and initialize absolute
1729           constants
1730           (emitMaps): emit absolutes in code memory into cabs_name
1731         * src/SDCCmem.c,
1732         * src/SDCCmem.h: added memory map c_abs and defined CABS_NAME
1733         * src/ds390/gen.c (genCodePointerGet): fixed bug if left is a literal
1734         * support/regression/fwk/include/testfwk.h: added define for at
1735         * support/regression/tests/absolute.c: added, new
1736
1737 2006-09-29 Maarten Brock <sourceforge.brock AT dse.nl>
1738
1739         * src/mcs51/gen.c (genPlusIncr, genMinusDec, genAddrOf): small
1740           optimizations, see also patch 887161 by Stas Sergeev
1741         * src/mcs51/peeph.def(104, 207, 209, 212): disabled as they do not seem
1742           to be necessary anymore,
1743           (102, 103, 104, 127): renamed all occurances of bp to _bp
1744
1745 2006-09-27 Maarten Brock <sourceforge.brock AT dse.nl>
1746
1747         * device/include/mcs51/at89c51snd1c.h: fixed MSK_SREQ definition
1748           thanks Weston T. Schmidt for patch 1555221
1749         * src/mcs51/peeph.def: renamed rule 257 to 257.a, added 257.b
1750         * src/SDCCicode.c(geniCodeMultiply): small optimization
1751
1752 2006-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
1753
1754         * device/include/stdlib.h: added rand prototypes
1755         * device/lib/rand.c: new, added
1756         * device/lib/Makefile.in: added rand.c
1757         * src/z80/peeph.def,
1758         * src/z80/peeph-gbz80.def,
1759         * src/z80/peeph-z80.def: updated conditonals, fixed bug 1565908
1760
1761 2006-09-20 Raphael Neider <rneider AT web.de>
1762
1763         * device/lib/pic16/libio/i2c/i2cnack.c (i2c_nack): fixed ACKDT bit
1764
1765 2006-09-19 Maarten Brock <sourceforge.brock AT dse.nl>
1766
1767         * as/link/aslink.h: cosmetic changes
1768         * as/link/mcs51/Makefile.in,
1769         * as/link/z80/Makefile.in: fixed build on CF where VPATH is used
1770
1771 2006-09-17 Maarten Brock <sourceforge.brock AT dse.nl>
1772
1773         * as/link/aslink.h,
1774         * as/link/mcs51/aslink.h,
1775         * as/link/z80/aslink.h: merged and moved to as/link/
1776         * as/link/lkstore.c,
1777         * as/link/mcs51/lkstore.c: moved to as/link/
1778         * as/link/clean.mk: remove *.o
1779         * as/link/mcs51/alloc.h: deleted
1780         * as/link/mcs51/lkarea.c: added lnksect prototype
1781         * as/link/mcs51/lkdata.c,
1782         * as/link/mcs51/lklex.c,
1783         * as/link/mcs51/lkmain.c: renamed as_getline to lk_getline
1784         * as/link/mcs51/lkmem.c,
1785         * as/link/mcs51/lknoice.c: removed include strcmpi.h
1786         * as/link/mcs51/lksym.c: include stdlib.h instead of malloc.h or alloc.h
1787         * as/link/mcs51/aslink.dsp,
1788         * as/link/mcs51/Makefile.aslink,
1789         * as/link/mcs51/Makefile.bcc,
1790         * as/link/mcs51/Makefile.in: updated for moved files
1791         * as/link/z80/lkarea.c,
1792         * as/link/z80/lkhead.c,
1793         * as/link/z80/lklex.c,
1794         * as/link/z80/lklibr.c,
1795         * as/link/z80/lklist.c,
1796         * as/link/z80/lkmain.c,
1797         * as/link/z80/lkrloc.c,
1798         * as/link/z80/lksym.c: synced with mcs51
1799         * as/link/z80/lkdata.c,
1800         * as/link/z80/lkeval.c,
1801         * as/link/z80/lkihx.c,
1802         * as/link/z80/lks19.c: cosmetic changes
1803         * as/link/z80/Makefile.in,
1804         * as/link/z80/linkgbz80.dsp,
1805         * as/link/z80/linkz80.dsp: updated for moved files
1806
1807 2006-09-16 Borut Razem <borut.razem AT siol.net>
1808
1809         * debugger/mcs51/sdcdb.c: partially fixed
1810           [ 1203664 ] sdcdb fails to open files w. two "." periods
1811         * debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
1812           debugger/mcs51/symtab.h: fixed indenting
1813         * configure.in, configure: up to date with latest Maarten's changes
1814
1815 2006-09-15 Maarten Brock <sourceforge.brock AT dse.nl>
1816
1817         as/link/mcs51
1818         as/aslink.dsp,                  as/link/mcs51/aslink.dsp,
1819         as/link/mcs51/aslink.h,         as/mcs51/aslink.h,
1820         as/link/mcs51/aslink.mak,       as/mcs51/aslink.mak,
1821         as/link/mcs51/lkaomf51.c,       as/mcs51/lkaomf51.c,
1822         as/link/mcs51/lkarea.c,         as/mcs51/lkarea.c,
1823         as/link/mcs51/lkdata.c,         as/mcs51/lkdata.c,
1824         as/link/mcs51/lkeval.c,         as/mcs51/lkeval.c,
1825         as/link/mcs51/lkhead.c,         as/mcs51/lkhead.c,
1826         as/link/mcs51/lkihx.c,          as/mcs51/lkihx.c,
1827         as/link/mcs51/lklex.c,          as/mcs51/lklex.c,
1828         as/link/mcs51/lklibr.c,         as/mcs51/lklibr.c,
1829         as/link/mcs51/lklist.c,         as/mcs51/lklist.c,
1830         as/link/mcs51/lkmain.c,         as/mcs51/lkmain.c,
1831         as/link/mcs51/lkmem.c,          as/mcs51/lkmem.c,
1832         as/link/mcs51/lknoice.c,        as/mcs51/lknoice.c,
1833         as/link/mcs51/lkrloc.c,         as/mcs51/lkrloc.c,
1834         as/link/mcs51/lks19.c,          as/mcs51/lks19.c,
1835         as/link/mcs51/lkstore.c,        as/mcs51/lkstore.c,
1836         as/link/mcs51/lksym.c,          as/mcs51/lksym.c,
1837         as/link/mcs51/Makefile.aslink,  as/mcs51/Makefile.aslink,
1838         as/link/mcs51/alloc.h,
1839         as/link/mcs51/clean.mk,
1840         as/link/mcs51/conf.mk,
1841         as/link/mcs51/Makefile.bcc,
1842         as/link/mcs51/Makefile.in,
1843         as/link/mcs51/readme.390,
1844         as/link/mcs51/strcmpi.c,
1845         as/link/mcs51/strcmpi.h,
1846         as/mcs51/clean.mk,
1847         as/mcs51/Makefile.bcc,
1848         as/mcs51/Makefile.in,
1849         configure,
1850         Makefile.in,
1851         sdcc.dsw: moved mcs51 linker to as/link/mcs51
1852
1853 2006-09-14 Maarten Brock <sourceforge.brock AT dse.nl>
1854
1855         * as/link,
1856         * as/link/Makefile.in,
1857         * as/link/z80/linkgbz80.dsp,
1858         * as/link/z80/linkz80.dsp,
1859         * configure,
1860         * link,
1861         * link/clean.mk,
1862         * link/Makefile.in,
1863         * link/README,
1864         * link/z80,
1865         * link/z80/aslink.h,
1866         * link/z80/clean.mk,
1867         * link/z80/conf.mk,
1868         * link/z80/linkgbz80.dsp,
1869         * link/z80/linkz80.dsp,
1870         * link/z80/lkarea.c,
1871         * link/z80/lkdata.c,
1872         * link/z80/lkeval.c,
1873         * link/z80/lkgb.c,
1874         * link/z80/lkgg.c,
1875         * link/z80/lkhead.c,
1876         * link/z80/lkihx.c,
1877         * link/z80/lklex.c,
1878         * link/z80/lklibr.c,
1879         * link/z80/lklist.c,
1880         * link/z80/lkmain.c,
1881         * link/z80/lkrloc.c,
1882         * link/z80/lks19.c,
1883         * link/z80/lksym.c,
1884         * link/z80/Makefile.in,
1885         * Makefile.in,
1886         * sdcc.dsw: moved link/ to as/link/
1887
1888 2006-09-11 Maarten Brock <sourceforge.brock AT dse.nl>
1889
1890         * as/mcs51/i51mch.c (machine): fixed warning
1891
1892 2006-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
1893
1894         * as/mcs51/i51mch.c (machine): S_DJNZ fixed bug 1554318
1895
1896 2006-09-09 Borut Razem <borut.razem AT siol.net>
1897
1898         * debugger/mcs51/sdcdb.c, debugger/mcs51/simi.c:
1899           sdcdb WIN32 native port
1900         * src/clean.mk: fixed
1901
1902 2006-09-08 Borut Razem <borut.razem AT siol.net>
1903
1904         * doc/sdccman.lyx: SDCDB and ucSim are available on Win32 platforms.
1905
1906 2006-09-08 Raphael Neider <rneider AT web.de>
1907
1908         * src/pic16/main.c (_pic16_linkEdit,pic16_linkCmd),
1909         * src/pic/main.c(_pic14_do_link, linkCmd): pass "-w" and "-r"
1910             to gplink to disable processor mismatch warning and to allow
1911             the use of devices with only aliased (shared) memory banks,
1912           (_pic16_genAssemblerPreamble): include pXXX.inc on --mplab-comp
1913
1914 2006-09-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1915
1916         * doc/sdccman.lyx: Some re-formating plus example on using
1917           #pragma preproc_asm +/-
1918
1919 2006-09-07 Borut Razem <borut.razem AT siol.net>
1920
1921         * support/scripts/sdcc.nsi: added SDCDB executables in a separate
1922           section
1923
1924 2006-09-06 Borut Razem <borut.razem AT siol.net>
1925
1926         * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
1927           line at sdcc.nsi:153
1928         * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
1929
1930 2006-09-05 Borut Razem <borut.razem AT siol.net>
1931
1932         * configure.in, configure: support for winsock2
1933         * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
1934           debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
1935           debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
1936           debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
1937           debugger/mcs51/symtab.h: sdcdb WIN32 native port
1938
1939 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
1940
1941         * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
1942           and OP_DEFS
1943         * support/regression/tests/bug1551947.c: new, added
1944         * src/SDCCsymt.h: strings are char* not byte*
1945
1946 2006-09-05 Raphael Neider <rneider AT web.de>
1947
1948         * device/lib/pic16/libdev/pic18f4550.c,
1949           device/include/pic16/pic18f4550.h: added PORTD/TRISD
1950             declarations/definitions from patch #1520949
1951
1952 2006-09-05 Raphael Neider <rneider AT web.de>
1953
1954         * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
1955           byte-aligned bitfields, fixes #1539278
1956
1957 2006-09-05 Raphael Neider <rneider AT web.de>
1958
1959         * src/pic/gen.c (genReceive): skip unreferenced arguments,
1960           fixes #1544120
1961
1962 2006-09-04 Borut Razem <borut.razem AT siol.net>
1963
1964         * support/scripts/sdcc.nsi: move ucSim executables to a separate section
1965         * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
1966           -mno-cygwin is a part of the compiler name
1967         * support/scripts/sdcc_mingw32: don't disable ucsim
1968
1969 2006-09-03 Borut Razem <borut.razem AT siol.net>
1970
1971         * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
1972         * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
1973
1974 2006-09-03 Raphael Neider <rneider AT web.de>
1975
1976         * src/pic/ralloc.c,
1977         * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
1978           indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
1979           fixes #1550049
1980
1981 2006-09-01 Borut Razem <borut.razem AT siol.net>
1982
1983         * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
1984           to make ppc-osx happy
1985
1986 2006-08-31 Borut Razem <borut.razem AT siol.net>
1987
1988         * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
1989         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
1990         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
1991         * support/regression/ports/ds390/spec.mk,
1992           support/regression/ports/mcs51/spec.mk,
1993           support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
1994           To run regression tests in mingw environment:
1995           make DEV_NULL=NUL CC=gcc
1996
1997 2006-08-30 Borut Razem <borut.razem AT siol.net>
1998
1999         * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
2000           sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
2001           sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
2002           sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
2003           sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
2004           sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
2005           sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
2006           sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
2007           sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
2008           sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
2009           sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
2010           sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
2011           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
2012           sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
2013           sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
2014           sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
2015           sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
2016           sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
2017           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
2018           sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
2019           sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
2020           sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
2021           sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
2022           sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
2023           sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
2024           sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
2025           sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
2026           sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
2027           sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
2028           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
2029           sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
2030           sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
2031           sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
2032           sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
2033           sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
2034           sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
2035           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
2036           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
2037           sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
2038           ucsim WIN32 native port
2039
2040 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2041
2042         * doc/sdccman.lyx: added note on dynamic memory heap initialization
2043
2044 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
2045
2046         * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
2047         * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
2048
2049 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
2050
2051         * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
2052         * support/regression/tests/bug1546986.c: new, added
2053         * as/mcs51/.cvsignore,
2054         * debugger/mcs51/.cvsignore,
2055         * src/.cvsignore: deleted
2056
2057 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2058
2059         * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
2060           definitions)
2061
2062 2006-08-20 Borut Razem <borut.razem AT siol.net>
2063
2064         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
2065           removed cl_listen_console::match(), cl_console::match(),
2066           restructured cl_commander::proc_input()
2067
2068 2006-08-16 Borut Razem <borut.razem AT siol.net>
2069
2070         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
2071           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
2072           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
2073
2074 2006-08-14 Borut Razem <borut.razem AT siol.net>
2075
2076         * support/regression/Makefile.in,
2077           support/regression/ports/pic14/gpsim.cmd,
2078           support/regression/ports/pic14/spec.mk,
2079           support/regression/ports/pic14/support.c:
2080           added pic14 regression test
2081
2082 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
2083
2084         * as/doc/asxhtm.html: documented changed ABS behaviour
2085         * as/doc/README: fixed some typos
2086
2087 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
2088
2089         * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
2090           not defined on host
2091
2092 2006-08-12 Borut Razem <borut.razem AT siol.net>
2093
2094         * support/regression/fwk/include/testfwk.h,
2095           support/regression/fwk/lib/testfwk.c,
2096           support/regression/generate-cases.py,
2097           support/regression/Makefile.in:
2098           regression test framework does not depend on function pointers and
2099           variable arguments
2100
2101 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
2102
2103         * device/include/stddef.h: c temporary hack to fix bug 1518273
2104
2105 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2106
2107         * device/include/mcs51/cc2510fx.h: added
2108         * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
2109           to projects.
2110
2111 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
2112
2113         * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
2114         * as/z80/Makefile.in: added strcmpi.c
2115         * as/z80/z80adr.c: added upper case registers and lower case conditionals
2116         * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
2117
2118 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
2119
2120         * device/lib/gbz80/asm_strings.s,
2121         * device/lib/gbz80/crt0_rle.s,
2122         * device/lib/gbz80/div.s,
2123         * device/lib/gbz80/mul.s,
2124         * device/lib/gbz80/shift.s,
2125         * device/lib/z80/asm_strings.s,
2126         * device/lib/z80/crt0_rle.s,
2127         * device/lib/z80/div.s,
2128         * device/lib/z80/mul.s,
2129         * device/lib/z80/shift.s: changed to all lower case menmonics except the
2130           flags which are all upper case
2131
2132 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
2133
2134         * as/z80/asm.h: made CASE_SENSITIVE 1
2135         * link/z80/aslink.h: made CASE_SENSITIVE 1
2136         * src/z80/gen.c (throughout): made all conditionals upper case
2137         * support/regression/tests/bug1503067.c: new
2138
2139 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
2140
2141         * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
2142           (shiftIntoPair): added case 2 for PAIR_IY,
2143           (setupToPreserveCarry): replaced parameters with iCode and check if
2144            PAIR_DE is in use to fix bug 1399290,
2145           (genPlus, genMinus): updated call to setupToPreserveCarry
2146         * support/regression/tests/bug1399290.c: new
2147
2148 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
2149
2150         * device/lib/Makefile.in (Z80SOURCES): enabled float support
2151         * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
2152         * src/ds390/gen.c (shiftRLong),
2153         * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
2154         * src/mcs51/gen.c (sameReg): changed to sameByte,
2155           (xch_a_aopGet): new,
2156           (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
2157            shiftRLong): fixed bug 1533966
2158         * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
2159           genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
2160         * support/regression/Makefile.in: disabled z80, enabled ucz80
2161         * support/regression/tests/float_trans.c: enabled test for z80 and host
2162         * support/regression/tests/shifts2.c: new, for testing bug 1533966
2163
2164 2006-08-01 Borut Razem <borut.razem AT siol.net>
2165
2166         * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
2167           comparison is always false due to limited range of data type
2168           on PPC64 machine (openpower-linux1) where "char = unsigned char"
2169
2170 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
2171
2172         * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
2173         * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
2174         * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
2175         * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
2176
2177 2006-07-31 Borut Razem <borut.razem AT siol.net>
2178
2179         * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
2180           sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
2181           sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
2182           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
2183           sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
2184           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
2185           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
2186           sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
2187           enable ucsim mingw compilation. Serial port is disabled,
2188           since it uses termios.h API, which is not available on native
2189           WIN32
2190
2191 2006-07-31 Borut Razem <borut.razem AT siol.net>
2192
2193         * Small Device C Compiler 2.6.0 released
2194         * support/scripts/sdcc.nsi: added FULL_DOC option
2195         * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
2196
2197 2006-07-28 Borut Razem <borut.razem AT siol.net>
2198
2199         * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
2200         * doc/INSTALL.txt: updated
2201
2202 2006-07-27 Borut Razem <borut.razem AT siol.net>
2203
2204         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
2205           device/lib/pic/libdev/Makefile.in: fixed bug
2206           [ 1438354 ] pic libsdcc: distclean doesn't work
2207         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
2208           device/lib/pic16/libio/Makefile.in: fixed bug
2209           [ 1438344 ] pic16 lib: clean doesn't work properly
2210         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
2211
2212 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
2213
2214         * device/lib/pic/libsdcc/fsdiv.c,
2215         * device/lib/pic/libsdcc/fsmul.c,
2216         * device/lib/pic16/libsdcc/float/fsdiv.c,
2217         * device/lib/pic16/libsdcc/float/fsmul.c,
2218         * device/lib/_fsdiv.c,
2219         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
2220         * support/regression/tests/bug1520966.c: added
2221         * doc/knownbugs.html: removed [ 1520966 ] from the list
2222
2223 2006-07-25 Borut Razem <borut.razem AT siol.net>
2224
2225         * configure.in, configure, sdccconf_in.h: fixed bug
2226           [ 1519095 ] regression test onebyte.c fails on ppc64 host
2227         * doc/knownbugs.html: removed [ 1519095 ] from the list
2228
2229 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
2230
2231         * doc/knownbugs.html: added, contains list of known bugs at release
2232         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
2233
2234 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
2235
2236         * device/include/mcs51/compiler.h: added SFRX for xdata based special
2237           function registers and corrected defaults with additional warning
2238         * device/lib/malloc.c: cosmetic changes
2239         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
2240         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
2241           (fillGaps): and used it
2242
2243 2006-07-20 Raphael Neider <rneider AT web.de>
2244
2245         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
2246           output unless SDCCPICDEBUG is set
2247         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
2248           output if SILENT is set
2249
2250 2006-07-11 Borut Razem <borut.razem AT siol.net>
2251
2252         * doc/README.txt: updated
2253
2254 2006-07-10 Borut Razem <borut.razem AT siol.net>
2255
2256         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
2257           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
2258           in WIN32 installation
2259         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
2260           release candidate 1
2261
2262 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
2263
2264         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
2265         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
2266
2267 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
2268
2269         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
2270
2271 2006-07-06 Borut Razem <borut.razem AT siol.net>
2272
2273         * support/regression/tests/bitfields.c:
2274           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
2275         * support/regression/tests/constantRange.c:
2276           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
2277
2278 2006-07-04 Borut Razem <borut.razem AT siol.net>
2279
2280         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
2281           src/port.mk,
2282           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
2283           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
2284           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
2285           reverted changes from 2006-07-03
2286         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
2287         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
2288           added CPPFLAGS, used by the host port
2289
2290 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
2291
2292         * support/regression/valdiag/tests/switch.c,
2293         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
2294         * support/regression/tests/libmullong.c: fixed for host
2295         * support/regression/ports/host/spec.mk: disable all warnings for host,
2296         SDCC runs with --less-pedantic too
2297
2298 2006-07-03 Borut Razem <borut.razem AT siol.net>
2299
2300         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
2301           defined CPPFLAGS
2302         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
2303         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
2304           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
2305           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
2306           include ../port.mk
2307         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
2308           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
2309           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
2310           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
2311
2312 2006-07-02 Raphael Neider <rneider AT web.de>
2313
2314         * src/pic16/devices.inc,
2315         * device/include/pic16/pic18fregs.h,
2316         * device/include/pic16/pic18f4550.h,
2317         * device/lib/pic16/pics.all,
2318         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
2319
2320 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
2321
2322         * as/hc08/lkaomf51.c (OutputName),
2323         * as/mcs51/lkaomf51.c (OutputName),
2324         * as/z80/asmain.c (asmbl),
2325         * src/ds390/main.c (asmLineNodeFromLineNode),
2326         * src/hc08/ralloc.c (hc08_assignRegisters),
2327         * src/mcs51/main.c (asmLineNodeFromLineNode),
2328         * src/xa51/ralloc.c (checkRegMask),
2329         * src/xa51/gen.c (emitcode),
2330         * src/z80/gen.c (_emit2),
2331         * src/SDCCast.c (searchLitOp),
2332         * src/SDCCglobl.h,
2333         * support/packihx/packihx.c,
2334         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
2335         * src/ds390/gen.c (aopPutUsesAcc),
2336         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
2337         * support/regression/tests/libmullong.c (mullong_wrapper),
2338         * src/SDCCsymt.c (powof2),
2339         * src/SDCCast.c,
2340         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
2341         * src/SDCCsymt.h: added TYPE_TARGET_*
2342         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
2343         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
2344         SDCCast because 1) header problems 2) this is the right place
2345         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
2346         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
2347         prototype
2348
2349 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
2350
2351         * src/SDCCicode.h: removed buggy semicolon in unused macro
2352         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
2353         search for previous definiton of auto symbols too,
2354         (findPrevUse): fixed logic of emitWarnings
2355
2356 2006-06-26 Raphael Neider <rneider AT web.de>
2357
2358         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
2359           PCLATH and PCLATU on interrupts, potentially fixes #1505141
2360
2361 2006-06-25 Raphael Neider <rneider AT web.de>
2362
2363         * device/lib/pic/libm: NEW, added math library functions
2364         * device/lib/pic/libsdcc: NEW; added float support functions
2365         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
2366         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
2367           NEW, added math related headers
2368         * device/include/asm/pic/features.h: NEW
2369         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
2370           (popGet): allow larger offsets for AOP_PCODE,
2371           (genDataPointerSet): handle literals explicitly, more debug output,
2372           (genAssign): fixed for float using aopLiteral ;-)
2373         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
2374           GOTO initialisation routine
2375         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
2376           flag on registers, fixes #1469043 (local variables do not work)
2377         * src/pic/main.c (_pic14_do_link),
2378         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
2379           available
2380
2381 2006-06-25 Borut Razem <borut.razem AT siol.net>
2382
2383         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
2384           characters printed (not including the trailing '\0' used to end
2385           output to strings). Problem detected in regression test bug-927659.c.
2386           NOTE: printf() family functions should return int instead
2387           unsigned int!
2388         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
2389           specifier are printed as themselves
2390         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
2391           support flags, width and precision specifiers
2392
2393 2006-06-24 Borut Razem <borut.razem AT siol.net>
2394
2395         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
2396           to the list of sdcc tagrets not supporting bit type
2397         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
2398           testfor pic16 due to bug:
2399           [ 1511794 ] pic16: regression test bug-895992.c fails
2400
2401 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
2402
2403         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
2404         * src/SDCCglue.c (initPointer), fixed bug 1496419
2405         * support/regression/tests/bug1496419.c: new, added
2406
2407 2006-06-22 Borut Razem <borut.razem AT siol.net>
2408
2409         * support/regression/ports/pic16/support.c: use gpsim usart module from
2410           libgpsim_modules library
2411
2412 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2413
2414         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
2415         IP0H to IPH0.
2416
2417 2006-06-19 Raphael Neider <rneider AT web.de>
2418
2419         * src/pic/glue.h,src/pic16/glue.h: added prototypes
2420         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
2421           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
2422           (pic14printExterns,pic14printPublics,pic16printPublics,
2423           pic16_printExterns): use new functions to emit symbols
2424           (picglue,pic16glue): emit publics before emitting externs
2425         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
2426           locally defined functions to avoid bug #1443651
2427         * support/regression/tests/bug-716242.c: removed pic16 workaround
2428         * support/regression/ports/pic16/spec.mk: ignore errors during build
2429
2430 2006-06-19 Raphael Neider <rneider AT web.de>
2431
2432         * src/pic/glue.h: added pic14aopLiteral prototype
2433         * src/pic/glue.c (pic14aopLiteral): return unsigned int
2434         * src/pic/gen.c: removed stdint.h dependency
2435           (aopGet): use Safe_strdup()
2436           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
2437           (genDataPointerSet): use pic14aopLiteral()
2438         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
2439           for pic16; thanks to Bernhard and Maarten
2440
2441 2006-06-18 Borut Razem <borut.razem AT siol.net>
2442
2443         * support/regression/tests/structflexarray.c: flexible array members
2444           not supported by gcc < 3
2445         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
2446           GUI tool by default
2447         * src/pic/gen.c: don't include [p]strdin.h on solaris
2448         * support/Util/pstdint.h: addad svn attributes
2449         * support/regression/tests/constantRange.c,
2450           support/regression/tests/rotate.c: include inttypes.h instead
2451           stdint.h on solaris, addad svn attributes
2452
2453 2006-06-18 Raphael Neider <rneider AT web.de>
2454
2455         * src/SDCCsymt.c (initCSupport): change return type of divschar to
2456           int for PIC16
2457         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
2458           (pic16_genMinusBits): simplified sign-extension
2459           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
2460             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
2461             adjusted to correctly handle mixed-signed operands, disabled
2462             now unused multiplciation routines
2463         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
2464           (assignResultValue): added argument denoting the size of the result
2465             as returned by the function (fixes upcasts in assigning from
2466             function calls: char foo(); int i = foo();)
2467           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
2468             function result to assignResultValue
2469           (genMult): disabled inlined multiplication code
2470           (genDiv): augmented to also handle the modulus operator, fixed to
2471             handle mixed-signed operands correctly
2472           (genMod): simply call genDiv, disabled unused code
2473           (genAssign): fixed missing (sign-)extension on result
2474         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
2475             valid char operands, allow signed operands for native code, added
2476             division and modulo operator handling
2477         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
2478
2479         As a consequence, onebyte.c (if split into two files) and muldiv.c
2480         pass regression tests.
2481
2482 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2483
2484         * doc/Makefile.in: two runs of makeindex seem needed to get
2485         correct page references in the index of sdccman.pdf
2486         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
2487
2488 2006-06-17 Borut Razem <borut.razem AT siol.net>
2489
2490         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
2491
2492 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2493
2494         * doc/sdccman.lyx: updated, added (porting source code, debugging),
2495         mentioned ec2drv and paulmon
2496
2497 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
2498
2499         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
2500           consecutive abs areas
2501           (find_empty_space, allocate_space): added map to handle codemap or
2502            xdatamap,
2503           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
2504            absolute idata and xdata
2505         * as/mcs51/lkmem.c (summary2): updated legend
2506
2507 2006-06-16 Raphael Neider <rneider AT web.de>
2508
2509         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
2510
2511 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
2512
2513         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
2514           1208515
2515         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
2516
2517 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
2518
2519         * src/port.h (struct PORT): added field gp_tags, to hold the tag
2520         value of generic pointers,
2521         * src/avr/main.c,
2522           src/ds390/main.c,
2523           src/hc08/main.c,
2524           src/izt/i186.c,
2525           src/izt/tlcs900h.c,
2526           src/mcs51/main.c,
2527           src/pic/main.c,
2528           src/pic16/main.c,
2529           src/xa51/main.c,
2530           src/z80/main.c: PORT structure, added elements for gp_tags field,
2531         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
2532         fields in the PORT structure of each port,
2533         * src/SDCCast.c (decorateType): allow processing of generic pointers
2534         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
2535         S_FIXED symbols
2536
2537 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
2538
2539         * link/z80/lkgb.c,
2540         * link/z80/lkgg.c,
2541         * src/pic16/gen.c,
2542         * src/pic16/main.c,
2543         * src/pic16/pcode.c,
2544         * src/pic/main.c,
2545         * src/pic/pcoderegs.c,
2546         * src/SDCCicode.c,
2547         * src/SDCCmain.c,
2548         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
2549           bug 1504689 on minGW
2550
2551 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2552
2553         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
2554
2555 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
2556
2557         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
2558
2559 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
2560
2561         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
2562           for optimization
2563
2564 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
2565
2566         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
2567         to a char variable. Fixed bug #1504211
2568         * device/include/pic16/adc.h,
2569         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
2570         and fixed bug #1364390
2571
2572 2006-06-10 Borut Razem <borut.razem AT siol.net>
2573
2574         * CVSROOT: removed the CVS left-over
2575
2576 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
2577
2578         * as/hc08/asmain.c (asexit),
2579         * as/hc08/lkmain.c (lkexit),
2580         * as/mcs51/asmain.c (asexit),
2581         * as/mcs51/lkmain.c (lkexit),
2582         * src/SDCCglue.c (DEFSETFUNC),
2583         * src/SDCCmain.c (linkEdit, assemble),
2584         * support/librarian/sdcclib.c (AddRel),
2585           replaced unlink() by standard C remove()
2586         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
2587         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
2588           gatherImplicitVariables): new, added to fix bug 608752,
2589           (createFunction): added gatherImplicitVariables()
2590         * src/SDCCast.h: added createRMW prototype
2591         * src/SDCCsymt.h (struct symbol): added infertype
2592         * support/regression/tests/bug608752.c: new, added
2593
2594 2006-06-10 Raphael Neider <rneider AT web.de>
2595
2596         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
2597           multibyte dummy reads (fixes #1503234)
2598
2599 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
2600
2601         * device/include/mcs51/compiler.h: new, added header file to enable
2602           creating common sfr definition header files for different compilers
2603
2604 2006-06-05 Raphael Neider <rneider AT web.de>
2605
2606         * src/pic16/{pcode.h,genarith.c}:
2607           introduced pCodeOp combining any two pCodeOps (previously only
2608           two register operands could be combined), removed pcop2 from
2609           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
2610         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
2611         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
2612           rewritten to use new PO_TWO_OPS
2613         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
2614         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
2615           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
2616           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
2617           (pic16_get_op): embraced return arg to allow #define return(x),
2618             added new case for combined opcodes
2619           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
2620           (pic16_pCode2str,pic16_getRegFrompCodeOp,
2621            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
2622
2623 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
2624
2625         * src/SDCCval.c (checkConstantRange): added
2626         * src/SDCCval.h: added checkConstantRange
2627         * support/Util/SDCCerr.c,
2628         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
2629         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
2630         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
2631         * src/SDCCast.c (decorateType): added checkConstantRange,
2632         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
2633         can be emitted with the correct always true/false warning,
2634         added optimization for double '!';
2635         result of decorateType() must be assigned back to the tree, because
2636         decorateType() can change the tree
2637         * src/SDCCicode.c (geniCodeLogic),
2638         (geniCodeAssign): replaced new checkConstantRange, added warnings,
2639         (checkConstantRange): removed, it was only a fragment which never
2640         emitted a warning
2641         * src/SDCCsymt.c (computeType): fixed promotion for
2642         "-1 < (unsigned bit) b"
2643         * src/pic/ralloc.c (packRegsForAssign),
2644         * src/pic16/ralloc.c (packRegsForAssign),
2645         * src/hc08/ralloc.c (packRegsForAssign),
2646         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
2647         from mcs51
2648         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
2649         * support/regression/tests/constantRange.c: added
2650         * support/valdiag/tests/constantRange.c: added
2651         * support/valdiag/valdiag.py: added -DPORT_HOST=1
2652
2653 2006-06-02 Borut Razem <borut.razem AT siol.net>
2654
2655         * support/regression/ports/pic16/support.c: increase stack size
2656           to 255 bytes
2657         * support/regression/Makefile.in: sort tests by name so that the
2658           resutlts can be compared on different machines / platforms
2659
2660 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
2661
2662         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
2663         * src/ds390/gen.c (emitLabel): new, added,
2664           (genDjnz): fixed stack overflow bug,
2665           (throughout): cosmetic changes to sync with mcs51/gen.c,
2666           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
2667         * src/mcs51/gen.c (genEndFunction): small optimization,
2668           (throughout): cosmetic changes to sync with ds390/gen.c
2669
2670 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
2671
2672         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
2673           (_print_format): fixed printing pointers
2674         * src/mcs51/gen.c (emitLabel, movb): new, added,
2675           (genAssign): small optimization,
2676           (genDjnz): fixed stack overflow bug,
2677           (throughout): replaced sprintf with SNPRINTF,
2678           replaced mcs51_regWithIdx with REG_WITH_INDEX,
2679           replaced emitcode("mov", "b,...") with MOVB(...),
2680           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
2681           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
2682         * src/mcs51/peeph.def: added rules 140 and 264
2683         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
2684           so they may get optimized into registers
2685
2686 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
2687
2688         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
2689           immediately when encountered,
2690           (printUsage): always use stderr even on windows
2691
2692 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
2693
2694         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
2695         (processParms): fixed bug #1247551
2696         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
2697         parseCmdLine, main): print '--version' to stdout,
2698         print 'help' to stdout if --help is given,
2699         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
2700         arguments are given; fixed --help
2701
2702 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
2703
2704         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
2705         * support/regression/tests/bug-1493710.c: added
2706
2707 2006-05-27 Borut Razem <borut.razem AT siol.net>
2708
2709         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
2710           static instead auto
2711         * support/regression/ports/pic16/support.c: increase stack size
2712           from default 64 bytes to 128 bytes
2713         * support/regression/tests/staticinit.c,
2714           support/regression/tests/float.c: regression tests fully enabled
2715           for pic16 port by putting the initialized data arrays into the code
2716           section
2717         * support/regression/ports/pic16/spec.mk: don't link default libraries.
2718           This was changed by mistake in the previous version.
2719
2720 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
2721
2722         * src/pic16/gen.c (genFunction, genEndFunction): some
2723         beautifications, fixed bug with falsely restoring FSR2 in large
2724         stack model, thanks to Beau E. Cox for reporting the bug
2725
2726 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
2727
2728         * debugger/mcs51/break.c,
2729         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
2730           use %p to print pointers, made address variables unsigned
2731         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
2732         * debugger/mcs51/symtab.c (parseSymbol): must return something
2733         * src/mcs51/gen.c (aopForSym): small optimization,
2734            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
2735           (freeAsmop): added missing break,
2736           (aopPut): removed parameter bvolatile, determine it inside the function,
2737           (saveRegisters, unsaveRegisters): small optimization,
2738           (genIpush): removed pointless check,
2739           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
2740           replaced sprintf with SNPRINTF,
2741           replaced strcpy with strncpyz,
2742           updated aopPut calls,
2743           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
2744         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
2745
2746 2006-05-24 Borut Razem <borut.razem AT siol.net>
2747
2748         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
2749           modification of test for the pic16 port, put the array to the code
2750           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
2751
2752 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2753
2754         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
2755         * support/Util/pstdint.h: added
2756
2757 2006-05-22 Borut Razem <borut.razem AT siol.net>
2758
2759         * src/regression/Makefile: removed bool2.c test, added -q linker option
2760         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
2761           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
2762           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
2763           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
2764           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
2765           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
2766           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
2767           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
2768           define SUPPORT_BIT_TYPES 0, removed unused bit variables
2769
2770 2006-05-22 Raphael Neider <rneider AT web.de>
2771
2772         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
2773           bug #1492360 (problematic due to generic pointers, see code)
2774
2775 2006-05-22 Borut Razem <borut.razem AT siol.net>
2776
2777         * support/regression/ports/pic16/specs.mk: removed stack size linker
2778           directive
2779         * support/regression/tests/array.c,
2780           support/regression/tests/bitopcse.c,
2781           support/regression/tests/bug-908454.c,
2782           support/regression/tests/malloc.c: modified for pic16 regression test
2783         * support/regression/tests/bitfields.c:
2784           pic16 - excluded bitfileds of size > 8
2785         * support/regression/tests/bp.c: pic16 - reduced data size
2786         * support/regression/tests/bug-221100.c: pic16 - reduced data size
2787         * support/regression/tests/bug-460010.c:
2788           pic16 - used the absolute address the fits in memory
2789         * support/regression/tests/bug-716242.c:
2790           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
2791         * support/regression/tests/float.c:
2792           pic16 - excluded - data size too big
2793         * support/regression/tests/onebyte.c:
2794           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
2795         * support/regression/tests/shifts.c:
2796           pic16 - function names probably have to differ in first X characters
2797           (gpasm limitation?)
2798         * support/regression/tests/staticinit.c:
2799           pic16 - excluded some tests due error: no target memory available for
2800           section ".idata"
2801
2802 2006-05-22 Borut Razem <borut.razem AT siol.net>
2803
2804         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
2805           second try. Thanks Stas Sergeev once more.
2806
2807 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
2808
2809         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
2810           (genLeftShift, genRightShift): fixed bug 1491627
2811         * src/hc08/peeph.def (rules 7, 8.x): added
2812         * support/regression/tests/shifts.c (ShiftLeftByParam,
2813           ShiftRightByParam, testShiftByParam): added to test variable shifting
2814
2815 2006-05-20 Raphael Neider <rneider AT web.de>
2816
2817         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
2818         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
2819           (allocReg): add only new registers to dynAllocRegs,
2820           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
2821             #1489055, #1445850, and probably #1483693
2822
2823 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
2824
2825         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
2826         bug in for-loop that didn't emit the last of CONFIG and ID registers
2827
2828 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
2829
2830         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
2831           with offset
2832         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
2833           1489016, 1434401 and 1490124
2834         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
2835           1489016, 1434401 and 1490124
2836
2837 2006-05-17 Borut Razem <borut.razem AT siol.net>
2838
2839         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
2840           thanks Stas Sergeev
2841
2842 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
2843
2844         * device/include/mcs51/P89c51RD2.h,
2845         * device/include/mcs51/P89LPC901.h,
2846         * device/include/mcs51/P89LPC922.h,
2847         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
2848
2849 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
2850
2851         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
2852         to fix missing stack pragma in compiled binary object file,
2853
2854 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
2855
2856         * support/packihx/configure.in,
2857         * support/packihx/configure: removed warning, autoconf >= 2.5x can
2858         determine sizeof basic types even while cross compiling
2859
2860 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
2861
2862         * src/avr/gen.c (aopop),
2863         * src/ds390/gen.c (aopOp),
2864         * src/hc08/gen.c (aopOp),
2865         * src/mcs51/gen.c (aopop),
2866         * src/pic16/gen.c (pic16_aopOp),
2867         * src/pic/gen.c (aopOp),
2868         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
2869         if size of operand is smaller than spill location
2870
2871 2006-05-12 Borut Razem <borut.razem AT siol.net>
2872
2873         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
2874           have to have CR/LF line endings even if they are checked out on *nix
2875           or on WIN32 in cygwin binmode
2876
2877 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
2878
2879         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
2880         * device/include/ds80c390.h: added sfr16 definitions
2881         * src/ds390/gen.c,
2882         * src/ds390/gen.h,
2883         * src/ds390/main.c,
2884         * src/ds390/ralloc.c,
2885         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
2886           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
2887           bit returning functions
2888         * support/regression/tests/sfr16.c: enabled test on ds390
2889
2890 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2891
2892         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
2893         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
2894
2895 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
2896
2897         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
2898         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
2899           (cl_address_space constructor): removed expensive initialization,
2900           (cl_address_space::get_cell): extended for late initialization,
2901           (cl_address_space::*): use late initialization,
2902           (cl_address_decoder::activate): removed expensive initialization,
2903           This reduced regression test running time by 25%
2904
2905 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
2906
2907         * packihx/,
2908         * configure.in,
2909         * configure,
2910         * sdcc.dsw,
2911         * Makefile.bcc,
2912         * Makefile.in,
2913         * support/packihx/Makefile.in,
2914         * support/packihx/clean.mk,
2915         * support/packihx/Makefile.bcc,
2916         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
2917
2918 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2919
2920         * src/SDCCval.c (valNot): fix for regression test failure
2921           of not.c on big endian hosts
2922
2923 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
2924
2925         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
2926
2927 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2928
2929         * device/lib/mcs51/Makefile.in: changed string comparison operator
2930           to = for POSIX compliance; == is bash extension
2931
2932 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
2933
2934         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
2935           kosmonaut_pirx
2936
2937 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
2938
2939         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
2940         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
2941         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
2942         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
2943         bug report #1478657,
2944
2945 2006-05-05 Borut Razem <borut.razem AT siol.net>
2946
2947         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
2948           making the html
2949
2950 2006-05-02 Borut Razem <borut.razem AT siol.net>
2951
2952         * doc/Makefile.in: removed *.ind dependency since there is no rule to
2953           create *.ind, which made make to fail if invoked with -j 2
2954
2955 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
2956
2957         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
2958           Hubert Sack for patch 1479782
2959
2960 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
2961
2962         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
2963
2964 2006-05-01 Raphael Neider <rneider AT web.de>
2965
2966         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
2967           (create_pic): store only prefix-free device name,
2968           (init_pic): check for device names with "16" prefix,
2969           (list_valid_pics),
2970         * src/pic/device.h (struct PIC_device),
2971         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
2972             stored device name,
2973         * device/include/pic/pic12f{635,675,629,683}.h,
2974         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
2975         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
2976         * device/include/pic/pic16f505.h,
2977         * device/lib/pic/libdev/pic16f505.c: removed
2978         * device/include/pic/pic14devices.txt: added support for pic12f
2979             devices, removed unsupported non 16-bit devices
2980             [above changes provided by patch from Zik Saleeba]
2981         * src/pic/*, src/pic16/*, device/include/pic16/*,
2982           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
2983
2984 2006-05-01 Borut Razem <borut.razem AT siol.net>
2985
2986         * configure.in, configure, doc/Makefile.in:
2987           sync with nightly build makefile - latex, dvipdf and dvips
2988           not needed any more
2989
2990 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
2991
2992         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
2993         in the library source
2994
2995 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
2996
2997         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
2998
2999 2006-04-28 Raphael Neider <rneider AT web.de>
3000
3001         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
3002         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
3003           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
3004         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
3005
3006 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
3007
3008         * device/lib/pic/libdev/Makefile.in,
3009         * device/lib/hc08/Makefile.in,
3010         * device/lib/gbz80/Makefile.in,
3011         * device/lib/z80/Makefile.in,
3012         * device/lib/ds390/Makefile.in,
3013         * device/lib/ds400/Makefile.in: added srcdir to include search path,
3014         thanks to Borut for the bug report
3015         * configure.in,
3016         * configure: always create doc/Makefile independent from --enable-doc
3017         * Makefile.in: always install from directory doc independent from
3018         --enable-doc
3019         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
3020         removed
3021         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
3022         * doc/Makefile.in: install *.txt if present
3023         * device/include/Makefile.in (install): added installation of pic/*.inc
3024         and pic/*.txt files again, they were erroneously removed
3025
3026 2006-04-28 Raphael Neider <rneider AT web.de>
3027
3028         * src/pic/{gen.c,main.h,pcode.c},
3029         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
3030             concerning signedness with casts
3031
3032 2006-04-28 Raphael Neider <rneider AT web.de>
3033
3034         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
3035             definition of an interrupt handler,
3036         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
3037             interrupt handler stuff from picglue() to separate routine,
3038           (picglue): enabled definition of intr handlers in files w/o main()
3039
3040 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
3041
3042         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
3043           compilation with MSVC 2005 Express Edition (VC8)
3044
3045 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
3046
3047         * device/lib/Makefile: fixed build of gbz80 lib
3048
3049 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
3050
3051         * support/regression/tests/bug-460010.c,
3052         * support/regression/tests/bug-524691.c,
3053         * support/regression/tests/bug-716242.c: removed conditional defines
3054           that are already in testfwk.h
3055
3056 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
3057
3058         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
3059           (AccAXRsh1): added, shift right by 1,
3060           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
3061            AccAXLrl1
3062         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
3063
3064 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
3065
3066         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
3067         remove cast to same type
3068         * src/SDCCast.c (decorateType): fix for RFE 1475742,
3069         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
3070         * as/z80/Makefile,
3071         * link/z80/Makefile: removed, they have moved to
3072         Makefile.in files
3073         * configure,
3074         * configure.in: replaced duplicate message about ucsim by missing sdcpp
3075         * install-sh: fix bug #1204398 by setting umask 0022
3076         * device/lib/Makefile: separate build of z80 and gbz80 lib
3077
3078 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
3079
3080         Enabled VPATH feature: changed nearly all Makefiles (149 files).
3081         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
3082
3083         One basic decision: e.g. src/clean.mk includes further files. In order
3084         to make this work there are two solutions:
3085         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
3086           run configure on them. This way they can use
3087           'include $(srcdir)/port-clean.mk'
3088         - always include clean.mk by the Makefile at the same level. To avoid
3089           that `make clean` tries to include and build Makefile.dep the
3090           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
3091           implemented, because now even `make uninstall` doesn't create
3092           Makefile.in. clean.mk could be eliminated by pasting it in
3093           Makefile.in.
3094
3095         * debugger/mcs51/Makefile.in: build own objects from library sources
3096         (SLIB, SDCC) in current directory
3097
3098         * configure, configure.in: renamed --disable-device-lib-build in
3099         --disable-device-lib; added --enable-doc, the required tools are
3100         searched by configure; added result message; the toolchain for the
3101         belonging ports are now only built, if the port is enabled.
3102
3103         * support/regression/*: all output is written in directory gen, because
3104         the fwk and ports directories don't livet in the build tree using vpath
3105
3106         * doc/sdccman.lyx: renamed --disable-device-lib-build to
3107         --disable-device-lib, added --enable-doc, added section VPATH
3108
3109         * sim/ucsim/configure.in,
3110         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
3111         z80 are enabled by default
3112
3113 2006-04-24 Raphael Neider <rneider AT web.de>
3114
3115         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
3116             to config word, "pic14_"-prefixed some extern functions
3117           (pic14_emitConfigWord): emit __config directive(s) if assignment to
3118             config word has been found
3119         * src/pic/device.h: added prototypes
3120         * src/pic/pcode.c: added "pic14_"-prefix where needed
3121         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
3122             fixup
3123         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
3124             words,
3125           (pic14emitRegularMap): ignore config words,
3126           (pic14createInterruptVect): moved generating __config directives away
3127           (picglue): have __config directives emitted
3128
3129 2006-04-24 Borut Razem <borut.razem AT siol.net>
3130
3131         * doc/Makefile: sync with nightly build makefile
3132
3133 2006-04-24 Raphael Neider <rneider AT web.de>
3134
3135         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
3136             registers that have not been assigned proper liveranges,
3137             fixes #1469504 and #1474602,
3138           (pCodeRegOptimizeRegUsage): fixed typo in comment
3139
3140 2006-04-24 Borut Razem <borut.razem AT siol.net>
3141
3142         * device/examples/main8051.c: deleted - it was removed from CVS
3143           24.mar.2000 and after that modified 18.feb.2001, so it reappered
3144           after the transition to Subversion
3145         * src/SDCCalloc.h: deleted - it was removed  from CVS
3146           3.feb.2001 and after that modified 18.feb.2001, so it reappered
3147           after the transition to Subversion
3148         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
3149           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
3150           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
3151           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
3152
3153 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
3154
3155         * as/asx8051.dsp: added mcs51/strcmpi.h
3156         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
3157         * as/hc08/aslink.h: updated lnksect prototype
3158         * as/hc08/asm.h,
3159         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
3160         * as/hc08/asmain.c,
3161         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
3162           (newdot): handle A_ABS
3163         * as/hc08/asout.c,
3164         * as/mcs51/asout.c (outarea): output address
3165         * as/hc08/lkaomf51.c,
3166         * as/mcs51/lkaomf51.c: disabled unused array UsageType
3167         * as/hc08/m08pst.c,
3168         * as/mcs51/i51pst.c,
3169         * as/z80/z80pst.c: "ABS" is not A_OVR
3170         * as/hc08/lkarea.c (newarea): read a_addr,
3171           (lnkarea): added codemap array, sort absolute areas to the front,
3172            combine all GSINITx/GSFINAL,
3173           (find_empty_space, allocate_space): new functions,
3174           (lnksect): return next address, handle absolute sections
3175         * as/mcs51/lkarea.c (newarea): read a_addr,
3176           lnksect2 prototype changed,
3177           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
3178           (find_empty_space, allocate_space): new, factored out of lnksect2,
3179           (lnksect2): return next address, handle absolute sections
3180         * as/hc08/lkhead.c,
3181         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
3182         * as/hc08/lklibr.c (addfile, fndsym),
3183         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
3184           index out of range and detect both '\' and '/'
3185         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
3186         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
3187           regression tests (ds390 cannot return bool yet)
3188         * doc/sdccman.lyx: changed version number, document changed --no-peep,
3189           document critical interrupts on z80, document changed SDCC define
3190         * src/asm.c (_asxxxx_mapping): fixed .org directive,
3191           (_a390_mapping): added .org directive
3192         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
3193           (genMultOneByte): fixed warnings
3194         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
3195           ones
3196         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
3197         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
3198           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
3199         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
3200         * src/pic16/main.c: removed newReg prototype
3201         * src/pic16/pcode.c,
3202         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
3203           warnings
3204         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
3205           ones
3206         * src/pic16/ralloc.c
3207         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
3208           to fix warnings
3209         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
3210           from short to PIC_OPTYPE
3211         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
3212         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
3213           optype from short to PIC_OPTYPE
3214         * src/port.h: made int_size unsigned to fix warnings
3215         * src/SDCC.y: fixed warning on MSVC
3216         * src/SDCCicode.c (getArraySizePtr): return unsigned int
3217         * src/SDCCopt.c (convertToFcall): fixed warnings
3218         * src/SDCCsymt.h: removed double prototype for genSymName
3219         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
3220           offset int to fix warnings
3221
3222 2006-04-22 Borut Razem <borut.razem AT siol.net>
3223
3224         * doc/sdccman.lyx, */Makefile, */Makefile.in:
3225           references to CVS replaced with Subversion
3226
3227 2006-04-21 Borut Razem <borut.razem AT siol.net>
3228
3229         * doc/sdccman.lyx, */Makefile, */Makefile.in:
3230           references to CVS replaced with Subversion
3231
3232 2006-04-19 Borut Razem <borut.razem AT siol.net>
3233
3234         * src/version.awk: adapted for svn
3235         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
3236           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
3237           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
3238           /binutils-avr/etc/*.vi, *.jin: removed all properties
3239           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
3240
3241 2006-04-19 Borut Razem <borut.razem AT siol.net>
3242
3243         * CVS to Subversion migration completed
3244
3245 2006-04-18 Borut Razem <borut.razem AT siol.net>
3246
3247         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
3248           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
3249
3250 2006-04-17 Borut Razem <borut.razem AT siol.net>
3251
3252         * device/include/Makefile.in: added pic/*.inc to the installation
3253
3254 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
3255
3256         * support/regression/collate-results.py: fixed output in case of
3257         a valdiag error
3258         * support/regression/generate-cases.py: fixed splitting of pathnames
3259         with dots
3260         * as/hc08/lklibr.c (addfile),
3261         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
3262
3263 2006-04-11 Raphael Neider <rneider AT web.de>
3264
3265         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
3266         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
3267         * src/pic16/pcode.c (assignValnums): fixed #1460578
3268
3269 2006-04-11 Raphael Neider <rneider AT web.de>
3270
3271         * device/lib/pic/libdev/*.c,
3272         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
3273           fixes #1468739, enables compilation in --std-c99 mode
3274         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
3275
3276 2006-04-11 Raphael Neider <rneider AT web.de>
3277
3278         * src/pic/device.c (find_device): removed debug output
3279           (list_valid_pics): enabled verbose listing of supported devices
3280         * device/include/stdbool.h: define bool as char for pic14/16 as well
3281
3282 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3283
3284         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
3285
3286 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
3287
3288         * .version: bumped version to 2.5.6
3289         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
3290
3291 2006-04-06 Raphael Neider <rneider AT web.de>
3292
3293         * .version: bumped version to 2.5.6 (pic14 ABI changed)
3294         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
3295         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
3296           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
3297             pic14_constructAbsMap
3298           (pic14printPublics): declare absolute global symbols as global
3299           (pic14createInterruptVect),
3300         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
3301           (newReg): assume new registers unused, use correct name in
3302             hashtable (reg->name instead of name), more debugLog output
3303         * src/pic/device.h (PIC_device): added fields for verbose output
3304         * src/pic/device.c: moved device definition to pic14devices.txt,
3305             added routines for runtime parsing of pic14devices.txt,
3306             added support for second config word
3307         * src/pic/main.c (_process_pragma): removed #pragma maxram,
3308           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
3309           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
3310           (_pic14_parseOptions): moved pCodeInitRegisters here
3311           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
3312         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
3313           (pCodeInitRegisters): rewrapped comments, perpared new approach to
3314             handling the pseudo stack
3315         * device/lib/Makefile.in: ignore failures in objects-pic16,
3316         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
3317         * device/lib/pic/NEWS: document new dependency on picXXX.lib
3318         * device/lib/pic/Makefile.subdir,
3319         * device/lib/pic16/Makefile.subdir: improved clean rules
3320         * device/lib/pic/libdev/: NEW, pic14 device libraries
3321         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
3322         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
3323         * device/include/Makefile.in: create subdir and install pic14 headers
3324         * device/include/pic/p16f_common.inc: removed unused declarations
3325         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
3326             PICs from inc2h.pl v1.6,
3327             replaced BIT_AT macros with struct declarations
3328         * device/include/pic/pic14devices.txt: definition of supported devices,
3329             all above improvements contributed by Zik Saleeba, thanks
3330         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
3331         * support/scripts/sdcc.nsi: also install pic14 device libraries and
3332             headers
3333
3334 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
3335
3336         * device/include/mcs51/c8051f410.h: added interrupt numbers,
3337         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
3338           thanks to Charles Olds
3339
3340 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3341
3342         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
3343
3344 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
3345
3346         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
3347         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
3348         * support/regression/bug1464657.c: added, new test
3349
3350 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
3351
3352         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
3353           version number
3354
3355 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
3356
3357         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
3358           --no-peep and --peep-file <file> are used don't use default rules but
3359           do use the <file>
3360
3361 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
3362
3363         * src/mcs51/gen.c (genCall): fixed bug 1457608
3364
3365 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3366
3367         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
3368         changes seem to cause (trigger?) problems with the build system.
3369
3370 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
3371
3372         * src/SDCCpeeph.c (operandsLiteral): new, added,
3373           (callFuncByName): inserted operandsLiteral
3374         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
3375
3376 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3377
3378         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
3379         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
3380
3381 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
3382
3383         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
3384           implemented patch 1120823 Thanks to Willy De la Court (normal
3385           interrupts need an interrupt number now if they are made critical),
3386           and enabled nesting of critical functions though not for gbz80
3387           (genCritical, genEndCritical): added functions
3388           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
3389         * src/z80/mappings.i: added "ei" to all mappings
3390
3391 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3392
3393         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
3394         submitted by the Debian SDCC maintainer Aurelien Jarno:
3395         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
3396         archive with gcc 4.1 on mips and wrote the patch"
3397
3398 2006-03-16 Raphael Neider <rneider AT web.de>
3399
3400         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
3401           the left operand is shorter than the result (c* = lit-c* + int),
3402           fixes bug #1450796
3403         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
3404           OP_SYMBOL
3405
3406 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
3407
3408         * src/.version: increased version number to 2.5.5
3409         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
3410         linking is done manually in pic16 port's _linkEdit,
3411         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
3412         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
3413         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
3414         allocate asmop as AOP_ACC,
3415         (aopForRemat): added parameter 'bool result' in function declaration,
3416         (pic16_aopGet): return AOP_ACC when accessing WREG,
3417         (pic16_popGetTempReg): minor modification,
3418         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
3419         'pic16_allocWithIdx',
3420         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
3421         calling function in absolute addresses,
3422         (genAssign): take into account AOP_ACC asmop,
3423         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
3424         * src/pic16/pcoderegs.c: some debug functions and lines added,
3425         * src/pic16/ralloc.c (decodeRegType): added but commented out,
3426         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
3427         register too,
3428         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
3429         call to allocReg, not by manually allocating a new one,
3430         (pic16_assignRegisters): now before going through the register
3431         allocating functions mark all registers as free. This eliminates some
3432         side effects resulting from peephole parser done earlier in the backbone
3433
3434 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
3435
3436         * src/SDCCicode.c (geniCodeLogic),
3437         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
3438
3439 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
3440
3441         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
3442           (genSend): bugfix, do not allocate and free twice,
3443           (shiftRLong): handle partially overlapping aops
3444         * support/regression/tests/bitopcse.c: fixed warning redefined idata
3445
3446 2006-03-08 Borut Razem <borut.razem AT siol.net>
3447
3448         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
3449           for pic16
3450
3451 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
3452
3453         * support/regression/tests/bug1409955.c: new, added
3454         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
3455         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
3456           (aopForSym, aopOp): increment asmop.allocated if reused,
3457           (freeAsmop): decrement asmop.allocated and check for zero instead of
3458           using asmop.freed,
3459           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
3460           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
3461            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
3462            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
3463            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
3464            genSignedRightShift, genRightShift, genDataPointerGet,
3465            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
3466            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
3467             in reverse order from allocation,
3468           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
3469             added swappedLR to keep track
3470         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
3471           pdata & code for GCC, z80, gbz80 & hc08
3472         * support/regression/tests/zeropad.c: moved defines to testfwk.h
3473
3474 2006-03-08 Raphael Neider <rneider AT web.de>
3475
3476         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
3477
3478 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
3479
3480         * device/include/mcs51/c8051f410.h: new SiLabs mcu
3481         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
3482         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
3483
3484 2006-03-06 Borut Razem <borut.razem AT siol.net>
3485
3486         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
3487           made the linker quiet
3488
3489 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
3490
3491         * src/pic16/gen.c (genPcall): fixed bug #1443644
3492         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
3493         which dumps before the function entry point a data byte which represents
3494         the number of the local variables used by the specified function, added
3495         'xinst' for initial support for Extended Instruction Support,
3496         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
3497         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
3498         port->fun_prefix anymore (may change later),
3499         (genFunction, genEndFunction): do not store/restore local registers for
3500         _main (this should take care the --main-return command line option in
3501         the future),
3502         (genOr): removed some legacy pic-port instructions,
3503         * src/pic16/genarith.c (genAddLit): re-enabled old code because
3504         performing operations with SFR's causes data to be written more than
3505         once to each SFR. Perhaps SFRs should be handled in special cases...
3506         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
3507         pcode.h
3508         * src/pic16/main.c (_process_pragma): stack bound checking did not take
3509         into account for stack starting position,
3510         (struct OPTIONS pic16_optionsTable): added command line argument
3511         --extended or -y for Extended Instruction Support,
3512         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
3513         (deassignLRs): *** perhaps the most important change, old 'for' code
3514         (commented out for reference), didn't account for some registers which
3515         were left marked 'not free' after a pointer operation. The change
3516         reduces register usage a lot in some cases
3517
3518 2006-03-04 Borut Razem <borut.razem AT siol.net>
3519
3520         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
3521           _clean
3522         * support/regression/tests/bug-524697.c: decreased array size for
3523           mcs51 to fit into the internal RAM
3524         * support/regression/Makefile.in: a little bit more verbose
3525
3526 2006-03-03 Borut Razem <borut.razem AT siol.net>
3527
3528         * support/regression/fwk/lib/testfwk.c,
3529           support/regression/fwk/include/testfwk.h: introduced function
3530           _prints(), nonrecursive _printn(), call _initEmu() from main()
3531         * support/regression/ports/gbz80/support.asm,
3532           support/regression/ports/ucz80/support.asm,
3533           support/regression/ports/z80/support.asm,
3534           support/regression/ports/ds390/support.c,
3535           support/regression/ports/hc08/support.c,
3536           support/regression/ports/host/support.c,
3537           support/regression/ports/mcs51/support.c,
3538           support/regression/ports/xa51/support.c: added empty _initEmu()
3539           function
3540         * support/regression/ports/pic16/gpsim.cmd,
3541           support/regression/ports/pic16/spec.mk,
3542           support/regression/ports/pic16/support.c,
3543           support/regression/Makefile.in: added pic16 regression test
3544
3545 2006-03-01 Raphael Neider <rneider AT web.de>
3546
3547         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
3548           genConstPointerGet): use safe way of generating MOVFF to cover
3549             literals as well as registers, fixes bug #1440527
3550         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
3551             dereference
3552           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
3553             more correctly, fixes bug #1232186
3554           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
3555         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
3556             gplink guess the correct processor in more cases, applied patch
3557             from Till Riedel attached to and fixing bug #1436552
3558
3559 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3560
3561         * support/regression/tests/array.c: added, contains check for #1434401
3562         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
3563
3564 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
3565
3566         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
3567         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
3568         * device/include/mcs51/c8051f326.h,
3569         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
3570         * device/include/mcs51/c8051f000.h,
3571         * device/include/mcs51/c8051f018.h,
3572         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
3573           PCON_IDLE,PCON_STOP and added sfr16 definitions
3574
3575 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
3576
3577         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
3578           genGetWord): fixed bug 1409955
3579
3580 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
3581
3582         * device/include/hc08/mc68hc908gp32.h,
3583         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
3584
3585 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
3586
3587         * src/SDCCast.c (constExprValue): return NULL if not a value
3588         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
3589         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
3590         * support/regression/tests/bitfields.c: enabled signed bitfield for all
3591
3592 2006-02-13 Borut Razem <borut.razem AT siol.net>
3593
3594         * src/regression/ptrarg.c: added, fails due to bug #1430967
3595         * src/regression/Makefile: ptrarg.c added, ...
3596
3597 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
3598
3599         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
3600         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
3601
3602 2006-02-11 Borut Razem <borut.razem AT siol.net>
3603
3604         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
3605           print "Processor: xxx" message to stdout only if --verbose
3606
3607 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
3608
3609         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
3610         * support/regression/tests/bug1426356.c: added
3611         * support/regression/tests/bitfields.c: removed 2 tests
3612
3613 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
3614
3615         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
3616         * device/include/mcs51/c8051f330.h,
3617         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
3618           PCON_IDLE,PCON_STOP and added sfr16 definitions
3619         * device/lib/_divsint.c,
3620         * device/lib/_divuint.c,
3621         * device/lib/_divulong.c,
3622         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
3623           register bank bug for small stackauto
3624
3625 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
3626
3627         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
3628
3629 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
3630
3631         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
3632         * all.dsp: corrected several bin paths
3633         * device/include/mcs51/c8051f120.h,
3634         * device/include/mcs51/c8051f300.h,
3635         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
3636           to PCON_IDLE,PCON_STOP
3637         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
3638         * device/lib/printf_large.c (output_float): fixed bug 1388703
3639         * support/regression/tests/bug1057979.c: added test for bug 1388703
3640
3641 2006-02-08 Raphael Neider <rneider AT web.de>
3642
3643         * src/pic/pcode.c (pciTRIS): fixed typo,
3644           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
3645           (LinkFlow): fixed handling of flows that end in a call,
3646           (ReuseReg): perform safety check earlier
3647         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
3648             to work with flows at the beginning of a pBlock,
3649             fixes #1426557 (Symbol not previously defined),
3650           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
3651             usage information
3652           (RemoveUnusedRegisters): update register usage info
3653         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
3654             created, reuse existing ones instead
3655         * src/pic/gen.c (genPcall): fixed #1424719
3656
3657 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
3658
3659         * link/z80/lkmain.c,
3660         * link/z80/lklex.c,
3661         * link/z80/lkdata.c,
3662         * link/z80/aslink.h: fixed build on current cygwin:
3663         replaced getline() by lk_getline()
3664
3665 2006-02-01 Borut Razem <borut.razem AT siol.net>
3666
3667         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
3668           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
3669           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
3670           src/regression/bool1.c, src/regression/bool2.c,
3671           src/regression/bool3.c, src/regression/call1.c,
3672           src/regression/compare.c, src/regression/compare10.c,
3673           src/regression/compare2.c, src/regression/compare3.c,
3674           src/regression/compare4.c, src/regression/compare5.c,
3675           src/regression/compare6.c, src/regression/compare7.c,
3676           src/regression/compare8.c, src/regression/compare9.c,
3677           src/regression/configword.c, src/regression/for.c,
3678           src/regression/inline.c, src/regression/mult1.c,
3679           src/regression/nestfor.c, src/regression/or1.c,
3680           src/regression/pointer1.c, src/regression/ptrfunc.c,
3681           src/regression/rotate1.c, src/regression/rotate2.c,
3682           src/regression/rotate3.c, src/regression/rotate4.c,
3683           src/regression/rotate5.c, src/regression/rotate6.c,
3684           src/regression/rotate7.c, src/regression/string1.c,
3685           src/regression/struct1.c, src/regression/sub.c,
3686           src/regression/sub2.c, src/regression/switch1.c,
3687           src/regression/while.c, src/regression/xor.c,
3688           src/regression/create_stc, src/regression/simulate,
3689           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
3690           regression tests
3691         * src/regression/gpsim_assert.h: added
3692
3693 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
3694
3695         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
3696         ((void (code *) (void)) 0) ();
3697         * as/hc08/aslex.c,
3698         * as/hc08/aslink.h,
3699         * as/hc08/asm.h,
3700         * as/hc08/asmain.c,
3701         * as/hc08/lkdata.c,
3702         * as/hc08/lklex.c,
3703         * as/hc08/lkmain.c,
3704         * as/mcs51/aslex.c,
3705         * as/mcs51/aslink.h,
3706         * as/mcs51/asm.h,
3707         * as/mcs51/asmain.c,
3708         * as/mcs51/lkdata.c,
3709         * as/mcs51/lklex.c,
3710         * as/mcs51/lkmain.c,
3711         * as/z80/aslex.c,
3712         * as/z80/asm.h,
3713         * as/z80/asmain.c: fixed build on current cygwin:
3714         replaced getline() by as_getline()
3715
3716 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
3717
3718         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
3719         declarator in the symbol chain
3720         * src/SDCCsymt.h,
3721         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
3722         parameter list for function pointers
3723         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
3724         * support/regression/tests/bug-716242.c: added
3725
3726 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
3727
3728         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
3729         offset if possible
3730         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
3731
3732 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
3733
3734         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
3735         inifinitely recurseable, added static
3736         * support/regression/tests/bug-1408066.c: added
3737
3738 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
3739
3740         * src/SDCCicode.h,
3741         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
3742         renamed, added possibility to create "postLoopLbl"-labels
3743         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
3744         newiTempLoopHeaderLabel
3745         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
3746         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
3747         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
3748         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
3749         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
3750         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
3751         (basicInduction): fixed bug #136564, made static,
3752         (loopInduction): changed parameter of basicInduction, made static,
3753         (addPostLoopBlock): added
3754         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
3755         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
3756         findLoopEndSeq
3757         * support/regression/tests/bug-136564.c: added
3758         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
3759         --std-sdcc99 to LIBSDCCFLAGS
3760
3761 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
3762
3763         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
3764         while loop
3765         * support/regression/tests/bug-1406131.c: added
3766
3767 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
3768
3769         * src/SDCCast.c (decorateType): fix promotion of unary minus
3770         * src/SDCCsymt.c (computeType): beautified
3771         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
3772         (valUnaryPM, valComplement): fix sign and promotion,
3773         (valNot): ANSI: result type is int (SDCC: unsigned char)
3774         * support/regression/tests/uminus.c: speedup by removing superflous
3775         test case 'int'
3776         * support/regression/tests/onebyte.c: added promotion and signedness
3777         tests for unary minus
3778         * support/regressions/tests/bug-477927.c: disable warning about
3779         uninitialized variables
3780         * support/regression/tests/not.c: added
3781
3782 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
3783
3784         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
3785         * src/mcs51/gen.c (gen51Code): show final register usage after
3786         fillGaps in asm with --i-code-in-asm
3787         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
3788         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
3789         incUsed, rliveClear, adjustIChain): made static,
3790         (setFromRange): excluded because it's unused,
3791         (findPrevUseSym, markWholeLoop): added,
3792         (findPrevUse): rewritten; fixes bug 895992; now a complete search
3793         through all branches of predecessors enables sdcc to emit the warning
3794         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
3795         (rlivePoint): made static, added parameter emitWarnings which is only
3796         true during the first run out of two,
3797         (findRecursiveSucc, findRecursivePred): removed,
3798         (computeLiveRanges): made static, added parameter emitWarnings,
3799         (dumpIcRlive): added for debugging only
3800         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
3801         removed prototype of setFromRange()
3802         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
3803         in call of computeLiveRanges()
3804         * support/regression/tests/bug-895992.c: added
3805         * support/regression/tests/bug-971834.c: added
3806         * support/valdiag/tests/bug-895992.c: added
3807         * support/valdiag/tests/bug-971834.c: added
3808
3809 2005-12-18 Raphael Neider <rneider AT web.de>
3810
3811         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
3812           (genUnpackBits): improved code for direct operands,
3813           (genPackBits): improved code for literal assignment to bitfields
3814             and for direct destination operands (no FSR indirection),
3815             prevented redundant AND, fixes #1362800,
3816           (AccLsh): added parameter to disable masking of the result
3817         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
3818           skip instructions with side-effects (like incfsz),
3819           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
3820         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
3821         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
3822           fixes #1375263
3823
3824 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
3825
3826         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
3827         volatile variables as spill location
3828
3829 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
3830
3831         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
3832         replacing literals
3833         * support/regression/tests/bug-1376320.c: added
3834
3835 2005-12-08 Raphael Neider <rneider AT web.de>
3836
3837         * src/pic/device.c: renamed is_shared to pic14_is_shared
3838         * src/pic/gen.c (genIfx): re-enabled handling of sbits
3839         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
3840           (is_valid_identifier): added for above workaround
3841
3842 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
3843
3844         * device/lib/Makefile.in: fixed to enable port-specific-objects
3845         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
3846           char, thanks Hubert Sack
3847         * doc/sdccman.lyx: documented --xstack-loc,
3848           elaborated a bit more on interrupts and pitfalls,
3849           removed "setjmp/longjmp unsupported",
3850           documented some unsupported C99 features
3851         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
3852         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
3853           if, thanks Hubert Sack
3854         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
3855         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
3856           make make_library
3857         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
3858           regression tests can report resource usage (rfe 700441)
3859         * support/regression/collate-results.py: report resource usage
3860         * support/regression/ports/ds390/spec.mk,
3861         * support/regression/ports/hc08/spec.mk,
3862         * support/regression/ports/mcs51/spec.mk,
3863         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
3864         * support/regression/ports/ds390/uCsim.cmd,
3865         * support/regression/ports/hc08/uCsim.cmd,
3866         * support/regression/ports/mcs51/uCsim.cmd,
3867         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
3868         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
3869           library, use the default one
3870         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
3871           building the library
3872
3873 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
3874
3875         * config.dsp: added dependency on .version and configure_vc.awk
3876         * device/include/setjmp.h: updated for --stack-auto and --xstack
3877         * device/include/mcs51/at89c51snd1c.h: corrected line endings
3878         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
3879         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
3880         * device/lib/libsdcc.lib: added _setjmp
3881         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
3882           (decorateType): fixed bug 1372851,
3883           (optimizeGetHbit): fixed warning
3884         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
3885           array initialisation
3886         * support/regression/tests/bug1057979.c: added test for bug 1358192
3887         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
3888
3889 2005-12-03 Borut Razem <borut.razem AT siol.net>
3890
3891         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
3892           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
3893
3894 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
3895
3896         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
3897         createIval): implement symbol independant "flexible array member",
3898         (createIvalCharPtr): implemented flexible array initialisation with a
3899         string
3900         * src/SDCCsymt.c (copyStruct): removed,
3901         (getSize): fixed misleading comment,
3902         (getAllocSize): removed, the additional allocation size is now in
3903         sym->flexArrayLength,
3904         (checkStructFlexArray): new, syntax checks for flexible array members,
3905         (compStructSize): added syntax checks for "flexible array members"
3906         (copyStruct): removed,
3907         (copyLinkChain): removed inefficient fix for bug 770487
3908         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
3909         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
3910         symbol->flexArrayLength
3911         * src/SDCCerr.c,
3912         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
3913         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
3914         * support/regression/tests/structflexarray.c: added
3915         * support/valdiag/tests/structflexiblearray.c: added
3916
3917 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
3918
3919         * src/SDCCast.c (decorateType): fixed bug 1368489
3920         * support/Util/SDCCerr.c,
3921         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
3922
3923 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3924
3925         * device/include/mcs51/at89c51snd1c.h: added file submitted by
3926           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
3927
3928 2005-11-27 Borut Razem <borut.razem AT siol.net>
3929
3930         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
3931           support/cpp2/mkdeps.h: added command line option
3932           -obj-ext=<extension> to SDCPP to define object file externion, used
3933           for generation of make dependencies (-M)
3934         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
3935
3936 2005-11-26 Borut Razem <borut.razem AT siol.net>
3937
3938         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
3939           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
3940           added pic and pic16 libraries
3941
3942 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3943
3944         * device/include/float.h: Corrected typo in prototype of __fsgt
3945
3946 2005-11-25 Borut Razem <borut.razem AT siol.net>
3947
3948         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
3949           added creation of model-mcs51-stack-auto libraries
3950
3951 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
3952
3953         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
3954         and fields-list too
3955         * src/SDCCast.c (createIvalArray): removed obsolete comment
3956
3957 2005-11-24 Borut Razem <borut.razem AT siol.net>
3958
3959         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
3960           added missing device/lib/mcs51/crt*.asm sources
3961
3962 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
3963
3964         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
3965
3966 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
3967
3968         * device/lib/_fs2schar.c,
3969         * device/lib/_fs2sint.c,
3970         * device/lib/_fs2slong.c: optimized inline asm
3971
3972 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3973
3974         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
3975           Better handling of floats between -1.0 and 0.0.
3976
3977 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3978
3979         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
3980           (the missing "if"s prohibited removal of redundant labels)
3981
3982 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3983
3984         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
3985           Properly convert floats between -1.0 and 0.0 to long, int, and char
3986           types (max integer value of negative floats tends to zero).
3987         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
3988           Removed changes made so to work properly with floats between
3989           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
3990           and _fs2char.c
3991
3992 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
3993
3994         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
3995         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
3996         (genCast) cosmetic change
3997         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
3998         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
3999         from mcs51
4000         * support/regression/tests/bitfields (testSignedBitfields): added
4001
4002 2005-11-18 Borut Razem <borut.razem AT siol.net>
4003
4004         * sdcc/device/lib/Makefile.in: remove all unnecessary files
4005         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
4006           introduced SILENT option to make building of pic16 libraries less
4007
4008 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4009
4010         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
4011           Now they work properly with floats between -1.0 and 0.0
4012         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
4013
4014 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
4015
4016         * src/SDCCicode.c (printOperand): added missing else
4017
4018 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
4019
4020         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
4021         reformatted for better readability
4022         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
4023         signed bitfields
4024
4025 2005-11-17 Borut Razem <borut.razem AT siol.net>
4026
4027         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
4028           introduced SILENT option to make building of pic16 libraries less
4029           verbose - used for nightly snapshot build
4030         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
4031           available on Win32 platforms.
4032         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
4033           medium, large, pic and pic16
4034
4035 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4036
4037         * device/lib/printf_large.c: Temporary patch for bug 1358192:
4038           printf("%f"...) sets fraction to zero.
4039
4040 2005-11-16 Raphael Neider <rneider AT web.de>
4041
4042         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
4043           fixes #1357221
4044         * src/pic/gen.c (genIfx): implemented for CARRY bit
4045         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
4046           to generic pointers, fixes #1357332,
4047           (pic16_movLit2f): NEW,
4048           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
4049
4050 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
4051
4052         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
4053
4054 2005-11-11 Raphael Neider <rneider AT web.de>
4055
4056         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
4057         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
4058           compute pointer's type from operand,
4059           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
4060           improved single bit reads, fixes bug #1353379
4061
4062 2005-11-09 Borut Razem <borut.razem AT siol.net>
4063
4064         * support/scripts/sdcc.nsi: added lib/pic to the package
4065
4066 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
4067
4068         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
4069
4070 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
4071
4072         * support/regression/tests/bug1348008.c: added
4073         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
4074         * support/regression/tests/bug1337835.c: updated comment
4075
4076 2005-11-06 Borut Razem <borut.razem AT siol.net>
4077
4078         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
4079           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
4080           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
4081           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
4082           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
4083           dynamic construction of cl_error_class and derivates - 2.nd try
4084
4085 2005-11-05 Borut Razem <borut.razem AT siol.net>
4086
4087         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
4088           bug, which caused Bus Errors on sparc solaris
4089
4090 2005-11-04 Borut Razem <borut.razem AT siol.net>
4091
4092         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
4093           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
4094           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
4095           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
4096           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
4097           and derivates to resolve the initialization problem on OSX
4098
4099 2005-11-02 Borut Razem <borut.razem AT siol.net>
4100
4101         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
4102           corrected typo - #include <winsock2.h>
4103
4104 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
4105
4106         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
4107           (_asxxxx_mapping): added org directive for future enhancements
4108
4109 2005-11-01 Borut Razem <borut.razem AT siol.net>
4110
4111         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
4112           enabled sockets on WIN32
4113         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
4114
4115 2005-10-31 Borut Razem <borut.razem AT siol.net>
4116
4117         * support/regression/generate-cases.py: escape backslashes in {testcase}:
4118           WIN32 backslash path delimiters should be escaped when used in C strings
4119         * support/regression/tests/bitfields.c: exclude failing assertions for
4120           __CYGWIN32__ and __MINGW32__ hosts
4121
4122 2005-10-30 Borut Razem <borut.razem AT siol.net>
4123
4124         * src/SDCCutil.c: corrected double comparison typo
4125
4126 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
4127
4128         * device/lib/medium/Makefile: added for new memory model medium
4129         * device/include/asm/mcs51/features.h: updated for medium/pdata
4130         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
4131           added Multiply & Accumulate sbit's and MAC0_PAGE define
4132         * device/include/mcs51/c8051f300.h: added sfr16 definitions
4133         * device/include/mcs51/c8051f310.h: added sfr16 definitions
4134         * device/lib/_mullong.c: update for medium model
4135         * device/lib/incl.mk: added medium model
4136         * doc/sdccman.lyx: documented medium model
4137         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
4138         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
4139         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
4140         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
4141           (allocParms): set SCLS and OCLS to pdata for medium model
4142         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
4143           for pdata,
4144           (powof2): return <0 if not power of 2
4145         * src/avr/gen.c (genBitWise): use updated powof2
4146         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
4147           (shiftR2Left2Result): small optimization in setup, save acc when storing,
4148           (shiftLLeftOrResult): use B if necessary
4149         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
4150         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
4151         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
4152         * support/regression/Makefile.in: added test-mcs51-medium
4153         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
4154
4155 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
4156
4157         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
4158         specifier unsigned
4159         * device/lib/time.c (mktime): fixed bug 1334315
4160
4161 2005-10-28 Raphael Neider <rneider AT web.de>
4162
4163         * device/include/pic/p16f_common.inc: added common declarations
4164         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
4165
4166 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
4167
4168         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
4169           (aopPutUsesAcc): added to predict accumulator use,
4170           (assignResultValue): save acc if necessary,
4171           (genMinusDec): store result if indirectly addressed,
4172           (genDivOneByte):  save acc if necessary,
4173           (movLeft2Result): bugfix if left already in acc,
4174           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
4175             attention to accumulator use (esp. pdata),
4176           (genReceive): receive pdata correctly
4177         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
4178         * src/SDCCicode.h: added isOperandInPagedSpace prototype
4179
4180 2005-10-27 Raphael Neider <rneider AT web.de>
4181
4182         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
4183
4184 2005-10-27 Raphael Neider <rneider AT web.de>
4185
4186         * .version: changed version to 2.5.4
4187         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
4188         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
4189           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
4190             arithmetics support routines
4191         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
4192         * device/lib/Makefile.in: also create installdir for pic
4193
4194         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
4195           pic14 port as well
4196         * src/pic/device.c (dump_sfr): rewritten to delegate register
4197           placement to the linker (use `extern sym' rather than sym EQU addr),
4198           (validAddress): fixed to check last specified address
4199         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
4200           (popGetLit): truncate literal value to 8 bit,
4201           (popGet): moved assert to more appropriate place
4202           (popGetExternal): create pCode operand from and mark the according
4203             symbol as being `extern'
4204           (popGetAddr): added sanity check on immediate's offset, provide
4205             GPOINTER tag on demand
4206           (aopPut): fixed for immediates,
4207           (mov2w_op): move operand's address or contents to WREG (depending on
4208             operand type), safer variant of mov2w,
4209           (movwf,call_libraryfunc): NEW, handy abbreviations,
4210           (get_argument_pcop,get_return_val_pcop,pass_argument,
4211           get_returnvalue): interface for accessing function parameters and
4212             return values,
4213           (assignResultValuei,genRet): use new parameter/return value interface
4214           (pic14_getDataSize): back to old version handling generic pointers,
4215           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
4216             provided implementation and/or fixed old one,
4217           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
4218             calls, removed legacy 8051 reference code
4219           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
4220           (loadSignToC): NEW, move the operands sign bit to CARRY,
4221           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
4222             genRightShiftSigned, accepts negative shift counts,
4223           (setup_fsr): load FSR and adjust IRP (indirect memory access),
4224           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
4225             generic pointers, __data pointers and __code pointers,
4226           (genUnpackBits,genPackBits): rewritten to work with generic pointers
4227             and signed bitfields, limit bitfields to 8 bit,
4228           (genDataPointerGet): fixed number of bytes read,
4229           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
4230           (genPointerGet,genPointerSet): fixed handling of __code pointers,
4231             pointers to constant data are no longer assumed to point to __code
4232             space, removed invalid pointer types,
4233           (bitpatternFromVal): retrieve the PICs representation of an integer
4234             or float literal,
4235           (genDataPointerSet): fixed assigning to po_immediate operands,
4236           (genGenPointerSet): implemented as library call,
4237           (genIfx): fixed incorrect condition,
4238           (genAddrOf): limit generic pointers' addresses to 2 bytes,
4239             provide GPOINTER tag according to destination's storage class,
4240           (genCast): added code to handle casting to generic pointers, added
4241             sign-/zero extension of the result
4242           (aop_isLitLike,op_isLitLike): fixed handling of immediates
4243         * src/pic/gen.h: added macros to access IRP bit in STATUS register
4244         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
4245           extend the result
4246         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
4247           address/register resides in the shared banks
4248           (emitSymbolToFile): improved to handle global and `pinned' symbols,
4249             put all variables into separate sections (have the linker arrange
4250             them)
4251           (picglue): put init code and interrupt handlers in separate sections
4252         * src/pic/main.c: added port specific options table, modified to PORT
4253           structure to make GPOINTERs 3 byte, added pic14_options
4254           (_pic14_do_link): private linking routine (update paths to libraries,
4255             add libsdcc.lib by default)
4256         * src/pic/main.h: declare pic14_options
4257         * src/pic/pcode.c: fixed instructions i/o relations,
4258           (RegCond): reverted to correct version,
4259           (newpCodeOpLit): truncate literals to 8 bit,
4260           (genericPrint): added debug output,
4261           (getRegFromInstruction): fixed for various operand types, simplified
4262           (BuildFlow): fixed broken handling of isntructions with labels
4263           (LinkFlow): start at last instruction in flow (skip trailing comments),
4264             pass the flow on to the next instruction after CALL
4265           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
4266           (insertPCodeInstruction): fixed inserting after a skip instruction,
4267           (DoBankSelect): fixed for labeled instructions
4268           (OptimizepBlock): honor --nopeep switch
4269           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
4270         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
4271         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
4272           (pCodeOptime2pCodes): allow disabling this optimization via
4273             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
4274             but is still buggy), started implementation of a dataflow based
4275             pCode optimization (CSE + dead code elimination)
4276           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
4277         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
4278           names are independant of the stack location and therefore portable across
4279           devices
4280
4281 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
4282
4283         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
4284           (selectSpil): fixed bug 1337835 by not spilling bit variables
4285         * support/regression/tests/bug1337835.c: added test for this bug
4286         * src/mcs51/peeph.def: restart after rule 3.c,
4287           addded rules 263.x to optimize loading constants
4288
4289 2005-10-26 Raphael Neider <rneider AT web.de>
4290
4291         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
4292         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
4293           (genAssign): emit warning when casting literals to generic pointer
4294             type, also applies when taking the address of a fixed variable,
4295           (genCast): improved casting to generic pointers
4296         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
4297           extern variables, added verbose error message
4298         * device/include/pic16/{string.h,errno.h}: added #pragma library c
4299
4300 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
4301
4302         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
4303         carry must be complemented too
4304         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
4305         could be emitted by genMinus
4306         * src/SDCCval.c (constVal): fixed bug 1305065
4307
4308 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
4309
4310         * src/SDCCast.c (addCast): added promotion for bit variables
4311         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
4312         promotion casts + optimisation
4313         (optimizeGetWord): fix warning 'i' might be used uninitialized
4314         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
4315         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
4316
4317 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
4318
4319         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
4320         all chars are promoted to int; promotion should be handled in SDCCast.c
4321
4322 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4323
4324         * device/lib/_strcmp.c: Fixed bug 1326457
4325
4326 2005-10-11 Raphael Neider <rneider AT web.de>
4327
4328         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
4329         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
4330
4331 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
4332
4333         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
4334         * support/regression/tests/sfr16.c: added test for the sfr32 bug
4335
4336 2005-10-04 Raphael Neider <rneider AT web.de>
4337
4338         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
4339           device/lib/pic16/pics.all: added pic18f1320
4340         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
4341
4342 2005-09-30 Raphael Neider <rneider AT web.de>
4343
4344         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
4345         * src/pic16/devices.inc: NEW, provides device descriptions
4346         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
4347
4348 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
4349
4350         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
4351           GETHBIT
4352
4353 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
4354
4355         * doc/sdccman.lyx: updated Highest Order Bit documentation,
4356           documented Any Order Bit, Higher Order Byte and Higher Order Word
4357         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
4358         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
4359           (optimizeGetAbit): new, to get any bit, not only the high bit,
4360           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
4361           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
4362           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
4363           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
4364             RIGHT_OP: also try GETBYTE, GETWORD optimization,
4365             GETABIT, GETBYTE, GETWORD: decorate them,
4366           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
4367           (ast_print): added GETABIT, GETBYTE, GETWORD
4368         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
4369         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
4370           (geniCodeBinary): new generic binary icode,
4371           (ast2iCode): added GETABIT, GETBYTE, GETWORD
4372         * src/port.h: updated comment for PORT.hasExtBitOp
4373         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
4374           (genGetByte): new, to get a single byte,
4375           (genGetWord): new, to get a word from a long,
4376           (gen51Code): added GETABIT, GETBYTE, GETWORD
4377         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
4378
4379 2005-09-23 Raphael Neider <rneider AT web.de>
4380
4381         * configure.in, configure: have device/lib/pic configured
4382         * device/lib/Makefile.in: added model-pic14
4383         * device/lib/clean.mk: added pic/ to clean rule
4384         * device/lib/pic: added rudimentary pic14 library providing support
4385           functions for multiplication/division/generic pointer access
4386         * src/SDCCopt.c (convilong): mark support functions as extern
4387           for pic14 port as well
4388         * src/pic/gen.c (genMult): added assertions,
4389           (genpic14Code): emit warning on unhandled iCodes
4390         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
4391         * src/pic/pcode.c (pCodeOpCopy),
4392         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
4393           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
4394           SFR_REGISTER}), made safe for future extensions
4395         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
4396           instructions even if preceeded by SKIP instructions (also remove
4397           them); removed unused code
4398         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
4399           prevents leaving parts of the structure uninitialized after copying
4400
4401 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
4402
4403         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
4404           ago by me
4405         * support/regression/tests/addsub.c: added test for the bug
4406
4407 2005-09-21 Raphael Neider <rneider AT web.de>
4408
4409         * device/include/pic16/pic18f1220.h,
4410           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
4411         * device/lib/pic16/Makefile.rules: added missing opening paren
4412         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
4413           are provided in genutils.c,
4414           (genUminusFloat,genUminus,genCmpEq): added asserts on different
4415           operand/result sizes,
4416           (genCmp): assert on NULL pointers first, then check deref'ed values
4417         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
4418           result size
4419
4420 2005-09-18 Raphael Neider <rneider AT web.de>
4421
4422         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
4423           as these are now unused,
4424           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
4425         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
4426           local, avoids uninitialized pointer dereference on r->name
4427         * src/pic16/ralloc.c (newReg): fixed indentation
4428
4429 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
4430
4431         * src/SDCCval.c (constVal): fixed bug 730366
4432         * support/Util/SDCCerr.c,
4433         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
4434
4435 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
4436
4437         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
4438
4439 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
4440
4441         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
4442
4443 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
4444
4445         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
4446           (hex2dec): made hex_digit unsigned char, removed ascii dependance
4447         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
4448           (hex2dec): made hex_digit unsigned char, removed ascii dependance
4449         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
4450         * packihx/packihx.c (hexDigit): made c unsigned char
4451         * as/mcs51/lklibr.c (fndsym),
4452         * link/z80/lkgb.c (gb),
4453         * link/z80/lklibr.c (fndsym),
4454         * link/z80/lkrloc.c (relr),
4455         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
4456         * src/SDCC.lex (checkCurrFile, process_pragma),
4457         * src/SDCCglue.c (spacesToUnderscores),
4458         * src/SDCCmain.c (setParseWithComma, processFile),
4459         * src/asm.c (tvsprintf, printCLine),
4460         * src/avr/gen.c (emitcode, aopPut),
4461         * src/ds390/gen.c (emitcode),
4462         * src/hc08/gen.c (emitcode, emitinline),
4463         * src/mcs51/gen.c (emitcode, genInline),
4464         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
4465           tokenizeLineNode),
4466         * src/pic/ralloc.c (debugLog),
4467         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
4468           tokenizeLineNode),
4469         * src/pic16/ralloc.c (debugLog),
4470         * src/z80/main.c (_process_pragma):
4471            made all ctype.h function calls safe
4472         * src/SDCCopt.c: include math.h for fabs
4473         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
4474           and used them throughout the code to make ctype.h function calls safe
4475         * src/ds390/main.c (asmLineNodeFromLineNode),
4476         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
4477         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
4478            unsigned char*
4479         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
4480           (newpCodeAsmDir): made ctype.h function calls safe
4481         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
4482           pic16_emitcode):  made lbp unsigned char*
4483         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
4484           (pic16_newpCodeAsmDir): made ctype.h function calls safe
4485         * src/xa51/gen.c (emitcode),
4486         * src/z80/gen.c (_emit2): made lbp unsigned char*
4487         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
4488            char*
4489
4490 2005-09-05 Raphael Neider <rneider AT web.de>
4491
4492         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
4493           access bank splitpoint
4494
4495 2005-09-05 Raphael Neider <rneider AT web.de>
4496
4497         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
4498
4499 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
4500
4501         * .version: changed to version 2.5.3
4502         * doc/sdccman.lyx: changed version to 2.5.3,
4503           documented --codeseg and --constseg and pragma codeseg and constseg,
4504           documented bit parameters (reentrant) and bit returning
4505         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
4506            currFunc->recvSize, but is this ok for all ports?
4507           (ast2iCode): result of ~ on unsigned char must be cast to int for
4508            bool to work
4509         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
4510           function pointers in bit space
4511         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
4512           (processFuncArgs): call port.reg_parm() with reentrancy info
4513         * src/port.h,
4514         * src/avr/main.c,
4515         * src/ds390/main.c,
4516         * src/hc08/main.c,
4517         * src/pic/main.c,
4518         * src/pic16/main.c,
4519         * src/xa51/main.c,
4520         * src/z80/main.c: port.reg_parm prototype extended with
4521           "bool reentrant" parameter
4522         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
4523           options.stackAuto for allocating bit register parameters
4524         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
4525           (genSend): set BitBankUsed if it is,
4526           (selectRegBank): factored out of genCall for use in genPcall,
4527           (genCall): removed redundant dtype assignmen, use selectRegBank,
4528           (genPcall): handle returning in Carry properly, save in F0 if needed,
4529           (genReceive): handle bit register parameters
4530         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
4531           (mcs51_assignRegisters): enable bit registers for all reentrant
4532            functions and don't set BitBankUsed unconditionally
4533         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
4534         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
4535         * support/regression/tests/funptrs.c: added tests for BOOL and for return
4536
4537 2005-08-27 Borut Razem <borut.razem AT siol.net>
4538
4539         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
4540         ppc-osx (Darwin) does not support -u option. It seems that it is
4541         supported only on Linux - GNU cp
4542
4543 2005-08-25 Borut Razem <borut.razem AT siol.net>
4544
4545         * sim/ucsim/gui.src/serio.src/Makefile.in,
4546           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
4547           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
4548           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
4549           install and strip, since the strip at /usr/ccs/bin should be used
4550           on solaris
4551
4552 2005-08-24 Borut Razem <borut.razem AT siol.net>
4553
4554         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
4555
4556 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
4557
4558         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
4559         ffffffffu
4560
4561 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
4562
4563         * as/mcs51/aslink.h: completed lkrloc.c prototypes
4564         * as/mcs51/lkmain.c (link_main): fixed warning
4565         * device/include/stdbool.h: ds390 has no advanced bit support yet
4566         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
4567         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
4568         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
4569           and updated their macros
4570         * src/SDCCval.c (constVal): updated comment for renamed b_long
4571
4572 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
4573
4574         * as/mcs51/asdata.c: changed ctype['['] to BINOP
4575         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
4576           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
4577           (oprio): set priority for '['
4578         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
4579            and adb_24_bit
4580         * as/mcs51/asm.h: added defines R_BIT and S_BIT
4581         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
4582         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
4583         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
4584           added overlayable BIT_BANK area
4585         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
4586           (summary2): explain 'T' in legenda
4587         * as/mcs51/lkrloc.c: replaced old K&R style,
4588           (relr): added R_BIT processing,
4589           (errmsg): added "Bit-addressable relocation error",
4590           (adb_bit): added for converting from byte- to bit-addressable space,
4591           (adb_24_bit): added for converting from byte- to bit-addressable space
4592         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
4593            used in reentrant functions now even as return value
4594         * device/lib/_gptrput.c (_gptrput): removed obsolete code
4595         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
4596           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
4597         * src/SDCCglobl.h: added indicator BitBankUsed
4598         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
4599            the bit registers b0-b7
4600         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
4601           (geniCodeCast): fixed bug 1263853,
4602           (geniCodeLogicAndOr): put result in bool or char,
4603           (geniCodeReceive): added parameter func for accessing the return type,
4604           (geniCodeFunctionBody): pass func to geniCodeReceive
4605         * src/SDCCmain.c: added indicator BitBankUsed
4606         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
4607         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
4608           (checkSClass): don't put automatic bool/bit on stack,
4609           (checkFunction): removed check on function cannot return bit
4610         * src/SDCCsymt.h: added newBoolLink prototype
4611         * src/mcs51/gen.c (rb1regs): added bit registers,
4612           (movc): created for assigning to carry,
4613           (pushReg, popReg): created for pushing registers,
4614           (sameRegs): check both AOP_REG and AOP_CRY types,
4615           (aopOp): handle bit registers,
4616           (aopPut): optimization no self-assign,
4617           (saveRegisters): push reg->base (bits) only once for bit registers,
4618            and use pushReg,
4619           (unsaveRegisters): pop reg->base only once and use popReg,
4620           (assignResultValue): added parameter func and return in carry for bits,
4621           (genIpush): optimization no reload in A if not changed,
4622           (genSend): bit parameters in reentrant functions are passed in bit
4623            registers by first assigning to bits in B, then save registers and
4624            copy B to bits,
4625           (genCall): handle returning in Carry properly, save it in F0 if needed,
4626           (genPcall): updated assignResultValue call, this is not safe yet for bit
4627            returning function !!!
4628           (genFunction): don't generate equ's for bit registers and use pushReg,
4629           (genEndFunction): take care of bit returning functions and use popReg,
4630           (genRet): return bit in Carry,
4631           (genIfx): optimize bit registers and other directly addressable bits,
4632           (genReceive): updated assignResultValue call
4633         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
4634           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
4635            registers when using stack-auto
4636         * src/mcs51/ralloc.c (_G): added allBitregs,
4637           (regs8051): added the bit registers,
4638           (createStackSpil): use macro IS_BIT,
4639           (getRegBit): added to allocate a bit register, else spill,
4640           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
4641           (updateRegUsage): factored out to ease stepping while debugging,
4642           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
4643            also allocate bit registers,
4644           (fillGaps): handle bit registers,
4645           (findAllBitregs): added to create bit vector with all bit registers,
4646           (mcs51_allBitregs): returns this bit vector,
4647           (mcs51_assignRegisters): when using stack-auto use bit registers for
4648            passing parameters and creating local variables
4649         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
4650
4651 2005-08-22 Borut Razem <borut.razem AT siol.net>
4652
4653         * device/lib/Makefile.in: replaced find option -or with -o
4654           to make it run on solaris
4655
4656 2005-08-22 Raphael Neider <rneider AT web.de>
4657
4658         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
4659           fixes #1265442 (crash on Solaris)
4660
4661 2005-08-20 Borut Razem <borut.razem AT siol.net>
4662
4663         * configure, configure.in: added tests for libsocket and libnsl libraries,
4664           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
4665           from support/regression/Makefile.in
4666         * support/regression/Makefile.in: added
4667         * device/lib/pic16/Makefile.common.in: force make to use bash shell
4668         * sim/ucsim/libtool: regenerated on sparc-solaris
4669         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
4670           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
4671           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
4672           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
4673           sparc-solaris, which doesn't use GNU ld linker
4674         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
4675         * as/Makefile: find on sparc-solaris does not support -maxdepth option
4676
4677 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
4678
4679         * src/mcs51/peeph.def: updated comments
4680
4681 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4682
4683         * device/lib/_gptrget.c,
4684         * device/lib/_gptrput.c: slightly shorter
4685         * doc/sdccman.lyx: incremented version
4686         * src/mcs51/peeph.def: moved peephole comments to the line of first
4687           change to better keep line correlation, reanimated 186.e
4688         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
4689
4690 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
4691
4692         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
4693           David Saxton with quotes around file name.
4694
4695 2005-08-15 Borut Razem <borut.razem AT siol.net>
4696
4697         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
4698           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
4699           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
4700           make tests run on x86_64 platform
4701
4702 2005-08-13 Raphael Neider <rneider AT web.de>
4703
4704         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
4705           as it might be executed DURING a build (parallel make is wonderful)
4706
4707 2005-08-13 Raphael Neider <rneider AT web.de>
4708
4709         * device/lib/Makefile.in (port-specific-objects-pic16):
4710           revert to cp $(PORT)/bin/*.* $(PORTDIR)
4711         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
4712           dependency
4713         * device/lib/pic16/Makefile.rules: build subdirs before creating
4714           the library, removed builddir rule, create $(builddir) early in
4715           recurse rule, use empty recurse rule for leaf directories
4716         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
4717           mkdir errors (race condition), removed duplicate suffix "hex"
4718           from clean rules
4719         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
4720         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
4721           prevents mkdir -p from aborting on Alpha
4722
4723 2005-08-12 Raphael Neider <rneider AT web.de>
4724
4725         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
4726           db-statements in order to allow for arrays of pointers in code
4727           sections to be placed without interspersed 0-padding, fixes
4728           bug #1256215
4729         * (emitStatistics): fixed division by zero for pic18f1220
4730         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
4731           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
4732         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
4733         * (pic16_pCodeConstString): keep track of already emitted string
4734           literals to prevent "duplicate definitions of symbol _str_NR"
4735         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
4736           debug message
4737         * device/lib/Makefile.in: ignore failing PIC16 library builds
4738         * device/lib/pic16/Makefile: do not build if gputils are missing
4739         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
4740
4741 2005-08-10 Raphael Neider <rneider AT web.de>
4742
4743         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
4744           my last commit)
4745
4746 2005-08-10 Raphael Neider <rneider AT web.de>
4747
4748         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
4749           Rokas' patch to add the new fixed point type "__fixed16x16"
4750         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
4751           functions for __fixed16x16 arithmetics
4752         * device/lib/pic16: reimplemented the build system to support
4753           a separate build directory, better handling of libio (create
4754           the library in a separate subdir for each architecture) and
4755           easier configuration (centralized in Makefile.common)
4756
4757 2005-08-07 Raphael Neider <rneider AT web.de>
4758
4759         * src/pic16/gen.c (genrshTwo): fixed sign extension
4760         * src/pic16/device.c: added pic18f2320, 4220 and 4320
4761         * device/include/pic16/pic18f2220.h: changed some bit definitions,
4762           added T0CONbits
4763         * device/include/pic16/pic18f4220.h: NEW, header for
4764           pic18f4220 and pic18f4320
4765         * device/include/pic16/pic18fregs.h: added new devices,
4766           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
4767         * device/include/pic16/signal.h: resolved name clashes
4768           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
4769           to also allow testing for interrupt enable bits, added
4770           comments on how to use the macros
4771         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
4772         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
4773           register definitions for the devices
4774         * device/lib/pic16/pics.all: added new devices
4775         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
4776           allocated memory
4777         * device/lib/pic16/libc/stdlib/memfree: do not count
4778           the block header as free memory
4779         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
4780           simplified and added missing end-of-blocklist-marker
4781           (reported by Peter Onion, fixes #1252814)
4782         * (_mergeHeapBlock): fixed loop condition
4783         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
4784           len==0, restructured code
4785         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
4786           up a bit, reduced bitfield accesses, prevent endless loops
4787           in case of heap corruption
4788         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
4789           "unreferenced arguments/must return a value" warnings
4790         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
4791           replaced BAUDREG with SPBRG
4792         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
4793           device/lib/pic16/debug/gstack/gstack.c: replaced
4794           _naked, _asm, _endasm with __naked, __asm, __endasm
4795
4796 2005-08-05 Raphael Neider <rneider AT web.de>
4797
4798         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
4799           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
4800
4801 2005-08-05 Borut Razem <borut.razem AT siol.net>
4802
4803         * device/lib/Makefile.in: added missing ';'
4804         * configure: removed ^M characters
4805
4806 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4807
4808         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
4809           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
4810           License
4811
4812 2005-08-04 Borut Razem <borut.razem AT siol.net>
4813
4814         * configure.in: pic16 libraries build 2nd try - enable running
4815           configure in device/lib/pic16
4816         * configure: regenerated from configure.in
4817         * device/lib/Makefile.in: create $(PORT)/bin directory
4818
4819 2005-08-03 Raphael Neider <rneider AT web.de>
4820
4821         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
4822           to get/set values via pointers
4823         * (genUnpackBits,genPackBits): changed detection of
4824           ptr->bitfield vs. sym.bitfield, fixed access via generic
4825           pointers, removed dead (wrong) code for multibyte bitfields
4826         * (genNearPointerGet, genGenPointerGet): removed useless code,
4827           fixed bitfield detection, fixes #1250594
4828         * (genNearPointerSet): removed useless code
4829         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
4830           and introduced macro pic16_emitpcode that conditionally emits
4831           the origin of the following pCode (useful for debugging SDCC)
4832         * src/pic16/pcode.c: changed (and disabled) some debug outputs
4833         * (createDefmap): fixed handling of LFSR for --optimize-df
4834
4835 2005-08-02 Borut Razem <borut.razem AT siol.net>
4836
4837         * device/lib/Makefile.in: pic16 libraries build enabled since
4838           gputils-0.13.2 are now localy installed at sourceforge's compile farm
4839
4840 2005-08-02 Raphael Neider <rneider AT web.de>
4841
4842         * src/pic16/gen.c (genPackBits): removed deprecated warning
4843         * (genGenPointerSet): fixed bitfield detection
4844
4845 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4846
4847         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
4848
4849 2005-07-31 Raphael Neider <rneider AT web.de>
4850
4851         * device/lib/pic16/libdev/pic18f458.c,
4852           device/include/pic16/pic18f458.h: added missing T0CONbits
4853
4854 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
4855
4856         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
4857
4858 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
4859
4860         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
4861
4862 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4863
4864         * device/include/mcs51/at89c51ed2.h: added.
4865
4866 2005-07-23 Raphael Neider <rneider AT web.de>
4867
4868         * src/pic/gen.h: added emitpcode macro for debugging
4869         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
4870           and replace by macro adding debug information on demand
4871         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
4872         * (gencjne): tried to fix; replaced with correct (slower) code
4873         * (gen{Unp,P}ackBits): fixed single bit access
4874         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
4875         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
4876           previous instruction
4877         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
4878           register has to be handled with care (forbidding movement
4879           of assignments/uses, removing assignments completely, ...)
4880         * (pCodeOptime2pCodes): make use of regIsSpecial
4881         * added lots of debugging output (commented out)
4882         * src/pic/rallloc.c (deassignLRs): prevent operand registers
4883           from being reused as result UNLESS it is known to work
4884
4885 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
4886
4887         * support/Util/dbuf.h: include <stddef.h> for size_t
4888         * .version: changed to version 2.5.2
4889
4890 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4891
4892         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
4893
4894 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4895
4896         * src/hc08/gen.c (genMinus): fixed bug #1241835,
4897           (genModOneByte): removed needless psha/pula
4898
4899 2005-07-22 Raphael Neider <rneider AT web.de>
4900
4901         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
4902           have PIC14 handled like PIC16, fixes broken pic14 linker calls
4903         * src/pic/gen.c (resolveIfx): do not "invent" labels
4904         * (genSkipc): changed to positive logic
4905         * (genSkipCond): removed as no longer needed
4906         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
4907           backport from PIC16
4908         * (genLeftShift): check operands are in different registers
4909         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
4910           INCF does not update CARRY...
4911         * src/pic/main.c: fixed _linkCmd
4912         * src/pic/pcode.c (unlinkpCode): added inactive code
4913         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
4914           alive (do not assign result and operand overlapping registers)
4915
4916 2005-07-22 Raphael Neider <rneider AT web.de>
4917
4918         * src/pic/device.c (dump_sfr): replaced register declaration with
4919           call to emitSymbolToFile() to avoid duplicate symbols
4920         * (assignRelocatableRegisters): do not declare external symbols
4921         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
4922           right (take size of type, not etype)
4923         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
4924         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
4925         * (packRegsForAccUse): disabled assignment of WREG as
4926           the result reg to prevent occurence of just fixed #1235003,
4927           fixes #1242954
4928         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
4929           symbols (avoids duplicate symbols in .asm file)
4930         * (pic14emitRegularMap): use emitSymbolToFile()
4931         * src/pic/gen.c (aopOp): fixed spillLocation handling
4932         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
4933         * (genDataPointerSet): removed unneccessary variables/output
4934
4935 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
4936
4937         * as/mcs51/lkarea.c: enlarged codemap for banked memory
4938         * device/lib/mcs51/crtbank.asm: added # to 0x0F
4939
4940 2005-07-21 Raphael Neider <rneider AT web.de>
4941
4942         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
4943           architecture cannot handle them efficiently, fixes bug #1235003
4944         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
4945           check for empty sets before using them (fixes bug #1232190)
4946
4947 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
4948
4949         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
4950           (lnksect2): generate warnings for memory overlap
4951         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
4952           constseg to set the name of these segments so you can instruct the linker
4953           to place them in banks
4954         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
4955         * src/SDCCglobl.h: added MODEL_HUGE to enum,
4956           added code_seg and const_seg to options
4957         * src/SDCCglue.c (emitMaps): use options.const_seg,
4958           (createInterruptVect): put interrupt vectors in segment HOME,
4959           (glue): put HOME before static segment and put the main glue in HOME,
4960           (glue): use options.code_seg
4961         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
4962         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
4963           these segments so you can instruct the linker to place them in banks
4964           (linkEdit): use code_loc for HOME segment which should be the first
4965           segment in code memory now
4966         * src/SDCCmem.c: fixed more stuff like bug 1238386
4967         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
4968           (changePointer): don't change function pointers to code pointers for
4969           banked functions,
4970           (compareType): added exceptional check for banked function pointers
4971         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
4972         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
4973           after static in code memory
4974         * src/mcs51/gen.c: added aopLiteralLong prototype,
4975           (aopForSym): use getSize for functions,
4976           (genCall): generate banked calls over one trampoline __sdcc_banked_call
4977           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
4978           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
4979           the segment,
4980           (genPcall): use call for literal function pointers and generate banked
4981           calls over the one trampoline so there's only one place for the user to
4982           modify according to his/hers hardware,
4983           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
4984           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
4985         * src/mcs51/main.c: added keyword banked,
4986           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
4987         * support/Util/SDCCerr.c,
4988         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
4989           needed for passing the bank and address to the trampoline
4990         * device/lib/mcs51/crtbank.asm: added for bankswitching
4991         * device/lib/mcs51/Makefile: added crtbank
4992
4993 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4994
4995         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
4996           for fields at offset 0 of a struct or union as reported
4997           on 2005-07-07 in the developer mailing list.
4998
4999 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
5000
5001         * src/SDCCmem.c: fixed bug 1238386
5002
5003 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5004
5005         * src/mcs51/peeph.def: added labelrefcounting for peepholes
5006           (patch #1144962), added peephole 300, enabled 259.x
5007         * doc/sdccman.lyx: removed screenshot and provided link instead
5008
5009 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5010
5011         * doc/sdccman.lyx: added section about debugging with ddd
5012         * doc/figures/ddd_example.eps: screenshot of debugging session
5013
5014 2005-07-04 Raphael Neider <rneider AT web.de>
5015
5016         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
5017           like CODE pointers, fixes #1115683
5018         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
5019           call, fixes bugs #1232211, #1228110,
5020           fixed wrong casts to pCodeFlow from pCodeInstructions
5021
5022 2005-07-04 Raphael Neider <rneider AT web.de>
5023
5024         * src/pic/gen.c (popGet): changed assert to allow for
5025           bit operands
5026         * (popGetAddr): changed signature to provide
5027           an additional index, patched all call sites
5028         * (genCmpEq): handle literal-like operands correctly
5029         * (genAddrOf): added sanity checks on __code/__data pointers
5030         * (genAssign): added handling of symbols from __code section
5031         * (gencjne): do not generate code for comparisons whose result
5032           is neither stored nor used, fixes bug #1171114
5033         * (AccLsh, AccRsh): operate on operand instead of WREG
5034         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
5035           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
5036           by known count
5037         * rewrote complete shift-by-literal logic, commented unused
5038           functions out
5039         * (genConstPointerGet): get multiple bytes (if result size > 1),
5040           fixed handling of non-immediate addresses
5041         * (genPointerGet): handle CODE pointers like CONST pointers
5042         * (genpic14Code): insert C-SRC lines as Cource-pCodes
5043         * ({aop,op}_isLitLike): NEW, single place to decide whether an
5044           operand is to be treated as a literal or not
5045         * (mov2w,genPcall,genCmpEq),
5046           src/pic/genarith.c: use aop_isLitLike() to decide between
5047           literal/register contents
5048         * (addSign): added missing offset
5049         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
5050           only emit comment in debug-mode,
5051           use {aop,op}_isLitLike throughout the file
5052         * src/pic/glue.c: fix initializers for pointers (work in progress)
5053         * src/pic/pcode.c (get_op): honor index on _const symbols
5054         * ({reset,dump}pCodeStatistics): NEW, estimate code size
5055         * (dumppBlock): added pCode size estimation
5056         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
5057           check for IS_SYMOP before OP_SYMBOL'ing
5058         * fixed indentation, compacted switch-statements
5059         * (allocReg): find free register and allocate it instead of
5060           allocating new registers all the time
5061         * (deassignLRs): prevent POINTER_GET's from being assigned the same
5062           registers as its operands (necessary only for multibyte GETs)
5063
5064 2005-07-01 Raphael Neider <rneider AT web.de>
5065
5066         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
5067           debugging .asm-output macros FENTRY + FEXIT
5068         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
5069           way... I wonder...
5070         * (emitpComment): NEW, printf to pCode
5071         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
5072           offset handling
5073         * (popGetAddr): NEW, variant of popGet to access an immediates
5074           high(er) bytes instead of the n'th byte of memory they reference,
5075           replaced popGet with popGetAddr where neccessary
5076         * (genDataPointerGet): reactivated and fixed implementation
5077         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
5078           accesses
5079         * (genDataPointerSet): fixed multibyte assignments
5080         * (genpic14Code): fixed --i-code-in-asm handling
5081         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
5082         * (genPlus): fixed index-out-of-bounds error
5083         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
5084         * src/pic/ralloc.c: added debugging output macro FENTRY2
5085         * (spillThis): fixed indentation, enbraced for-body for clarity
5086         * (rematStr): commented out as now unused
5087         * (regTypeNum): commented out special spill case (overwrites
5088           arbitrary values)
5089         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
5090
5091 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
5092
5093         * doc/sdccman.lyx: documented sfr16/sfr32,
5094           added example for using storage class with function pointers
5095         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
5096
5097 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
5098
5099         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
5100         * device/lib/_itoa.c,
5101         * device/lib/_ltoa.c: optimized codesize
5102         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
5103           but don't know how to suppress the double warning.
5104         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
5105         * support/Util/SDCCerr.c,
5106         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
5107
5108 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
5109
5110         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
5111           fixed old K&R prototypes
5112         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
5113         * device/lib/_gptrget.c,
5114         * device/lib/_gptrgetc.c,
5115         * device/lib/_gptrput.c: changed versions for new memory indicator values,
5116           also new versions for small generic pointers and banked generic pointers
5117         * src/port.h: added const_name
5118         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
5119         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
5120         * src/SDCCcse.c (findPrevIc): check all associative operators
5121         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
5122         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
5123         * src/SDCCmem.c: updated comments,
5124           set far-space to 0 for pdata, results in optimized code
5125         * src/SDCCmem.h: added macro CONST_NAME
5126         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
5127           moving the info into the highest bits, see also gptrget/gptrput
5128         * src/src.dsp: added sdcc.ico to project files
5129         * src/avr/gen.c (genCast): fixed bug 0x%d
5130         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
5131         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
5132           relation between ptr_type and DCL_TYPE,
5133           (genCast): fixed bug 0x%d
5134         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
5135           (CODE)" for const_name
5136         * src/hc08/gen.c (genCast): fixed bug 0x%d
5137         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
5138           (hc08_port): added "CONST (CODE)" for const_name
5139         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
5140           (aopForRemat, adjustArithmeticResult): disconnected direct relation
5141           between ptr_type and DCL_TYPE,
5142           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
5143           operand* and took AOP() inside function so sfr-ness can be checked,
5144           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
5145           new prototype,
5146           (genFunction, genEndFunction): optimized stack setup,
5147           (genMinus): optimized for literals with ending zeroes (in bytes),
5148           (genCast): fixed bug 0x%d
5149         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
5150           (mcs51_port): added "CONST (CODE)" for const_name
5151         * src/mcs51/peeph.def: made rule 226 more generic
5152         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
5153         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
5154         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
5155         * src/z80/main.c (z80_port): added NULL for const_name,
5156           (gbz80_port): added NULL for const_name
5157         * support/regression/tests/bug663539.c,
5158         * support/regression/tests/sfr16.c: new tests
5159
5160 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5161
5162         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
5163
5164 2005-06-24 Raphael Neider <rneider AT web.de>
5165
5166         * device/lib/pic16/libdev/pic18f[68][567]20.c:
5167           corrected typos...
5168         * device/include/pic16/signal.h: added USBIF
5169           and SIG_USB
5170
5171 2005-06-24 Raphael Neider <rneider AT web.de>
5172
5173         * device/lib/pic16/libdev/pic18f2455.c,
5174           device/include/pic16/pic18f2455.h: NEW
5175         * device/include/pic16/pic18fregs.h,
5176           device/lib/pic16/pics.all,
5177           src/pic16/device.c: added 18f2455
5178         * device/lib/pic16/libdev/pic18f[68][567]20.c,
5179           device/include/pic16/{pic18f[68][567].h,usart.h}:
5180           replaced MULTIPLE_USARTS define with more relaible
5181           compatibility sfrs (for USART access)
5182
5183 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
5184
5185         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
5186           and the output asm file line is printed on two lines.
5187
5188 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5189
5190         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
5191           BGT, BLE, BHI, and BLS instructions
5192         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
5193           genCmpEq): removed
5194         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
5195           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
5196           fixes bug #1216342
5197         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
5198
5199 2005-06-15 Raphael Neider <rneider AT web.de>
5200
5201         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
5202         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
5203         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
5204           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
5205           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
5206
5207 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5208
5209         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
5210           Marcel Telka in bug #1215704
5211
5212 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
5213
5214         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
5215           located in shared memory bank.
5216
5217 2005-05-31 Raphael Neider <rneider AT web.de>
5218
5219         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
5220           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
5221           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
5222
5223 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
5224
5225         * device/lib/_strncpy.c: fixed the fix
5226
5227 2005-05-26 Raphael Neider <rneider AT web.de>
5228
5229         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
5230           initializers with \0, bug #1208187
5231         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
5232           intializers with \0, bug #1208187
5233
5234 2005-05-26 Raphael Neider <rneider AT web.de>
5235
5236         * src/pic16/glue.c (pic16_printIvalChar): fixed string
5237           initializers with \0, bug #1208187
5238         * src/pic16/main.c (_process_pragma): added sanity checks
5239           for stack position and size, emit warnings when appropriate
5240
5241 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
5242
5243         * device/lib/_strncpy.c: fixed not filling with \0
5244
5245 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5246
5247         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
5248           createFunction),
5249         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
5250           compound_statement),
5251         * src/SDCCsymt.h,
5252         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
5253
5254 2005-05-24 Raphael Neider <rneider AT web.de>
5255
5256         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
5257
5258 2005-05-24 Raphael Neider <rneider AT web.de>
5259
5260         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
5261           TRISE definitions, closes bug #1162453
5262
5263 2005-05-22 Raphael Neider <rneider AT web.de>
5264
5265         * src/pic16/main.c (_process_pragma): check for missing
5266           arguments to pragmas code and udata
5267         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
5268           consistency fixes to match other headers (thanks to Jim Paris)
5269         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
5270
5271 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
5272
5273         * src/SDCCicode.c (isOperandEqual): fixed missing ;
5274
5275 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
5276
5277         * support/regression/tests/bug1198642.c: new test
5278         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
5279         * src/SDCCcse.c (findPrevIc): added comment, please have a look
5280         * support/scripts/resource.h,
5281         * support/scripts/resource.rc,
5282         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
5283         * support/scripts/sdcc.ico: added 32x32 icon
5284
5285 2005-05-18 Raphael Neider <rneider AT web.de>
5286
5287         * device/lib/pic16/libdev/pic18f*.c,
5288         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
5289           keywords to "__sfr" and "__at (X)"
5290         * device/include/pic16/pic18fregs.h: added pic18f4520
5291         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
5292           #1203088 (MPLAB compatibility)
5293
5294 2005-05-17 Raphael Neider <rneider AT web.de>
5295
5296         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
5297         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
5298         * device/lib/pic16/pics.all: added new devices
5299         * src/pic16/device.c: added support for pic18f4520
5300
5301 2005-05-16 Raphael Neider <rneider AT web.de>
5302         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
5303         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
5304         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
5305           convenience function for bit access
5306
5307 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
5308
5309         * device/lib/printf_large.c: fixed bug 1193299
5310         * support/regression/tests/bug1057979.c: added test %3.3s
5311
5312 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5313
5314         * device/include/mcs51/8051.h,
5315         * device/include/mcs51/8052.h: made parseable with lint
5316         * device/include/mcs51/lint.h: added include file for (sp)lint
5317         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
5318         * doc/cdbfileformat.lyx,
5319         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
5320
5321 2005-05-14 Raphael Neider <rneider AT web.de>
5322
5323         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
5324         * device/lib/pic16/libc/stdlib/itoa.c (new)
5325         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
5326         * device/lib/pic16/libio/Makefile: exclude subdir according to
5327           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
5328         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
5329         * src/pic16/gen.c (genFunction): prevent annoying warning
5330         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
5331           nameclashes on BeOS
5332         * support/cpp2/cppmain.c (cpp_output_string): new
5333         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
5334           fixes bug 1116802
5335
5336 2005-05-13 Borut Razem <borut.razem AT siol.net>
5337
5338         * src/SDCCmain.c (linkEdit): fixed bug 1195202
5339
5340 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5341
5342         * .version: changed to version 2.5.1; back to bleeding edge development
5343
5344 2005-05-11 Borut Razem <borut.razem AT siol.net>
5345
5346         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
5347           generate PDF version 1.3 documents
5348
5349 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5350
5351         * .version: changed to version 2.5.0
5352
5353 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5354
5355         * doc/sdccman.lyx: updated weblinks, index and smaller updates
5356
5357 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5358
5359         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
5360         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
5361         well as many smaller updates.
5362         * .version: changed to version 2.5.0-pre1
5363
5364 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5365
5366         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
5367
5368 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
5369
5370         * support/regression/tests/bug1185672.c: added
5371         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
5372           bug 1185672
5373         * src/mcs51/gen.c (genCall): added comments, made it look safer
5374         * src/mcs51/gen.c (genEndFunction): simplified
5375
5376 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
5377
5378         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
5379
5380 2005-04-14 Borut Razem <borut.razem AT siol.net>
5381
5382         * fixed bug 1045046 - SIGSEGV with really simple code?:
5383           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
5384           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
5385
5386 2005-04-14 Borut Razem <borut.razem AT siol.net>
5387
5388         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
5389           src/pic16/device.h: temporarily disabled experimental #inline pragma
5390           for 2.5.0 release
5391
5392 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
5393
5394         * device/include/z80/stdio.h,
5395         * device/include/z80/string.h: removed these highly incomplete files so
5396           SDCC can use the default ones in device/include/
5397
5398 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5399
5400         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
5401         gcc warning.
5402         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
5403         fix sdcpp warnings.
5404
5405 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
5406
5407         * device/include/malloc.h: removed redundant __reentrant prototypes
5408         * device/lib/_mullong.c: added working xstack variant in asm (C version
5409           doesn't pass regression tests)
5410         * device/lib/bpx.c: used __data and made bpx char for mcs51
5411         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
5412           (createFunction): fixed bug with xstackPtr
5413         * src/SDCCcse.c: corrected comments
5414         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
5415           (killDeadCode, eBBlockFromiCode): removed unused code
5416         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
5417           corrected comments
5418         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
5419           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
5420           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
5421           (genModOneByte): fixed warning in MSVC
5422         * src/mcs51/main.c (): added comments
5423         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
5424
5425 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
5426
5427         * src/SDCCmain.c (linkEdit): oops, changed one line too many
5428
5429 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
5430
5431         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
5432
5433 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
5434
5435         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
5436         characters arrays of larger size than the declared one.
5437
5438 2005-04-10 Borut Razem <borut.razem AT siol.net>
5439
5440         * src/pic/gen.c (genInline),
5441           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
5442           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
5443           (findNextInstruction), (findPrevInstruction),
5444           (findInstructionUsingLabel),
5445           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
5446         * src/pic/pcode.c (findLabel): added missing '\n'
5447         * src/src.dsp: added SDCCdwarf2.c to the project
5448
5449 2005-04-09 Borut Razem <borut.razem AT siol.net>
5450
5451         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
5452
5453 2005-04-08 Raphael Neider <rneider AT web.de>
5454
5455         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
5456           into the chain after a given one) and mergeDefmapSymbols (combine
5457           defmap entries for each symbol per pcode)
5458         * (createDefmap): have defmap entries merged in the end
5459         * (defmapReplaceSymRef): split defmap entries covering two accesses to
5460           a symbol before replacing one access type's symbol, merge symbols in
5461           the end (replacement symbol might already have an entry)
5462         * (assignValnums): keep reference to written WREG intact
5463
5464 2005-04-08 Raphael Neider <rneider AT web.de>
5465
5466         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
5467           Alpha)
5468
5469 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
5470
5471         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
5472         bytes
5473
5474 2005-04-07 Raphael Neider <rneider AT web.de>
5475
5476         * device/include/pic16/usart.h: added compatibility defines for
5477           devices with more than one USART
5478         * device/include/pic16/pic18f[68][567]20.h: activated above defines
5479
5480 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
5481
5482         * device/lib/Makefile.in: updated for port specific include
5483
5484 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
5485
5486         * support/regression/ports/mcs51/spec.mk: added mcs51 include
5487
5488 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
5489
5490         * device/include/8051.h,
5491         * device/include/8052.h,
5492         * device/include/at89S8252.h,
5493         * device/include/at89c55.h,
5494         * device/include/at89x051.h,
5495         * device/include/at89x51.h,
5496         * device/include/at89x52.h,
5497         * device/include/mcs51reg.h,
5498         * device/include/reg51.h,
5499         * device/include/reg764.h,
5500         * device/include/regc515c.h,
5501         * device/include/sab80515.h: (re)moved these 12 files
5502         * device/include/mcs51/8051.h,
5503         * device/include/mcs51/8052.h,
5504         * device/include/mcs51/at89S8252.h,
5505         * device/include/mcs51/at89c55.h,
5506         * device/include/mcs51/at89x051.h,
5507         * device/include/mcs51/at89x51.h,
5508         * device/include/mcs51/at89x52.h,
5509         * device/include/mcs51/mcs51reg.h,
5510         * device/include/mcs51/reg51.h,
5511         * device/include/mcs51/reg764.h,
5512         * device/include/mcs51/regc515c.h,
5513         * device/include/mcs51/sab80515.h: and added them here
5514
5515 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
5516
5517         * device/include/stdarg.h: changed SDCC specific keywords to double
5518           underlined form.
5519         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
5520           mcs51 and ds390.
5521         * device/include/hc08/mc68hc908gp32.h,
5522         * device/include/hc08/mc68hc908jb8.h,
5523         * device/include/hc08/mc68hc908jkjl.h,
5524         * device/include/hc08/mc68hc908qy.h: fixed comments
5525         * device/include/mcs51/README: updated
5526         * device/include/mcs51/c8051f120.h: added PINRSF
5527         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
5528         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
5529           amidst code. Also inline is not supported.
5530
5531 2005-04-06 Raphael Neider <rneider AT web.de>
5532
5533         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
5534         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
5535           callers stack/frame pointers
5536
5537 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
5538
5539         * device/include/pic16/usart.h: added, missing in previous commit,
5540         * device/include/pic16/adc.h: fixed typo,
5541         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
5542         commit,
5543         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
5544         <p18fxxx.inc>
5545         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
5546         uninitialized because a bug appears with gplink
5547         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
5548         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
5549         complains for unrecognised option
5550
5551 2005-04-05 Raphael Neider <rneider AT web.de>
5552
5553         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
5554           structs as well (using memcpy)
5555         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
5556           on ISRs (GOTO has no label)
5557         * src/pic16/device.h: added OF_OPTIMIZE_DF
5558         * src/pic16/main.c: added compiler switch --optimize-df to enable the
5559           new data flow analysis/optimization
5560         * src/pic16/pcode.c: added (prototypes for and implementation of)
5561           dataflow analysis functions, fixed pCodeInstructions' inCond and
5562           outCond values, made RCALL a branch instruction
5563         * (pic16_unlinkpCode): keep C line if possible
5564         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
5565           C line moved if possible
5566         * (pic16_getRegFrompCodeOp): NEW, improved version of...
5567         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
5568           to use new pic16_getRegFrompCodeOp (works for more SFRs)
5569         * (pic16_BuildFlow): fixed skip instructions with label (did not start
5570           new flow)
5571         * (pic16_getJumptabpCode): NEW, needed in...
5572         * (LinkFlow): fixed handling of jumptables, calls and conditional
5573           branches
5574         * (pic16_InsertCommentAfter): NEW
5575         * (pic16_pCodeReplace): made verbose and flow preserving
5576         * (AnalyzeFlow): added call to data flow analysis
5577         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
5578         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
5579         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
5580
5581 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5582
5583         * src/SDCCast.c (decorateType): fixed bug #1105626
5584
5585 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
5586
5587         * device/include/asm/pic16/features.h,
5588         * pic18f*.h headers,
5589         * device/include/pic16/adc.h,
5590         * device/include/pic16/delay.h,
5591         * device/include/pic16/i2c.h,
5592         * device/include/pic16/malloc.h,
5593         * device/include/pic16/stdio.h,
5594         * device/include/pic16/stdlib.h,
5595         * device/include/pic16/string.h,
5596         * device/lib/pic16/libc/stdio/printf_tiny.c,
5597         * device/lib/pic16/libc/stdio/printf_small.c,
5598         * device/lib/pic16/libc/stdio/strmgpsim.c,
5599         * device/lib/pic16/libc/stdio/strmmssp.c,
5600         * device/lib/pic16/libc/stdio/strmusart.c,
5601         * device/lib/pic16/libc/stdio/vfprintf.c,
5602         * device/lib/pic16/libc/stdlib/ltoa.c,
5603         * device/lib/pic16/libc/stdlib/putchar.c,
5604         * device/lib/pic16/libc/stdlib/x_ftoa.c,
5605         * device/lib/pic16/libc/stdlib/memchrpgm.c,
5606         * device/lib/pic16/libc/stdlib/memchrram.c,
5607         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
5608         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
5609         * device/lib/pic16/libio/adc/adcbusy.c,
5610         * device/lib/pic16/libio/adc/adcread.c,
5611         * device/lib/pic16/libio/adc/adcsetch.c,
5612         * device/lib/pic16/libio/usart/ubaud.c,
5613         * device/lib/pic16/libio/usart/ubusy.c,
5614         * device/lib/pic16/libio/usart/udrdy.c,
5615         * device/lib/pic16/libio/usart/uopen.c,
5616         * device/lib/pic16/libio/usart/uputc.c,
5617         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
5618         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
5619         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
5620         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
5621         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
5622         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
5623         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
5624         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
5625         specific keywords to double underlined form,
5626         * device/lib/pic16/libc/Makefile.rules,
5627         * device/lib/pic16/libsdcc/Makefile.rules,
5628         * device/lib/pic16/libm/Makefile,
5629         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
5630         to compile with C standard set in Makefile.common
5631         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
5632         rand.c and crc.c in compilation process,
5633         * device/lib/pic16/libsdcc/int/divuint.c,
5634         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
5635         `c' from signed to unsigned,
5636         * device/lib/pic16/startup/crt0.c,
5637         * device/lib/pic16/startup/crt0i.c,
5638         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
5639         keywords to double underlined form, bug fixes in _do_cinit function
5640         which prevented the correct initialization of the .idata segment,
5641         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
5642         core to enter a infinite loop
5643         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
5644
5645 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5646
5647         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
5648
5649 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5650
5651         * device/include/Makefile.in: add support for hc08 subdirectory
5652         * device/include/hc08/: new subdirectory
5653         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
5654         Lucas Loizaga, thanks!
5655         * device/include/hc08/mc68hc908qy.h,
5656         * device/include/hc08/mc68hc908gp32.h,
5657         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
5658         their own directory. Changed internal macro names to use the compiler
5659         reserved namespace. Changed SDCC specific keywords to double
5660         underlined form.
5661         * device/include/math.h,
5662         * device/include/malloc.h,
5663         * device/include/stdarg.h,
5664         * device/include/stdbool.h
5665         * device/include/string.h,
5666         * device/include/tinibios.h,
5667         * device/include/ds400rom.h,
5668         * device/include/8051.h,
5669         * device/include/8052.h,
5670         * device/include/80c51xa.h,
5671         * device/include/at89c55.h,
5672         * device/include/at89S8252.h,
5673         * device/include/at89x51.h,
5674         * device/include/at89x52.h,
5675         * device/include/ds80c390.h,
5676         * device/include/reg764.h,
5677         * device/include/regc515c.h,
5678         * device/include/sab80515.h,
5679         * device/include/mcs51/c8051f000.h,
5680         * device/include/mcs51/c8051f018.h,
5681         * device/include/mcs51/c8051f020.h,
5682         * device/include/mcs51/c8051f040.h,
5683         * device/include/mcs51/c8051f060.h,
5684         * device/include/mcs51/c8051f120.h,
5685         * device/include/mcs51/c8051f300.h,
5686         * device/include/mcs51/c8051f310.h,
5687         * device/include/mcs51/c8051f320.h,
5688         * device/include/mcs51/c8051f330.h,
5689         * device/include/mcs51/c8051f350.h,
5690         * device/include/z180.h: Changed SDCC specific keywords to double
5691         underlined form.
5692
5693 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
5694
5695         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
5696         18F4455,
5697         * (pic16_assignConfigWordValue): disable testing of configuration
5698         register value with config mask,
5699         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
5700         function with port->fun_prefix,
5701         * (genFunction): when generating a naked interrupt function never
5702         create an absolute segment placed in interrupt vector address, place
5703         the actual interrupt function at IVA instead, when an interrupt
5704         function is generated with unspecified interrupt then do not create
5705         the absolute section,
5706         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
5707         code for generating a call to generic pointer get/put function with
5708         a call to function pic16_callGenericPointer(),
5709         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
5710         the call to the generic pointer get/put functions with prefixing the
5711         function name with port->fun_prefix,
5712         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
5713         * src/pic16/main.c (_process_pragma): prefix function with
5714         port->fun_prefix,
5715         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
5716         calling assembler, old 18Fxxxx macro is deprecated,
5717         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
5718         PC_ASMDIR in while condition,
5719         * (findInstruction): add PC_ASMDIR in while condition,
5720         * (buildCallTree): prefix main with port->fun_prefix,
5721         * (pic16_pCode2str): fixed bug that didn't emit the memory access
5722         identifier for variable with banked access in instructions BTFSS,
5723         BTFSC, BCF, BSF, BTG
5724         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
5725         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
5726         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
5727         perform optimization when enviroment variable NO_REG_OPT is set,
5728         * (insideLRBlock): NEW, return 1 if register is inside an
5729         INF_LOCALREGS block,
5730         * (RemoveRegFromLRBlock): remove a register that is completely
5731         eliminated by register optimization, but it is still left in local
5732         register store/restore in/from stack block,
5733         * (Remove2pcodes): after removing register, check to see if it
5734         should be removed from local register store/restore in/from stack
5735         block,
5736         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
5737         DUMMY_READ_VOLATILE,
5738
5739         * device/include/pic16/adc.h: minor prototype modifications and
5740         update,
5741         * device/include/pic16/malloc.h: added GPL notice various
5742         modifications,
5743         * device/include/pic16/stdint.h: NEW, standard header for ints
5744         * device/include/pic16/delay.h: NEW, header for delay functions,
5745         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
5746         delay1mtcy,
5747         * device/include/pic16/signal.h: NEW, header providing helper macros
5748         for implementing signal handlers,
5749         * device/include/pic16/stdio.h: added prototypes for functions,
5750         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
5751         prototypes for stdin and stdout, added macro PUTCHAR to
5752         automatically implement putchar function prototype,
5753         * device/include/pic16/usart.h: modified and updated USART library,
5754         * device/lib/pic16/libio/adc/,
5755         * device/lib/pic16/libio/i2c: some modifications to improve library
5756         performance,
5757         * device/lib/pic16/libc/stdio/: modifications for the new printf*
5758         family of functions,
5759         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
5760         family of functions and other sources,
5761         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
5762         of the PIC18Fxx[28] devices,
5763         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
5764         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
5765         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
5766         _do_cinit function, because the previous failed when local variables
5767         where not placed in the same memory bank,
5768         * device/lib/pic16/libsdcc/char/: various modifications to improve
5769         library performance,
5770         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
5771         information on the new functions of the c library and more...
5772
5773 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5774
5775         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
5776
5777 2005-03-26 Raphael Neider <rneider AT web.de>
5778
5779         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
5780           if condition == CARRY)
5781         * (genCmp): adapted to new genSkipc semantics
5782         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
5783           on rIfx (genCmp was broken)
5784
5785 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5786
5787         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
5788         * src/z80/main.c (_keywords[]),
5789         * src/SDCCglobal.h (struct options),
5790         * src/SDCC.y,
5791         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
5792         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
5793         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
5794         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
5795         always available in leading double underscore form. The C99 support is
5796         mostly missing, but it's a start.
5797         * support/regression/tests/bug-227710.c: fixed nonconforming use of
5798         reserved identifier "__data".
5799
5800 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
5801
5802         * src/mcs51/peeph.def: fixed bug 1170013
5803
5804 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
5805
5806         * device/include/mcs51reg.h: fixed bug 842007
5807
5808 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5809
5810         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
5811         last time.
5812
5813 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5814
5815         * src/port.h (struct PORT),
5816         * src/avr/ralloc.c (avr_assignRegisters),
5817         * src/avr/main.c,
5818         * src/ds390/ralloc.c (ds390_assignRegisters),
5819         * src/ds390/main.c,
5820         * src/hc08/ralloc.c (hc08_assignRegisters),
5821         * src/hc08/main.c,
5822         * src/mcs51/ralloc.c (mcs51_assignRegisters),
5823         * src/mcs51/main.c,
5824         * src/pic/ralloc.c (pic14_assignRegisters),
5825         * src/pic/main.c,
5826         * src/pic16/ralloc.c (pic16_assignRegisters),
5827         * src/pic16/main.c,
5828         * src/xa51/ralloc.c (xa51_assignRegisters),
5829         * src/xa51/main.c,
5830         * src/z80/ralloc.c (z80_assignRegisters),
5831         * src/z80/ralloc.h,
5832         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
5833         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
5834         * src/SDCCcse.h,
5835         * src/SDCCdflow.c (computeDataFlow),
5836         * src/SDCCdflow.h,
5837         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
5838         * src/SDCCloop.h,
5839         * src/SDCCcflow.c (*),
5840         * src/SDCCcflow.h,
5841         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
5842         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
5843         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
5844         immedDom() returning wrong block; probably fixes bug #1160833)
5845
5846 2005-03-20 Borut Razem <borut.razem AT siol.net>
5847
5848         * support/scripts/inc2h.pl: WIN32 port
5849
5850 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
5851
5852         * device/lib/makefile.in: added abs.c and labs.c
5853
5854 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
5855
5856         * device/include/stdint.h: added
5857         * device/lib/abs.c: added
5858         * device/lib/labs.c: added
5859         * device/include/stdlib.h: added abs() and labs() prototypes
5860         * device/lib/libsdcc.lib: added abs and labs
5861         * device/include/float.h,
5862         * device/lib/_fsmul.c,
5863         * device/lib/printf_fast.c,
5864         * device/lib/printf_tiny.c: updated comments
5865
5866 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5867
5868         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
5869         bug #1164313
5870
5871 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5872
5873         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
5874         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
5875
5876 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
5877
5878         * device/lib/printf_large.c: removed inline assembly for portability and
5879           readability. Use printf_fast if speed or size are more important.
5880         * src/pic16/gen.c: removed conditions around use of DEBUGpc
5881         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
5882
5883 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
5884
5885         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
5886         prevent compiler warning
5887
5888 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
5889
5890         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
5891         moved to level 0 and declared as static. Also they are explicit
5892         placed in access bank. This was necessery because some times they
5893         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
5894         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
5895         optimizations. Currently only compare to unsigned char is implemented,
5896         * src/pic16/gen.c: added fReturnIdx array,
5897         * (struct resolvedIfx) is moved to gen.h and made public,
5898         * (struct _G): added sregsAlloc and sregsAllocSet fields,
5899         * (aopForSym): added an optimization to directly store in stack of
5900         the operand of a SEND iCode,
5901         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
5902         but as registers instead (AOP_REG) using the fReturnIdx array,
5903         * (pic16_freeAsmop): remove the freed register from the
5904         _G.sregsAlloc field,
5905         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
5906         a compare of 'WREG',
5907         * (pic16_popGetTempRegCond): changed function prototype, now
5908         function takes also a bitVector argument v which holds the current
5909         set of registers that are allocated for stack access by aopForSym,
5910         registers allocated in aopForSym for accessing stack symbols are not
5911         any more part of the functions usedRegs field,
5912         * (genCall): some times aopOp is called for a stack variable to be
5913         send, aopForSym might perform the push, if this is true make sure
5914         that genCall doesn't push the variable twice by testing _G.resDirect,
5915         * (genFunction): changed testing for unspecified interrupt number
5916         from 256 to INTNO_UNSPEC,
5917         * modified selection scheme of frame pointer generation. Previously
5918         if function did use local registers a frame pointer was generated,
5919         now a frame pointer is generated only if function has arguments
5920         (that need PLUSW2 register access), or has stack arguments, or the
5921         compiler is not instructed to omit the frame pointer,
5922         * (genEndFunction): before restoring local registers that were saved
5923         in the function preamble, also restore the registers that *might*
5924         have been allocated for stack access,
5925         * (genRet): removed some old comments,
5926         * (genCmp, the active (RN's) version): added a call to the
5927         pic16_genCmp_special function to perform the compare with a more
5928         robust and optimized way,
5929         * (genInline): a feature has been added in inline code generation,
5930         which allows a wildcard variable substitution when writing inline
5931         assembly. Code is incomplete and experimental therefore undocumented,
5932         * (genCast): changed order of aopOp for result and right to allow
5933         aopForSym to directly load the result if possible,
5934         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
5935         perform an optimized compare on some selected special occasions,
5936         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
5937         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
5938         generate an IVT any more,
5939         * src/pic16/main.c (pic16_optionsTable): added command line option
5940         --optimize-cmp,
5941         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
5942         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
5943         macros,
5944         * src/pic16/NOTES: Raphael Neider added in list of active developers
5945         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
5946         jumptable_end to prevent bug #,
5947         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
5948         inCond and outCond fields,
5949         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
5950         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
5951         turn off register spilling,
5952         * (packRegsForOneUse): synced with other ports' versions although it
5953         is not used currently,
5954         * (pic16_packRegisters): added an optimization while reading
5955         structure bitfields, some registers may be saved (malloc code is
5956         decreased by 80 bytes)
5957
5958 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
5959
5960         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
5961         left is a bitfield, if yes, then don't optimize assignment. Perhaps
5962         this can be optimized more?
5963
5964 2005-03-10 Raphael Neider <rneider AT web.de>
5965
5966         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
5967           genNearPointerGet): (hopefully) fixed access to bitfields via
5968           pointers (p->bitN = x; and x = p->bitN; failed)
5969
5970 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
5971
5972         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
5973
5974 2005-03-09 Raphael Neider <rneider AT web.de>
5975
5976         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
5977
5978 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
5979
5980         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
5981         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
5982           (regTypeNum): set REG_BIT type if necessary
5983         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
5984         * support/regression/tests/critical.c: check bug 1144613
5985
5986 2005-03-02 Raphael Neider <rneider AT web.de>
5987
5988         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
5989
5990 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5991
5992         * src/avr/ralloc.c (serialRegAssign),
5993         * src/ds390/ralloc.c (serialRegAssign),
5994         * src/hc08/ralloc.c (serialRegAssign),
5995         * src/mcs51/ralloc.c (serialRegAssign),
5996         * src/pic/ralloc.c (serialRegAssign),
5997         * src/pic16/ralloc.c (serialRegAssign),
5998         * src/xa51/ralloc.c (serialRegAssign),
5999         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
6000
6001 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
6002
6003         * src/SDCCast.c (decorateType): fixed bug 1124787
6004
6005 2005-02-20 Hubert Sack <sack AT digiplan.de>
6006         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6007
6008         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
6009         patch #1121755
6010
6011 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6012
6013         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
6014         to keep the correct label reference count when adding/removing references
6015         to labels. A peephole file using this is appended to patch #1144962.
6016
6017 2005-02-14 Raphael Neider <rneider AT web.de>
6018
6019         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
6020         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
6021         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
6022           retrievals of result operand's value on assignment
6023
6024 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
6025
6026         * device/include/pic16/string.h: modified prototype for memccpy()
6027         to memccpy(void *, void *, char, size_t)
6028         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
6029         check whether to omit frame pointer or not,
6030         * (genInline): convert all occurences of "\n" to LF in inline
6031         assembler blocks, this helps formatting the inline text,
6032         * (pic16_loadFSR0): modified prototype,
6033         * (genNearPointerGet, genNearPointerSet): reorganization of code,
6034         removed some 8051 legacy code,
6035         * (genPackBits): enabled handling bitfields exceeding one byte in size,
6036         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
6037         before allocating temporary registers in functions,
6038
6039 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
6040
6041         * support/regression/tests/bitvars.c: corrected the "fix"
6042
6043 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
6044
6045         * support/regression/tests/bitvars.c,
6046         * support/regression/tests/bitwise.c,
6047         * support/regression/tests/rotate.c: "fixed" problems on Alpha
6048
6049 2005-02-10 Raphael Neider <rneider AT web.de>
6050
6051         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
6052           different size for Alpha
6053         * src/pic16/gen.c (genCmpEq) : improved compare with 0
6054
6055 2005-02-09 Raphael Neider <rneider AT web.de>
6056
6057         * src/SDCC.lex(doPragma) : save and restore warning options as well
6058           (also added new stack plus clone- and copyAndFreeSDCCERRG())
6059         * have #pragma less_pedantic set the errorlevel to WARNING
6060           (fixes #1117001)
6061         * (cloneOptimize) : fixed wrong malloc's size
6062         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
6063           facilitate correct handling of #pragma (save|restore)
6064
6065 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
6066
6067         * src/mcs51/gen.c: removed non-standard C nameless struct/union
6068
6069 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
6070
6071         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
6072
6073 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
6074
6075         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
6076
6077 2005-02-02 Raphael Neider <rneider AT web.de>
6078
6079         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
6080         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
6081         * (pic16_storeForReturn): fixed to allow returning function pointers
6082         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
6083         * device/include/pic16/{stddef.h,stdbool.h}: added
6084
6085 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
6086
6087         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
6088
6089 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
6090
6091         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
6092         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
6093          appeared to be required
6094
6095 2005-01-31 Borut Razem <borut.razem AT siol.net>
6096
6097         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
6098           include/mcs51 and include/z80 directories to the package
6099
6100 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6101
6102         * src/hc08/gen.c (genFunction): fixed bug #1112752
6103
6104 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6105
6106         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
6107
6108 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6109
6110         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
6111
6112 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
6113
6114         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
6115
6116 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
6117
6118         * device/include/c8051fxxx.h: removed these 6 files
6119         * device/include/mcs51/c8051fxxx.h: added these 11 new files
6120
6121 2005-01-26 Raphael Neider <rneider AT web.de>
6122
6123         * src/pic16/gen.c (genAssign): fixed assignment from longs
6124           in codespace (were cut to three bytes)
6125         * (genDummyRead): implemented (except for CODESPACE...),
6126           fixed bug #1108575
6127         * src/pic16/glue.c (emitStatistics): beautified
6128         * device/lib/pic16/libm/Makefile: added include path
6129
6130 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6131
6132         * src/z80/gen.c (aopPut): fixed bug #1103902
6133
6134 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6135
6136         * device/lib/expf.c: fixed bug #1095792
6137
6138 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
6139
6140         * device/lib/pic16/libm: added Math library sources
6141
6142 2005-01-24 Raphael Neider <rneider AT web.de>
6143
6144         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
6145           to enable upcast to pCodeOpReg2 (there is no type tag to
6146           differenciate the two and pic16_popGet2p cast into PCOR2)
6147         * src/pic16/main.c (_process_pragma): fixed another malloc bug
6148           (sizeof(sectNames) changed to sizeof(sectName))
6149           Both patches fix segfaults under MinGW.
6150
6151 2005-01-23 Raphael Neider <rneider AT web.de>
6152
6153         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
6154           Safe_[mc]?alloc()'ed variables
6155         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
6156           of (byte sized) temporaries (assign them to WREG for now)
6157         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
6158           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
6159           this might fix SIGSEGVs on MinGW...
6160         * src/SDCCopt.c (killDeadCode): restored original behaviour
6161           (volatile operands might get thrown away though)
6162
6163 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
6164
6165         * src/pic16/gen.c: fixed bug #1106975,
6166         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
6167         pointer update, INTCON is saved, global interrupts are disabled and
6168         restored after updateing TOS.
6169         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
6170         * added function attribute 'shadowregs' to take advantage of shadow
6171         registers,
6172         * added function attribute 'wparam' as an alternative to the wparam
6173         pragma,
6174         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
6175         user declares a non-ISR function as 'shadowregs',
6176         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
6177
6178 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
6179
6180         * .version: bumped version number to 2.4.8
6181         * device/lib/pic16/pics.all: list of PIC18F devices supported by
6182         pic16 port,
6183         * device/lib/pic16/libio/i2c/: I2C module support library,
6184         * device/include/pic16/i2c.h: I2C support library header,
6185         * device/lib/pic16/libc/stdio/: standard IO support sources,
6186         * (printf_small.c): printf_small() source, supports float print,
6187         * (printf_tiny.c): printf_tiny() source, does not support floats,
6188         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
6189         enable global optimizations for entire library source, other
6190         Makefiles in the source tree are also modified to reflect this,
6191         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
6192         function,
6193         * doc/sdccman.lyx: updated to reflect new changes,
6194         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
6195         sym->onStack if-case,
6196         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
6197         sbit, idata, _idata, xdata, _xdata,
6198         * added pragma library, to link an external library, (see doc),
6199         * removed command line options, --pomit-config-words, --pomit-ivt,
6200         --pleave-reset-vector,
6201         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
6202         when calling assembler to reflect memory model used, also define
6203         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
6204         reflect stack model used,
6205         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
6206         on stack return NULL,
6207
6208 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
6209
6210         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
6211           of the operands is volatile. Fixes #1020220
6212
6213 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
6214
6215         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
6216         * (OptimizeRegUsage): make sure that there is really no other flow where
6217           the first pCode is used
6218
6219 2005-01-22 Raphael Neider <rneider AT web.de>
6220
6221         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
6222           to fix #1106967 (pCode->seq are not set up correctly)
6223
6224 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6225
6226         * src/SDCCglue.c (glue): make sure code area is declared before the
6227         static initialization area.
6228
6229 2005-01-21 Raphael Neider <rneider AT web.de>
6230
6231         * device/lib/Makefile.in: fixed test for pic16 install dir
6232         * device/lib/pic16/*/Makefile*: modified compile flags to enable
6233           optimizations
6234         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
6235           added --optimize-goto compiler switch and pragma wparam documentation
6236         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
6237         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
6238           and PRODH closing bug #1071770 (peephole optimizer)
6239
6240 2005-01-19 Raphael Neider <rneider AT web.de>
6241
6242         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
6243           cmdLine buffers (used when calling sdcpp...) are large enough
6244           (MAX_PATH=256 truncates arguments leading to system halts when
6245           used in MinGW...)
6246         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
6247         * (genUminus): rewritten to for efficiency
6248         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
6249           used uninitialized in some cases)
6250         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
6251           copy the third byte from the int -- now assumes 0x80 (data memory)
6252         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
6253           operands (genAddLit expects the iCode's operands to swapped as
6254           well), fixed leftover bytes (crashed for short left operands)
6255         * (pic16_genMinusDec): performance improvements, removed false
6256           PIC14 emitSKPNCs
6257         * (pic16_genMinus): fixed to cope with differently sized operands
6258         * src/pic16/glue.c (pic16_glue): added new banksel optimization
6259           for --obanksel > 1
6260         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
6261         * src/pic16/graph.[ch]: implementation of directed graphs, used by
6262           new banksel optimization
6263         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
6264           analysis for temporary registers (segfaults...)
6265         * src/pic16/peeph.def: added rule
6266
6267 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
6268
6269         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
6270         which converts a float number to its ASCII representation
6271         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
6272         functions to convert the fractional and integer part of a float to ASCII,
6273         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
6274         realloc.c): added _MALLOC_SPEC to explicit place variables in data
6275         ram
6276         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
6277         _STATMEM macros,
6278         * device/include/pic16/adc.h: added GPL info,
6279         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
6280         a pCodeOp as tested operand,
6281         * (genNearPointerGet): optimized bit testing, does not use
6282         intermediate register for bit value, test directly instead with
6283         BTFSS, BTFSC, works only for single bits,
6284         * (genpic16Code): dump the name of the iCode in the asm,
6285         * src/pic16/ralloc.c (decodeOp): removed static declaration and
6286         renamed to pic16_decodeOp,
6287         * (serialRegAssign): do not allocate a temporary register for iCode
6288         sequences that test a single bit for 1/0
6289
6290 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
6291
6292         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
6293         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
6294         access stack and frame pointers. They are initially assigned to
6295         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
6296         accessing SFRs. Updated all occurences of modification of stack or
6297         frame pointer in gen.c and pcode.c,
6298         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
6299         assigning of a literal value to pointers,
6300         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
6301         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
6302         selected
6303
6304 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
6305
6306         * doc/sdccman.lyx: update documentation about stack pragma, added
6307         some info for stack memory models
6308
6309 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6310
6311         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
6312
6313 2005-01-08 Raphael Neider <rneider AT web.de>
6314
6315         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
6316           udata sections to fix bug #1097823
6317
6318 2005-01-05 Raphael Neider <rneider AT web.de>
6319
6320         * src/pic16/gen.c (genGenericShift): added handling of differently
6321           sized left operand and result
6322
6323 2005-01-04 Raphael Neider <rneider AT web.de>
6324
6325         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
6326         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
6327           to hold the condition bit)
6328         * added new version of genCmp (old code available via #define)
6329         * added new version of genShiftLeft/genShiftRight in a generic
6330           way, now supports shifting by negative values
6331         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
6332           shiftCount (expected by genGenericShift)
6333         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
6334         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
6335           dump
6336         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
6337           is an invalid literal too...)
6338
6339 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
6340
6341         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
6342         from Raphael Neider,
6343         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
6344         for 8-bit literals. This fixes some literal operands which are sign
6345         extended to 16-bits ints when instruction needs only 8-bits.
6346
6347 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
6348
6349         * device/lib/logf.c: added mcs51 assembly version
6350         * device/lib/expf.c: added mcs51 assembly version
6351         * device/lib/_logexpf.c: new shared asm code for expf and logf
6352         * device/include/math.h: add defines for assembly math library
6353         * device/lib/Makefile.in: build new _logexpf.c
6354         * device/lib/libfloat.lib: use new _logexpf.c
6355
6356 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
6357
6358         * src/pic/device.c
6359         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
6360           device types which have less than 0x7f registers.
6361
6362 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
6363
6364         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
6365
6366 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
6367
6368         * device/lib/printf_fast.c: only build on supported arch.
6369         * device/lib/printf_tiny.c: only build on supported arch.
6370         * device/lib/printf_fast_f.c: only build if asm float lib
6371         * device/lib/_fsget1arg.c: only build if asm float lib
6372         * device/lib/_fsget2args.c: only build if asm float lib
6373         * device/lib/_fsnormalize.c: only build if asm float lib
6374         * device/lib/_fsreturnval.c: only build if asm float lib
6375         * device/lib/_fsrshift.c: only build if asm float lib
6376         * device/lib/_fsswapargs.c: only build if asm float lib
6377         * device/include/stdio.h: don't provide print_fast,
6378           print_fast_f, print_tiny prototypes if --xstack used
6379
6380 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
6381
6382         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
6383         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
6384           to the SOURCES
6385
6386 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
6387
6388         * device/lib/printf_fast_f.c: same as printf_fast, but
6389           with floating point enabled
6390         * device/lib/printf_fast.c: minor tweaks
6391         * device/include/stdio.h: add printf_fast_f
6392
6393 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
6394
6395         * src/SDCCmain.c: make --float-reent default for mcs51
6396         * device/lib/_fsadd.c: added mcs51 assembly version
6397         * device/lib/_fssub.c: added mcs51 assembly version
6398         * device/lib/_fsmul.c: added mcs51 assembly version
6399         * device/lib/_fsdiv.c: added mcs51 assembly version
6400         * device/lib/_fseq.c: added mcs51 assembly version
6401         * device/lib/_fsneq.c: added mcs51 assembly version
6402         * device/lib/_fsgt.c: added mcs51 assembly version
6403         * device/lib/_fslt.c: added mcs51 assembly version
6404         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
6405         * device/lib/Makefile.in: add _fscmp to build
6406         * device/lib/libfloat.lib: add _fscmp to build
6407
6408 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
6409
6410         * device/lib/_fs2slong.c: added mcs51 assembly version
6411         * device/lib/_fs2sint.c: added mcs51 assembly version
6412         * device/lib/_fs2schar.c: added mcs51 assembly version
6413         * device/lib/_fs2ulong.c: added mcs51 assembly version
6414         * device/lib/_fs2uint.c: added mcs51 assembly version
6415         * device/lib/_fs2uchar.c: added mcs51 assembly version
6416         * device/lib/_slong2fs.c: added mcs51 assembly version
6417         * device/lib/_sint2fs.c: added mcs51 assembly version
6418         * device/lib/_schar2fs.c: added mcs51 assembly version
6419         * device/lib/_ulong2fs.c: added mcs51 assembly version
6420         * device/lib/_uint2fs.c: added mcs51 assembly version
6421         * device/lib/_uchar2fs.c: added mcs51 assembly version
6422         * device/include/float.h: added #define to select asm vs c
6423
6424 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
6425
6426         * device/lib/printf_fast.c: improvements to float output
6427         * device/include/float.h: add defines for assembly float library
6428         * device/lib/_fsget1arg.c: receive 1 float arg
6429         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
6430         * device/lib/_fsnormalize.c: normalize a float
6431         * device/lib/_fsreturnval.c: return float, various helper routines
6432         * device/lib/_fsrshift.c: right shift a float's mantissa
6433         * device/lib/_fsswapargs.c: swap 2 floats
6434         * device/lib/Makefile.in: build these 6 new files for mcs51
6435         * device/lib/libfloat.lib: add these 6 files to the library
6436
6437 2004-12-26 Borut Razem <borut.razem AT siol.net>
6438
6439         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
6440           built by gcc 3.4.2
6441
6442 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
6443
6444         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
6445           and fully reentrant and register bank neutral.
6446         * device/lib/printf_fast.c: added float (not enabled by default),
6447           added compact/slower integer (also not enabled by default),
6448           improved size/speed of fast integer code, other minor changes
6449         * device/include/stdio.h, device/lib/Makefile.in,
6450           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
6451
6452 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
6453
6454         * src/pic16/pcode.c: declaring variables other than at the start of a
6455           block is not supported in C by VC6.
6456
6457 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
6458
6459         * applied a previous patch from Raphael Neider that wasn't included
6460         in the previous commits, which fixes infinite loops within jumptable
6461         improvements,
6462         * made some fixes that previous patches introduced
6463
6464 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
6465
6466         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
6467         that fixes an issue with AOP_PCODE asmop's offset,
6468         * (pic16_popCopyReg): update instance field too,
6469         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
6470         function of pic port,
6471         * (genCmp, genAnd, genAssign),
6472         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
6473
6474 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
6475
6476         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
6477         variables initial values to idata section,
6478         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
6479         variables in some functions. This utilizes parmBytes field of iCode
6480         structure to hold the offset of the variable in stack. (might be
6481         able to use the stack field too?)
6482         * applied patch from Raphael Neider # ### , # ###
6483         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
6484         variable initial values in idata section,
6485         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
6486         for static variables with initial value
6487         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
6488         applied fix in while loop from Raphael Neider.
6489
6490 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
6491
6492         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
6493         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
6494         * src/ds390/ralloc.c (serialRegAssign): spill bits
6495         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
6496         * support/Util/SDCCerr.c,
6497         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
6498         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
6499         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
6500
6501 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
6502
6503         * device/include/sdcc-lib.h: inserted LGPL, added includes
6504           asm/ds390/features.h and asm/mcs51/features.h
6505         * device/include/asm/default/features.h,
6506         * device/include/asm/gbz80/features.h,
6507         * device/include/asm/z80/features.h: added empty _AUTOMEM
6508           and _STATMEM
6509         * device/include/asm/ds390/features.h,
6510         * device/include/asm/mcs51/features.h: added files with defines for
6511           _AUTOMEM and _STATMEM indicating automatic and static storage class
6512         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
6513         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
6514         * src/SDCCicode.c (geniCodeCast),
6515         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
6516         * src/SDCCloop.c (loopInduction): removed unused variable lr
6517         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
6518           to convertToFcall to include char modulo (RFE 1065037), added check
6519           if left operand is unsigned and use abs of literal value
6520         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
6521           as it doesn't work after conversion from peephole.def to peephole.rul
6522         * src/mcs51/gen.c (toBoolean): added check for size,
6523           (genModOneByte): optimized code for signed char modulo a literal
6524           power of 2 (thanks to Hubert Sack),
6525           (genRRC): removed unnecessary "clr c",
6526           (genRLC): replaced "add a,acc" with cheaper "rlc a"
6527         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
6528           jump optimization,
6529           swapped rules 256.c and 256.d,
6530           extended 256.d by using new multiple checks (thanks Erik),
6531           added rules 256.e and 256.f,
6532           updated rule 261.a and 261.b to new generated code
6533         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
6534
6535 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6536
6537         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
6538           induction related bugs, including first part of bug #1074377
6539
6540 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
6541
6542         * applied patch from bug-report #1076292,
6543         * applied patches for genAnd and Goto-optimizations for Raphael
6544         Neider,
6545         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
6546         dump a less iCode information,
6547         * src/pic16/device.h (pic16_options_t): added field debgen,
6548         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
6549         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
6550         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
6551         puclic,
6552         * (various functions): added macros FENTRY and FENTRY2 to functions,
6553         to emit function prologue,
6554         * (various functions): fixed indentation,
6555         * (genNearPointerGet): fixed loading of FSR0,
6556         * (genPackBits): applied patch from Raphael Neider to fix updating
6557         of FSR0 and touching only the modified bits,
6558         * src/pic16/genarith.c (various functions): added macros FENTRY to
6559         emit function prologue in comments,
6560         * src/pic16/pcode.h: added functions debugf2, debugf3,
6561         * src/pic16/ralloc.c: partial fix for packForPush caused
6562         segmentation fault,
6563
6564 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6565
6566         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
6567           <stsp AT users.sourceforge.net> with reversed byte order
6568         * support/regression/tests/rotate.c: added (ds390 skips some tests)
6569
6570 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6571
6572         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
6573           bug #1074377
6574         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
6575         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
6576
6577 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
6578
6579         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
6580
6581 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6582
6583         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
6584           conditions,
6585           (setFromConditionArgs): friendly operand parser for peephole rules,
6586           (operandBaseName, operandsNotRelated): new peephole condition
6587           "operandsNotRelated" -- similar to "operandsNotSame", but takes
6588           architecture specific register naming into account, handles n-way
6589           comparisons, and supports quoted literals
6590         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
6591
6592 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6593
6594         * src/mcs51/peeph.def: fixed bug #1076940
6595
6596 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
6597
6598         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
6599
6600 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6601
6602         Adding support for replacing ljmps with sjmps in jumptables
6603         generated for switch statements. For now you need to set the
6604         environment variable SDCC_SJMP_JUMPTABLE to enable this.
6605         Now 4 algorithms for mcs51 jumptable generation are used:
6606         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
6607         addresses loaded pc-relative for up to 112 cases and stack-pushing
6608         target addresses loaded with offset from dptr for up to 256 cases.
6609
6610         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
6611         * src/mcs51/main.c: adapted constants for switch table generation
6612         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
6613
6614 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
6615
6616         * device/lib/printf_large.c (_print_format): fixed bug 1073386
6617         * support/regression/tests/bug1057979.c: added test for bug 1073386
6618
6619 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
6620
6621         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
6622         compilers
6623
6624 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
6625
6626         * src/pic16/device.h,
6627         * src/pic16/genarith.c,
6628         * src/pic16/glue.c,
6629         * src/pic16/main.c,
6630         * src/pic16/pcode.c: applied patches #1068154 and #1070213
6631
6632 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
6633
6634         Large cummulative patch for pic16 port.
6635         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
6636         to call when a stack overflow occurs,
6637         * (malloc.h): added CVS Id tag,
6638         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
6639         variable,
6640         * added libc directory. The current version of LibC contains string
6641         functions, ctype functions and macros and some functions of the
6642         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
6643         be extensively tested in the future. Standard disclaimer here.
6644         Library is not automatically build yet. But one can build it by
6645         invoking 'make' inside the libc directory.
6646         * added ADC library under libio. Preliminary version yet.
6647
6648         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
6649         * src/pic16/gen.c (aopForRemat): asmop size is filled by
6650         aopForRemat() now and not by pic16_aopOp(),
6651         * (pic16_popGetTempReg): removed warning messgae when allocating
6652         temporary registers, its a buggy feature and will be removed,
6653         * (pic16_popGet): set register instance field in AOP_CRY,
6654         * (pic16_outBitC): fixed for results in size greater than 1,
6655         * (genUminusFloat): fixed for pic16, ported code from mcs51,
6656         * (pic16_storeForReturn): optimized return of 0,
6657         * (genCmp): experimental code for new genCmp which uses PIC18's
6658         special compare&skip instructions. Initial tests fail some times
6659         with variables grater than 1 byte in size, so new code is disabled,
6660         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
6661         a single bit,
6662         * (genCast): began a fix to optimize the casting of a bit to another
6663         bit, now assigning a bitfield to another bitfield will fail, sorry,
6664         * src/pic16/main.c: disabled the use of lr-support feature,
6665         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
6666         * added some function prototypes, added function _debugf prototype,
6667         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
6668         bits with offset (case PO_GPR_BIT),
6669         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
6670         command line,
6671         * (isBankInstruction): modified to return 0 for no banking instruction,
6672         and 1 for banking instruction,
6673         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
6674         caused stop processing pCodes after a inline assembly block,
6675         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
6676         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
6677         registers when it shouldn't,
6678         * src/pic16/ralloc.c (allocReg): add preliminary support for
6679         supporting a limited set of temporary registers,
6680
6681 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6682
6683         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
6684           genDataPointerSet): ensure assignments always copy in MSB to LSB
6685           order,
6686           (loadRegFromAop): recognize CLRH optimization,
6687           (genFunction): optimize RECEIVE iCodes in reentrant functions
6688
6689 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6690
6691         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
6692           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
6693           selected.
6694         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
6695         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
6696           contiguous with data
6697
6698 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6699
6700         * device/lib/_gptrget.c (_gptrget),
6701         * device/lib/_gptrgetc.c (_gptrgetc),
6702         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
6703           instead of sjmp to ret
6704         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
6705           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
6706
6707 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
6708
6709         * .version: bumped version to 2.4.7
6710         * device/lib/_gptrget.c (_gptrget): is now _naked
6711         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
6712         * device/lib/_gptrput.c (_gptrput): is now _naked
6713         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
6714           (createFunction): fixed xstack
6715         * src/SDCCglue.c (emitMaps): set allocation required for bit area
6716         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
6717           or bit either,
6718           (geniCodeCritical): store original interrupt state in an iTemp bit
6719           var unless stack-auto
6720         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
6721         * src/SDCCmain.c (setIncludePath): added include/target to search path
6722         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
6723         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
6724           prototype,
6725           (processFuncArgs): put bit vars in bit area
6726         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
6727           unsaveRBank): fixed xstack,
6728           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
6729           (genFunction, genEndFunction): fixed xstack,
6730           (genAssign): optimization don't walk backwards through mem
6731         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
6732         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
6733         * support/regression/Makefile: also make library (for stack-auto) when
6734           making "all" and added "test-mcs51-xstack-auto"
6735         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
6736         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
6737         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
6738         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
6739         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
6740           make-library by MAKE_LIBRARY
6741         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
6742           regression tests for xstack
6743         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
6744         * support/regression/tests/critical.c: test for critical on mcs51
6745
6746 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6747
6748         * support/regression/ports/ucz80/spec.mk: use include and lib files from
6749           built version of sdcc instead of installed version
6750
6751 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
6752
6753         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
6754         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
6755           vprintf.c now
6756         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
6757         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
6758           WARNING: remove device/lib/build/z80/printf.o by hand when
6759           updating from previous build!
6760         * device/lib/z80/printf.c: updated comment
6761         * support/regression/tests/bug1057979.c: test all ports now
6762         * support/regression/tests/bug1065458.c: file added
6763
6764 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6765
6766         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
6767           *_start and *_end symbols for static functions
6768
6769 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
6770
6771         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
6772           and search crt0.o in all library paths,
6773           (setIncludePath): proper handling of --nostdinc,
6774           (setLibPath): proper handling of --nostdlib
6775         * support/regression/Makefile,
6776         * support/regression/ports/ds390/spec.mk,
6777         * support/regression/ports/gbz80/spec.mk,
6778         * support/regression/ports/hc08/spec.mk,
6779         * support/regression/ports/mcs51/spec.mk,
6780         * support/regression/ports/mcs51-large/spec.mk,
6781         * support/regression/ports/mcs51-stack-auto/spec.mk,
6782         * support/regression/ports/z80/spec.mk: use include and lib files from
6783           built version of sdcc instead of installed version
6784         * doc/sdccman.lyx: fixed typo in --nostdinc
6785
6786 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
6787
6788         * src/pic/pcode.c,
6789         * src/pic/device.c,
6790         * src/pic/ralloc.c,
6791         * src/pic/gen.c : added support to generate code for struct bit fields.
6792
6793 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
6794
6795         * as/xa51/xa_version.h,
6796         * device/include/errno.h,
6797         * device/include/regc515c.h,
6798         * device/lib/_itoa.c,
6799         * device/lib/_ltoa.c,
6800         * device/lib/ser_ir_cts_rts.c,
6801         * sim/ucsim/xa.src/glob.cc,
6802         * sim/ucsim/xa.src/inst_gen.cc,
6803         * sim/ucsim/xa.src/xa_bit.cc,
6804         * sim/ucsim/xa.src/xa_sfr.cc,
6805         * sim/ucsim/z80.src/inst_dd.cc,
6806         * sim/ucsim/z80.src/inst_fdcb.cc,
6807         * support/scripts/keil2sdcc.pl,
6808         * src/pic16/pic16.dsp,
6809         * src/pic16/pic16a.dsp: corrected cvs line endings
6810         * device/lib/printf_large.c: fixed bug 1057979
6811         * src/pic16/gen.c: fixed non-C standard code
6812         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
6813         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
6814         * support/regression/ports/mcs51/support.c: reload T1 asap
6815         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
6816           pdata use and clear idata startup behaviour
6817         * support/regression/tests/bug1057979.c: added
6818
6819 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
6820
6821         * device/examples/ds390/ow390/ad26.h,
6822         * device/examples/ds390/ow390/cnt1d.h,
6823         * device/examples/ds390/ow390/crcutil.c,
6824         * device/examples/ds390/ow390/ownet.h,
6825         * device/examples/ds390/ow390/owsesu.c,
6826         * device/examples/ds390/ow390/swt12.h,
6827         * device/examples/ds390/ow390/swtoper.c,
6828         * device/examples/ds390/ow390/temp10.h,
6829         * device/examples/ds390/ow390/thermodl.c,
6830         * device/examples/ds390/tinitalk/tinitalk.dsp,
6831         * device/examples/ds390/tinitalk/tinitalk.dsw,
6832         * device/examples/mcs51/clock/hw.h,
6833         * device/examples/mcs51/simple2/go.bat,
6834         * device/examples/serialcomm/windows/serial.h,
6835         * device/examples/xa51/dummy.c,
6836         * device/examples/xa51/hello.c,
6837         * device/include/80c51xa.h,
6838         * device/include/at89x051.h: corrected cvs line endings
6839
6840 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
6841
6842         * src/pic16/main.c (options): added command line --gstack, to trace
6843         stack over/under flows,
6844         * added pragma 'wparam' to allow passing first byte of function
6845         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
6846         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
6847         call to __gstack_test function and sets up the symbol as extern,
6848         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
6849         * popaop): added call to pic16_testStackOverflow,
6850         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
6851         wparamList list,
6852         * (genCall, genPcall): now all parameters are passed via stack
6853         except in functions that are pass to wparam pragma in which WREG is
6854         used too,
6855         * (genPcall): REENTRANT flag is checked to see if variable prototype
6856         contains reentrant keyword, don't call a non-reentrant function, via
6857         a reentrant function pointer or vice versa, functions are never
6858         passed via WREG,
6859         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
6860         D.Winkler,
6861         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
6862         SIGSEGV when accessing a NULL register stucture,
6863         * (pic16_printGPointerType): modified to handle UPPER modifier for
6864         function initializers, changed prototype of function to simpler one,
6865         * (pic16_printIvalFuncPtr): check to see if function is already
6866         added in externs list,
6867         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
6868         optimized a move from W to SFR with a move to the same register
6869         later after a CALL,
6870         * device/lib/pic16/debug: NEW directory, contains debug features
6871         which are enabled when linking with libdebug.lib, currently command
6872         line option --gstack enables stack pointer tracing for over/under
6873         flow, corresponding sources are in debug/gstack
6874
6875 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
6876
6877         * doc/sdccman.lyx: updated SDCC version,
6878         * (PIC16 port): update list of command line options,
6879         * src/pic16/device.h (structure pic16_options_t): added field gstack
6880         to enable stack overflow tracing on push/pops,
6881         * src/pic16/device.c (statistics structure): added statistics
6882         structure,
6883         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
6884         pic16_dump_int_registers): increase statistics counters for each
6885         * variable which is encountered
6886         * (pic16_dump_usection): emit each .udata variable to its own udata
6887         section,
6888         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
6889         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
6890         parameters via stack, otherwise use old scheme,
6891         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
6892         assembler output file,
6893         * src/pic16/main.c: added command line options --gstack to enable
6894         push/pop tracing for stack overflow,
6895         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
6896         instructions): added size of each instruction,
6897         * (pic16_countInstruction): estimate size of instructions in
6898         the_pFile list, inline assembly blocks are not counted,
6899         * (pic16_FixRegisterBanking): trace previous register usage, when
6900         banksel optimizations is greater than 0, don't emit a redudant
6901         banksel directive,
6902
6903 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
6904
6905         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
6906         * src/pic16/ralloc.c : applied same fix for pic16.
6907         * src/pic/gen.c : tidied it up a little.
6908
6909 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6910
6911         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
6912         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
6913
6914 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6915
6916         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
6917
6918 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6919
6920         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
6921         non-reentrant function __modsint in the interrupt function (thus
6922         corrupting math operations during serial I/O)
6923         * device/lib/ser_ir.c: as above, changed buffersize
6924         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
6925         256.c,d for zeroing
6926         * doc/Makefile: added option -t for rsync
6927
6928 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6929
6930         * src/SDCCast.h (struct ast),
6931         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
6932
6933 2004-10-20 Borut Razem <borut.razem AT siol.net>
6934
6935         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
6936         package
6937
6938 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
6939
6940         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
6941         makefile targets,
6942         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
6943         support functions to replace long sequences of MOVFF's from access
6944         bank registers to stack and vice versa,
6945         * src/pic16/device.h: added new field opt_flags, where optimization
6946         flags can be set to enable certain features,
6947         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
6948         * pBlock, (genFunction, genEndFunction): surroung loop for
6949         saving/loading used registers in stack with PC_INFO pCodes,
6950         INF_LREGS. Code in between can then be optimized by pCode optimizer
6951         to support function calls,
6952         * (genDataPointerSet): fixed bug which loaded float fields in
6953         structures with corrupt data,
6954         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
6955         in a standard way debug info on stderr. Feature used for developing
6956         and debugging only,
6957         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
6958         obsolete chunks of code,
6959         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
6960         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
6961         * pic16/src/pcode.c (pic16_newpCodeInfo,
6962         * (pic16_newpCodeOpLocalRegs),
6963         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
6964         feature,
6965         * (pic16_pCodeConstString): printing of the initial value of a
6966         symbol as a comment is inhibited since parsing was already done by
6967         copyStr and output is corrupt,
6968         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
6969
6970 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6971
6972         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
6973
6974 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
6975
6976         * as/mcs51/lkarea.c: removed old K&R style,
6977           (lnksect): changed check on boundary error,
6978           (lnksect2): changed check on boundary error,
6979           (lnksect2): extend XSTK to end of page if size = 1
6980         * as/mcs51/lkmain.c: removed old K&R style,
6981           (Areas51): create l_IRAM symbol
6982         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
6983         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
6984           model-mcs51-stack-auto, added model-mcs51-xstack-auto
6985         * device/lib/_mullong.c: added version to be compiled with xstack
6986         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
6987         * device/lib/mcs51/crtxclear.asm: clear pdata as well
6988         * device/lib/mcs51/crtxstack.asm: fixed comment
6989         * src/SDCCglue.c: maxInterrupts defaults to 0,
6990           (emitMaps): added pdata,
6991           (createInterruptVect): (re)moved default,
6992           (glue): added pdata,
6993           (glue): moved __start__xstack to XSTK with default size 1
6994         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
6995           and options.float_rent when options.stackAuto is set,
6996           (linkEdit): only write XDATA_NAME if provided on command line
6997         * src/SDCCmem.h,
6998         * src/SDCCmem.c: added pdata
6999         * src/port.h: added pdata_name to PORT
7000         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
7001           (saveRegisters, unsaveRegisters): removed usage of B,
7002           (genMinus): fixed accumulator clash,
7003           (genJumpTab): added comment, this needs another look
7004         * src/mcs51/gen.c: added check for "B in use" paranoia,
7005           added pushB() and popB()
7006         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
7007           chance
7008         * src/avr/main.c,
7009         * src/ds390/main.c,
7010         * src/hc08/main.c,
7011         * src/mcs51/main.c,
7012         * src/pic/main.c,
7013         * src/pic16/main.c,
7014         * src/xa51/main.c,
7015         * src/z80/main.c: (reset_regparms) made void parameter explicit and
7016           added PSEG (PAG,XDATA) or NULL to port specifier
7017         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
7018         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
7019           (_mcs51_genInitStartup): removed __start__xstack equ,
7020           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
7021         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
7022         * src/z80/gen.c (_rleAppend): fixed warnings
7023         * support/regression/tests/zeropad.c: added pdata test
7024         * .version: bumped to 2.4.6
7025
7026 2004-10-17 Borut Razem <borut.razem AT siol.net>
7027
7028         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
7029         as a part of nightly build
7030
7031 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
7032
7033         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
7034         WREG holds the first byte function parameters,
7035         * (aopForSym): take special case for symbols which are in FARSPACE
7036         but in CODESPACE too,
7037         * (assignResultValue): modified to take into account _G.useWreg,
7038         * (genCall): don't use wreg for parameter passing when function is
7039         declared as reentrant, too, added optimization INCF to stack
7040         pointer when stack parameter count is 1,
7041         * (genFunction, genEndFunction): refurnished and fixed to not using
7042         wreg for passing parameters when function has varargs or is
7043         reentrant, fixed bug with symbol name compare for generating
7044         functions in absolute address,
7045         * (pic16_storeForReturn): refurnished,
7046         * (genCmp): began writing a new version of the function, not ready
7047         yet, therefore it is disabled,
7048         * (genAssign): do not read code memory when assigning a function to
7049         a pointer function,
7050         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
7051         array of characters, not pointer,
7052         * (pic16initialComments): in debug mode emit an .ident directive for
7053         the assembler,
7054         * (_process_pragma): emit a new warning type (internal to pic16)
7055         when setting stack to default length, emit a similar warning when
7056         placing a function at absolute address and address is not word aligned
7057         * (_pic16_parseOptions): added 'return TRUE' statement,
7058         * (_pic16_linkEdit): if compiling a source, then add the source's
7059         file object, first in the list of objects to link,
7060
7061 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
7062
7063         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
7064         * src/pic/main.c : removed VC warning.
7065         * src/pic/gen.c : changed comment.
7066
7067 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
7068
7069         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
7070         reference to a deprecated symbol _GPTRREG was causing failure to
7071         link. Thanks G. M. Gallant for the info.
7072
7073 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
7074
7075         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
7076         comments for Bugs item #954788.
7077
7078 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
7079
7080         * src/pic16/device.c (pic16_dump_gsection,
7081         * pic16_groupRegistersInSection): handle symbols declared to be in
7082         access bank differently,
7083         * src/pic16/gen.c (struct _G): added field resDirect,
7084         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
7085         send values read from stack directly to result and don't allocate
7086         temporary values,
7087         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
7088         same registers,
7089         * (pic16_sameRegsOfs): NEW,
7090         * (freeAsmop): if _G.resDirect is set then do not mark registers as
7091         free because they were not allocated from temporary pool,
7092         * pic16_popRegFromString): workaround to fix a problem with
7093         allocating variables twice or never,
7094         * (genGenPointerGet): using PRODL instead of FSR0H,
7095         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
7096         instead of FSR0H,
7097         * (genAssign): take advantage of the _G.resDirect flag,
7098         * (genCast): around line 11844, use mov2f instead of directly
7099         MOVFF'ing between operands to account for literal values,
7100         * src/pic16/genutils.c: some new debug functions for gpsim have been
7101         added,
7102         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
7103         float with integer part only,
7104         * src/pic16/main.c (_process_pragma): handle pragma udata access to
7105         place variables in access bank
7106         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
7107         updated sources to reflect recent changes in gen.c
7108
7109 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
7110
7111         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
7112         sources that searched for headers in installation path, now the
7113         device/include/pic16 is used,
7114         * src/pic16/glue.c (pic16glue),
7115         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
7116         .line directives if not in debug mode, this suppresses assembler's
7117         warnings for ignored directives
7118
7119 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
7120
7121         * src/port.h: made reset_regparms prototype void parameter explicit.
7122         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
7123         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
7124         * doc/sdccman.lyx: documented warning disabling and how to use
7125           printf_large to make it print floats.
7126         * device/include/stdbool.h: NEW
7127         * device/lib/_atof.c,
7128         * device/lib/_divuint.c,
7129         * device/lib/_divulong.c,
7130         * device/lib/expf.c,
7131         * device/lib/printf_large.c,
7132         * device/lib/sincosf.c,
7133         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
7134         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
7135           a completely reentrant lib.
7136
7137 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
7138
7139         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
7140         * device/include/pic16/stdio.h: fixed bug with colon
7141
7142 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
7143
7144         * device/include/pic16/stdio.h,
7145         * device/include/pic16/stdlib.h,
7146         * device/include/pic16/math.h: NEW
7147         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
7148         declared as _naked to reduce overhead
7149         * device/lib/Makefile.in (target port-specific-objects-pic16):
7150         changed * to *.* so to ignore the CVS directory,
7151         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
7152         stacked variables back in stack,
7153         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
7154         corruption
7155
7156 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
7157
7158         * .version: bumped version number to 2.4.5
7159         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
7160         * support/Util/SDCCerr.c (messages structure): added entry for
7161         W_POSSBUG2
7162
7163         Large cumulative patch for pic16 port and libraries.
7164         * device/include/pic16/sdcc-lib.h,
7165         * device/include/pic16/stdarg.h,
7166         * device/include/asm/pic16/features.h,
7167         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
7168         * device/include/pic16/float.h: changes reentrant keyword with
7169         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
7170         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
7171         updated target build-libraries to include objects from gptr,
7172         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
7173         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
7174         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
7175         all function headings,
7176         * src/SDCCmain.c: added global parameter userIncDirsSet,
7177         * (parseCmdLine): when option -I is encountered add directory to
7178         userIncDirsSet too,
7179         * src/version.awk: added space between control and long,
7180         * src/pic16/NOTES: added some notes for the port,
7181         * src/pic16/gen.c: added prototype for mov2fp function,
7182         * (fReturnpic16[]): properly named return value registers,
7183         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
7184         * (aopForSym): added code to handle symbols with onStack flag set,
7185         symbols onStack are allocated PTRSIZE bytes,
7186         * (aopFreeAsmop): handles special case where asmops are stack objects,
7187         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
7188         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
7189         added argument lock to trace flaws in allocating temporary registers
7190         when developing port,
7191         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
7192         * (pic16_popRegFromString): reenabled allocating a direct register
7193         from string,
7194         * (assignResultValue): various beautifications,
7195         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
7196         referenced function argument,
7197         * (genIpush): reenabled to allow stacked arguments, handles only
7198         ic->parmPush iCodes,
7199         * (genCall, genPcall): major changes to allow for variable argument
7200         functions, fixed a bug with falsely restoring stack pointer after
7201         returning from call,
7202         * (genFunction): pending code for critical function,
7203         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
7204         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
7205         * (genNearPointerGet): fixed bug with indirect reading, was always
7206         reading from INDF0
7207         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
7208         pointers,
7209         * (genAddrOf): rewrote code to take address of a stacked function parameter
7210         * (genCast): fixed casting to generic pointer type,
7211         * src/pic16/gen.h: added AOP_STA,
7212         * (struct asmop): added field stk,
7213         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
7214         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
7215         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
7216         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
7217         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
7218         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
7219         generic pointers,
7220         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
7221         and library paths,
7222         * (pic16_port structure): generic pointer size is set to 3,
7223         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
7224         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
7225         compiler warning,
7226         * src/pic16/ralloc.c (allocReg): prevent allocating register when
7227         operand is an iTemp,
7228
7229 2004-09-24 Martin Helmling <mh AT octo-soft.de>
7230
7231         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
7232         * debugger/mcs51/simi.c: addapt new syntax of s51
7233
7234 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
7235
7236         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
7237         * src/pic16/pcode.c: commented out some calls to free() in order to
7238         fix bug #989576,
7239
7240 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7241
7242         * src/SDCCicode.h,
7243         * src/SDCCicode.c (isiCodeInFunctionCall),
7244         * src/avr/ralloc.c (selectSpil),
7245         * src/pic/ralloc.c (selectSpil),
7246         * src/pic16/ralloc.c (selectSpil),
7247         * src/ds390/ralloc.c (selectSpil),
7248         * src/hc08/ralloc.c (selectSpil),
7249         * src/xa51/ralloc.c (selectSpil),
7250         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
7251         stack in the middle of a function call sequence (fixes bug #1020268)
7252         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
7253         costs associated with the minimum switch case.
7254
7255 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7256
7257         * src/SDCC.lex: fixed bug #1030549
7258
7259 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7260
7261         * src/SDCCcse.h (struct cseDef),
7262         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
7263         over a function call if the CSE is derived from a symbol whose
7264         address has been taken (fixes bug #1029883)
7265         * support/regression/tests/bug-1029883: a new regression test for
7266         this bug
7267
7268 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7269
7270         * src/hc08/gen.c (emitinline): fixed bug #1029778
7271         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
7272         to a cast object is no longer a syntax error ("fixes" bug #1030006,
7273         and starts toward RFE #905167)
7274
7275 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
7276
7277         * src/pic16/gen.c (mov2f): New function to move an operand to
7278         another without considering if it is a literal or a register,
7279         * (pic16_sameRegs): don't check if they are both AOP_REG,
7280         * (AccRsh): removed andmask=0 lines,
7281         * (genLeftShift): duplicated to be improved in future versions,
7282         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
7283         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
7284         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
7285         * (pic16initMnemonics): added initialization for POC_INFSNZW,
7286         * (insertBankSwitch): fixed inserting banksel directives algorithm
7287         for instructions that follow a skip instruction, this fixes a report
7288         for broken subtraction code generation,
7289         * src/pic16/ralloc.c (deassignLRs): do not free register if current
7290         iCode is a left op, just in case result and right share the same
7291         registers
7292
7293 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7294
7295         * src/hc08/main.c,
7296         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
7297         preservation of HX
7298         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
7299         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
7300         on 2004-09-12; it was buggy
7301
7302 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
7303
7304         * src/SDCCsymt.h: removed RESULT_CHECK
7305         * src/SDCCast.c,
7306         * src/SDCCglue.c,
7307         * src/SDCCval.c,
7308         * src/pic/glue.c,
7309         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
7310
7311 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
7312
7313         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
7314         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
7315         configuration values no more rejected by compiler, they are assigned
7316         to configuration registers with a warning message instead,
7317         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
7318         the for-loop so last conf register is emitted too,
7319         * (_pic16_initPaths): link library libsdcc.lib by default,
7320         * (_hasNativeMulFor): modified test for multiplication according to
7321         Raphael Neider's remarks. Integer multiplication is also done with
7322         support functions,
7323         * device/include/pic16/pic18fregs.h: corrected type error in while
7324         testing and including 18f6720 header file
7325
7326 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
7327
7328         * src/pic16/device.h (pic16_options): removed field use_crt,
7329         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
7330         until an optimization to handle single bits is added,
7331         * (pic16_loadFSR0): moved before genUnpackBits,
7332         * (genAnd): some white lines removed,
7333         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
7334         leave_reset flags in pic16_options when using crt modules,
7335
7336 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
7337
7338         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
7339           for bugs 898889 & 979599. Also used some safer print instructions.
7340
7341 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
7342
7343         * src/pic16/device.h (pic16_options_t): added field use_crt,
7344         crt_name, no_crt,
7345         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
7346         catch a probable future bug,
7347         * src/pic16/gen.c: aopIdx function commented out,
7348         * (genAssign): commented out old code which used aopIdx,
7349         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
7350         code, added if conditionals to take into account the --use-crt
7351         command line options,
7352         * src/pic16/main.c (pic16_optionsTable): added new command line
7353         options, --use-crt= and --no-crt,
7354         * (_pic16_linkEdit): now the proper crt object is added in the
7355         linker command line except than when --no-crt is specified,
7356         * src/pic16/pcode.c,
7357         * src/pic16/pcode.h: added some structures and functions for a new
7358         optimization scheme to compansate for instruction overhead between
7359         same iCodes, this scheme is currently under development and is not
7360         working in any way,
7361         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
7362         to && operator,
7363         * device/lib/pic16/startup/crt0i.c,
7364         * device/lib/pic16/startup/crt0iz.c: added global char variable
7365         __uflags to force the generation of an idata section
7366
7367 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
7368
7369         * doc/Makefile,
7370         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
7371         * doc/sdccman.lyx: updated sdcc version to 2.4.4
7372
7373 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7374
7375         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
7376         Frieder) and clarified the default code optimization mode
7377
7378 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7379
7380         * src/SDCC.lex (doPragma, process_pragma),
7381         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
7382         "opt_code_size", and "opt_code_balanced"
7383         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
7384         regrouped options by category, added support for category headers
7385         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
7386         and "--opt-code-size"
7387         * doc/sdccman.lyx: documented these new options and pragmas
7388         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
7389         preference into account
7390
7391 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
7392
7393         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
7394           geniCodePreDec): Fixed bug 904237 by generating a warning
7395         * src/SDCCerr.h,
7396         * src/SDCCerr.c: added warning W_SIZEOF_VOID
7397
7398 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
7399
7400         * src/pic/device.c : When no max ram set validate full memory range.
7401         * src/pic/pcode.c,
7402         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
7403
7404 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
7405
7406         * device/lib/_gptrget.c,
7407         * device/lib/_gptrput.c: updated comment
7408         * device/lib/calloc.c,
7409         * device/lib/free.c,
7410         * device/lib/malloc.c,
7411         * device/lib/realloc.c: added LGPL, made them reentrant-safe
7412         * src/SDCCcse.c (cseBBlock),
7413         * src/SDCCicode.c (printOperand, geniCodeArray),
7414         * src/SDCCicode.h (struct operand): fixed bug 868103
7415         * support/regression/tests/bug-868103.c: added
7416         * src/SDCCast.c (searchLitOp),
7417         * src/SDCCcse.h (struct cseDef),
7418         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
7419         * src/SDCCicode.h (struct operand),
7420         * src/SDCCsymt.h (struct sym_link),
7421         * src/avr/gen.c (hasInc),
7422         * src/ds390/gen.c (hasInc),
7423         * src/hc08/gen.c (genPlusIncr, hasInc),
7424         * src/mcs51/gen.c (hasInc),
7425         * src/pic16/glue.c (pic16_printIvalChar),
7426         * src/pic16/ralloc.c (regWithIdx),
7427         * src/xa51/gen.c (hasInc) : removed warnings
7428         * src/SDCCast.c (createBlock): added comment ???
7429         * src/hc08/ralloc.c: updated comments
7430
7431 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7432
7433         * doc/sdccman.lyx: updated section on switch statements, added
7434         section about semaphore locking
7435         * doc/Makefile: added option -info for latex2html
7436         * device/lib/_gptrget.c,
7437         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
7438
7439 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
7440
7441         * src/pic/device.h,
7442         * src/pic/device.c,
7443         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
7444          maxram is less than 0x100.
7445
7446 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
7447
7448         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
7449
7450 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7451
7452         * src/port.h,
7453         * src/mcs51/main.c,
7454         * src/ds390/main.c,
7455         * src/z80/main.c,
7456         * src/hc08/main.c,
7457         * src/pic/main.c,
7458         * src/pic16/main.c,
7459         * src/avr/main.c,
7460         * src/xa51/main.c
7461         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
7462         a jump table is the best form for a switch statement, including
7463         automatic insertion of missing cases to make the case range
7464         continuous. Developed in collaboration with Frieder Ferlemann.
7465
7466 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7467
7468         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
7469         accumulator result if it needs sign extension
7470
7471 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
7472
7473         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
7474
7475 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
7476
7477         * device/lib/gbz80/printf.c,
7478         * device/lib/z80/printf.c: removed define for NULL
7479
7480 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
7481
7482         * as/xa51/xa_link.c,
7483         * device/examples/ds390/ow390/ad26.c,
7484         * device/examples/ds390/ow390/cnt1d.c,
7485         * device/examples/ds390/ow390/counter.c,
7486         * device/examples/ds390/ow390/ds2480.h,
7487         * device/examples/ds390/ow390/ds2480ut.c,
7488         * device/examples/ds390/ow390/findtype.c,
7489         * device/examples/ds390/ow390/gethumd.c,
7490         * device/examples/ds390/ow390/owllu.c,
7491         * device/examples/ds390/ow390/ownetu.c,
7492         * device/examples/ds390/ow390/swt12.c,
7493         * device/examples/ds390/ow390/swtloop.c,
7494         * device/examples/ds390/ow390/temp.c,
7495         * device/examples/ds390/ow390/temp10.c,
7496         * device/examples/ds390/ow390/thermo21.c,
7497         * device/examples/ds390/ow390/tinilnk.c,
7498         * device/examples/ds390/ow390/tstfind.c,
7499         * device/examples/serialcomm/windows/serial.cpp,
7500         * device/examples/serialcomm/windows/test_serialcomm.cpp,
7501         * device/include/reg51.h: fixed line endings for cvs
7502
7503 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7504
7505         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
7506         packRegsForAccUse, packRegisters): new accumulator register
7507         packing algorithm
7508         * support/regression/ports/hc08/support.c (_putchar): suppress
7509         warning of unused variable
7510         * src/SDCCicode.c: added SWAP entry to codeTable
7511
7512 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
7513
7514         * device/lib/sprintf.c: forgot to add this file before previous commit
7515
7516 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
7517
7518         * src/pic16/gen.c (genPackBits): added operand right in function
7519         parameters, load result directly if p_type is POINTER (that is
7520         called by genNearPointerSet)
7521         * (genUnPackBits): added operand left in function parameters,
7522         * (genNearPointerGet, genNearPointerSet): prevent the loading of
7523         FSR0 if accessing bitfields,
7524
7525 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
7526
7527         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
7528           _print_format; updated printf, sprintf, vsprintf
7529         * device/include/asm/default/features.h: corrected comment/define
7530         * device/lib/Makefile.in: added sprintf.c
7531         * device/lib/libsdcc.lib: added sprintf module
7532         * device/lib/printf_large.c,
7533         * device/lib/vprintf.c,
7534         * device/lib/sprintf.c: totally refactored printf_large and vprintf
7535           into these 3 files
7536         * support/regression/Makefile: changed ALL_PORTS into a usefull default
7537         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
7538         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
7539           hc08 test
7540         * support/regression/tests/zeropad.c: define idata as data for hc08
7541
7542 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7543
7544         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
7545         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
7546         labels are referenced at least once (even if a reference is not found)
7547         * src/hc08/gen.c (emitcode): set isComment flag for comments
7548         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
7549         loads), rules 6a..6b (optimize jumps to return)
7550
7551 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7552
7553         * device/lib/acosf.c (acosf),
7554         * device/lib/asinf.c (asinf),
7555         * device/lib/atanf.c (atanf),
7556         * device/lib/ceilf.c (ceilf),
7557         * device/lib/cosf.c (cosf),
7558         * device/lib/coshf.c (coshf),
7559         * device/lib/cotf.c (cotf),
7560         * device/lib/fabsf.c (fabsf),
7561         * device/lib/floorf.c (floorf),
7562         * device/lib/log10f.c (log10f),
7563         * device/lib/logf.c (logf),
7564         * device/lib/sinf.c (sinf),
7565         * device/lib/sinhf.c (sinhf),
7566         * device/lib/sqrtf.c (sqrtf),
7567         * device/lib/tanf.c (tanf),
7568         * device/lib/tanhf.c (tanhf),
7569         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
7570         replaced all instances of "reentrant" in the library functions
7571         defined in math.h with this macro.
7572         * support/regression/tests/float_trans.c: reenabled test for hc08
7573
7574 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
7575
7576         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
7577         erroneously deleted
7578
7579 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7580
7581         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
7582         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
7583         multi-byte volatile operands are used
7584         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
7585         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
7586         initialization to area GSINIT0 so that it would always precede
7587         any static initializers in GSINIT
7588         * support/regression/tests/zeropad.c: fixed idata define for hc08
7589         * support/regression/tests/bug-927659.c,
7590         * support/regression/tests/float_trans.c: disabled tests for hc08
7591         pending missing library routines
7592         * .version: increased version number to 2.4.4 - hc08 port now passes
7593         regression tests
7594
7595
7596 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
7597
7598         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
7599         * Makefile.common.in,
7600         * as/Makefile,
7601         * as/hc08/Makefile.in,
7602         * as/mcs51/Makefile.in,
7603         * as/z80/Makefile.in,
7604         * debugger/mcs51/Makefile.in,
7605         * device/include/Makefile.in,
7606         * device/lib/Makefile.in,
7607         * doc/Makefile,
7608         * link/Makefile,
7609         * link/z80/Makefile.in,
7610         * packihx/Makefile.in,
7611         * sim/ucsim/main_in.mk,
7612         * sim/ucsim/avr.src/Makefile.in,
7613         * sim/ucsim/doc/Makefile.in,
7614         * sim/ucsim/gui.src/serio.src/Makefile.in,
7615         * sim/ucsim/hc08.src/Makefile.in,
7616         * sim/ucsim/s51.src/Makefile.in,
7617         * sim/ucsim/xa.src/Makefile.in,
7618         * sim/ucsim/z80.src/Makefile.in,
7619         * src/Makefile.in,
7620         * support/cpp2/Makefile.in,
7621         * support/librarian/Makefile,
7622         * support/makebin/Makefile: added DESTDIR to the install path proposed
7623         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
7624         * doc/sdccman.lyx: added DESTDIR documentation
7625
7626 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
7627
7628         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
7629         instruction for interrupt handlers, use fast returns when returning
7630         from high priority interrupts
7631
7632 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7633
7634         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
7635         code generation
7636         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
7637         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
7638         bugs, ported much of Bernhard's code from mcs51
7639         * src/mcs51/gen.c (genSend),
7640         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
7641         than one when calling a reentrant function
7642         * device/lib/_mullong.c: defined an alternate struct layout for big
7643         endian ports (hc08)
7644
7645 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7646
7647         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
7648         test
7649
7650 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7651
7652         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
7653         are sane and complete before asking the port its prefered parameter
7654         passing method (fixes bug #1017633)
7655         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
7656         and _ret3
7657
7658 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7659
7660         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
7661         problem in bitfields >= 8 bits.
7662
7663 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
7664
7665         * src/SDCCsymt.c: undid changes that were not meant to be committed
7666
7667 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
7668
7669         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
7670
7671 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
7672
7673         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
7674           copied and wrong bit got inverted
7675
7676 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7677
7678         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
7679         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
7680         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
7681         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
7682         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
7683         assignments to bitfields at known addresses
7684         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
7685         reads from bitfields at known addresses
7686         * src/hc08/ralloc.c (packRegisters),
7687         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
7688         genhc08Code): optimize pointer get values used as conditionals
7689         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
7690         and branch
7691
7692 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7693
7694         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
7695         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
7696         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
7697         as conditionals
7698
7699 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7700
7701         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
7702
7703 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7704
7705         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
7706         related problems
7707
7708 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
7709
7710         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
7711
7712 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7713
7714         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
7715         mcs51 port
7716
7717 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
7718
7719         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
7720
7721 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7722
7723         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
7724         cases use more compact code.
7725
7726 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
7727
7728         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
7729
7730 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7731
7732         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
7733
7734 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7735
7736         * src/SDCCsymt.h,
7737         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
7738         parameter of changePointer() from symbol* to sym_link*
7739         * src/SDCCast.c (decorateType): call changePointer() for CAST op
7740         * src/SDCCsymt.c (compareType): void* type is castable to other
7741         pointers, but not necesarily an exact match.
7742         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
7743         is no longer blindly treated as an exact match.
7744         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
7745
7746 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
7747
7748         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
7749
7750 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
7751
7752         * src/pic/gen.c,
7753         * src/pic/pcode.c,
7754         * src/pic/ralloc.h,
7755         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
7756
7757 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
7758
7759         * src/pic/device.c,
7760         * src/pic/device.h,
7761         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
7762
7763 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7764
7765         * src/mcs51/gen.c (emitcode): fixed bug #992819
7766
7767 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
7768
7769         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
7770           there's no need to make it worse
7771
7772 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7773
7774         * src/mcs51/ralloc.c (deassignLR),
7775         * src/ds390/ralloc.c (deassignLR),
7776         * src/hc08/ralloc.c (deassignLR),
7777         * src/z80/ralloc.c (deassignLR),
7778         * src/pic/ralloc.c (deassignLR),
7779         * src/pic16/ralloc.c (deassignLR),
7780         * src/avr/ralloc.c (deassignLR),
7781         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
7782         rlivePoint): fixed another part of bug #971834
7783
7784 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7785
7786         * src/z80/main.c: enabled "critical" keyword
7787         * src/z80/mappings.i,
7788         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
7789         functions (fixes bug #979646)
7790         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
7791
7792 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7793
7794         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
7795           such as c:\mydir.
7796
7797 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
7798
7799         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
7800           doesn't disable too much optimizations
7801
7802 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
7803
7804         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
7805
7806 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
7807
7808         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
7809
7810 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
7811
7812         * src/pic/gen.c tidied up tabs
7813         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
7814         * src/pic/main.c tidied up tabs
7815         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
7816         * src/pic/pcoderegs.c tidied up tabs
7817         * src/pic/ralloc.c tidied up tabs
7818
7819 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
7820
7821         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
7822         to S_FIXED for pic16 port and when symbol is not in level 0,
7823         allocate for S_REGISTER storage class and pic16 port, too,
7824         * src/pic16/device.h: prototype for checkSym,
7825         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
7826         * (pic16_assignConfigWordValue): test the value and the mask to
7827         validate that the value is suitable for the configuration word,
7828         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
7829         collect extern declared symbols, don't emit symbol twice, check
7830         first if symbol is in publics set first,
7831         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
7832         * added command line '--fstack' which enables an experimental
7833         feature for stack access, too buggy to be used yet...
7834         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
7835         * (pic16_allocDirReg): when register has storage class S_REGISTER
7836         allocate in pic16_dynAccessRegs,
7837         * device/include/pic16/pic18f????.h: modified configuration word
7838         naming convention, words started as CONFIG0H but should be CONFIG1H
7839
7840 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
7841
7842         * device/include/mcs51reg.h: fixed bug 970993
7843
7844 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
7845
7846         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
7847         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
7848         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
7849         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
7850         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
7851         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
7852           error/warning numbers,
7853           added function setWarningDisabled()
7854         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
7855         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
7856           _memcmp.c _memmove.c calloc.c realloc.c free.c
7857         * support/regression/tests/malloc.c: added tests for new functionality
7858         * support/regression/tests/zeropad.c: added tests for truncated initializers
7859           and initialized char arrays starting with '\x0'
7860         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
7861
7862 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
7863
7864         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
7865
7866 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7867
7868         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
7869         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
7870         peephole 177.e. Thanks to anonymous
7871
7872 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
7873
7874         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
7875         function isn't used in the source but referenced as a
7876         variable initializer then declare it as extern in .asm file
7877
7878 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
7879
7880         * .version: increased version number to 2.4.3
7881
7882         Adding version extension according to ChangeLog CVS revision
7883         * src/Makefile.in (target all): added dependency 'version.h'
7884         * (rule version.h): added rule to create version.h from ChangeLog,
7885         * (rule dep): added dependency version.h,
7886         * src/version.awk: AWK script to create version.h
7887         * src/SDCCdwarf2.c (dwWriteModule),
7888         * src/SDCCglue.c (initialComments),
7889         * src/SDCCmain.c (printVersionInfo): modified to write after
7890         version string the version extension number,
7891         * src/SDCCutil.c: included "version.h"
7892         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
7893         number,
7894         * src/SDCCutil.h: added prototype for getBuildNumber
7895
7896         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
7897         includeDirsSet, too,
7898         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
7899         const char [] is found in function prototype...
7900
7901         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
7902         moving to WREG with source is already in WREG,
7903         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
7904         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
7905         * (aopForSym): stack'ed symbols are partially supported, added
7906         if-clause to support symbols in FARSPACE,
7907         * (sameRegs): added test for AOP_ACC to see if registers are same,
7908         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
7909         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
7910         * (pic16_popRegFromString): will not allocate a new register if it
7911         doesn't find one by name, bug may have introduced...
7912         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
7913         * (genIpush): revived to use pic16 port's stack,
7914         * (genAddrOf): added incomplete case for stack'ed operand,
7915         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
7916         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
7917         can handle multibyte operands,
7918         * src/pic16/glue.c (pic16_printIval*): some debug info added,
7919         * (pic16initialComments): added message for MPLAB compatibility
7920         mode enabled,
7921         * src/pic16/main.h: prototype for pic16_mplab_comp,
7922         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
7923         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
7924         * (_pic16_linkEdit): NEW, handles link stage, transferred here
7925         because of increased complexity of procedure,
7926         * (_process_pragma): stack pragma changed to format 'stack pos len',
7927         emit symbol '_stack_end' to conform with gplink,
7928         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
7929         to search for register,
7930         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
7931         PO_GPR_REGISTER,
7932         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
7933         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
7934         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
7935         case for PO_GPR_REGISTER,
7936         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
7937         dies, the new era is ahead !...
7938         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
7939         pic16_dynInternalRegs,
7940         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
7941         * (pic16_allocDirReg): minor optimizations and bug fixes,
7942         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
7943
7944         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
7945         load stack and frame pointer with address of 'stack_end' symbol
7946
7947 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
7948
7949         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
7950         without source code but only variable initializers
7951
7952 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
7953
7954         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
7955         external are not declared as extern to reduce overhead while linking
7956
7957 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
7958
7959         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
7960
7961 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
7962
7963         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
7964           Yee Keat for the patch
7965         * src/SDCCast.c (decorateType): fixed bug #979599
7966         * src/ds390/gen.h: removed local fReturnSizeDS390
7967         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
7968         * src/ds390/gen.c (genAnd, genOr, genXor),
7969         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
7970
7971 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
7972
7973         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
7974         add relFilesSet to $3, manipulate $2 to handle linking of object
7975         files without source files in command line,
7976         * device/include/pic16 (all headers): added ID location macros,
7977         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
7978         entries for ID location bytes,
7979         * (pic16_assignIdByteValue): NEW,
7980         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
7981         added field dumpcalltree to pic16_options_t,
7982         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
7983         is used instead of pic16_Gstack_base_addr, check if (ifx) before
7984         emitting rFalseIfx label after check_carry label,
7985         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
7986         pic16_emitDIRegs), NEW
7987         * (pic16glue): dump .calltree file when option --calltree found,
7988         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
7989         * (_pic16_genAssemblerPreamble): emit ID locations after
7990         configuration registers,
7991         * (pic16_linkCmd): modifications of the link command,
7992         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
7993         * (pic16_pCodeInitRegisters): don't init stack registers,
7994         * (pic16_findPrevInstruction): fixed bug,
7995         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
7996         bug with immediate registers,
7997         * (buildCallTree): traces stack push and pop,
7998         * (pct2): dump also stack usage for each function,
7999         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
8000         * (pic16_allocDirReg): various modifications,
8001         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
8002         fixed to 1,
8003
8004 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
8005
8006         * src/pic16/pcode.c: removed buggy double colon
8007
8008 2004-07-01 Borut Razem <borut.razem AT siol.net>
8009
8010         * support/scripts/sdcc.nsi: added include/pic16 to setup
8011
8012 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
8013
8014         * device/lib/Makefile.in: fixed bug in target objects-pic16,
8015         * device/lib/pic16/Makefile: prefixed with dash (-) command under
8016         target 'clean',
8017         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
8018         specific command line arguments. Also added sample lkr script
8019         for placing a variable at a specific memory bank.
8020         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
8021         at a specific memory bank,
8022         * (pic16_dump_isection): fixed bug which caused string literals to
8023         be omitted when dumping idata section,
8024         * (pic16_groupRegistersInSection): added code to handle registers
8025         in specific memory banks,
8026         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
8027         public, all references are renamed too,
8028         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
8029         AOP_DPTR2,
8030         * (pic16_storeForReturn): added case to handle when dest is WREG,
8031         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
8032         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
8033         pic16_rel_udata, check to see if that register is marked as being
8034         a member of a specific memory bank,
8035         * (pic16_printIvalCharPtr): added code to add string literals either
8036         to code or the idata sections,
8037         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
8038         also accept the 'udata' pragma,
8039         * src/pic16/main.h: new structure types sectName and sectSym
8040         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
8041         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
8042         * (pic16_findPrevInstruction): fixed, it returned nothing,
8043         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
8044         instruction combinations,
8045         * (pic16_FixRegisterBanking): heavily reorganised,
8046         * (pic16_AnalyzeBanking): if generating banksel directives is
8047         disabled, then don't call FixRegisterBanking at all,
8048         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
8049         completely removed,
8050         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
8051
8052 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
8053
8054         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
8055         Phuah Yee Keat <yk.phuah AT nestac.com>
8056
8057 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
8058
8059         * src/pic16/glue.c (pic16createInterruptVect): function now emits
8060         correctly the IVT even if it is relocated to some other location
8061
8062 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
8063
8064         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
8065         * device/include/pic16/pic18f2220.h: NEW,
8066         * device/lib/pic16/libdev/pic18f2220.c: NEW,
8067         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
8068         * src/pic16/device.c (struct Pics16): added info for 18f2220,
8069         * src/pic16/device.h (struct pic16_options): added ivt_loc and
8070         nodefaultlibs, ivt_loc is the location of the interrupt vector
8071         table, and nodefaultlibs signs that default libraries should not be
8072         linked in link stage,
8073         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
8074         according to --ivt-loc argument,
8075         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
8076         when pragma stack is found,
8077
8078 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8079
8080         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
8081         256 (range check), 257 (do while), 258.a-f (bit banging
8082         f.e. on 3-wire SPI bus)
8083
8084 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8085
8086         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
8087         variables used exclusively within a loop
8088
8089 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
8090
8091         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
8092
8093 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8094
8095         * src/SDCClrange.c (computeClash): fixed bug #971834
8096
8097 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8098
8099         * src/mcs51/gen.c (genCmp): fixed bug #975903
8100         * src/hc08/gen.c (operandsEqu),
8101         * src/ds390/gen.c (operandsEqu),
8102         * src/z80/gen.c (operandsEqu),
8103         * src/pic/gen.c (operandsEqu),
8104         * src/pic16/gen.c (operandsEqu),
8105         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
8106         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
8107
8108 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8109
8110         * src/SDCCcse.c (cseBBlock): fixed bug #966963
8111
8112 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
8113
8114         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
8115         default case in switch statement,
8116         * glue.c (pic16_initPointer): expr is initialised via decoarteType
8117         to eliminate problem with initialisation of pointers, but problem
8118         still exists,
8119         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
8120         * (emitStaticSegment): removed various lines emitting debug info,
8121         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
8122         added processor registers for utilizing EEPROM,
8123         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
8124         configurable and set 8
8125
8126 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
8127
8128         * .version: increased version number to 2.4.2,
8129
8130         Cumulative patch for pic16 port
8131         * src/pic16/device.c: changed scheme to dump initial values for
8132         variables in idata segment, all print_idata* functions were removed,
8133         now the pic16_printIval* will be called,
8134         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
8135         * _pic16_printPointerType, pic16_printPointerType,
8136         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
8137         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
8138         NEW, similar to the respective functions in SDCCglue.c,
8139         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
8140         way, emitting hex bytes,
8141         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
8142
8143 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8144
8145         * src/avr/ralloc.c (serialRegAssign),
8146         * src/xa51/ralloc.c (serialRegAssign),
8147         * src/pic/ralloc.c (serialRegAssign),
8148         * src/pic16/ralloc.c (serialRegAssign),
8149         * src/hc08/ralloc.c (serialRegAssign),
8150         * src/z80/ralloc.c (serialRegAssign),
8151         * src/ds390/ralloc.c (serialRegAssign),
8152         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
8153
8154 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8155
8156         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
8157         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
8158
8159 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
8160
8161         Cumulative patch for pic16 port:
8162         * src/pic16/device.h (typedef PIC16_device) modified fields for
8163         defining microcontrollers,
8164         * src/pic16/device.c: added new info for all devices in Pics16 array,
8165         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
8166         to be optimised out by the pCode optimiser,
8167         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
8168         specially, bug reported by G.M. Gallant,
8169         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
8170         as force'd so that cannot be optimised out by pCode optimiser,
8171         * src/pic16/pcode.c,
8172         * src/pic16/pcodepeeph.c,
8173         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
8174         they are disabled by default, but can be enabled explicit with
8175         command argument --denable-peeps, for testing,
8176         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
8177         --pomit-ivt in COMPILE_FLAGS
8178
8179 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
8180
8181         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
8182           compilation on MSVC
8183
8184 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
8185
8186         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
8187
8188 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8189
8190         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
8191         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
8192
8193 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
8194
8195         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
8196         would only assign 0x300001 register.
8197
8198 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
8199
8200         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
8201         in COMPILE_FLAGS. Thanks to G. Gallant for report.
8202
8203 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8204
8205         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
8206         for ds80c400
8207         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
8208         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
8209         added peephole 254 (left shift), 255 (jump table)
8210
8211 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
8212
8213         * device/lib/Makefile.in: removed comment line with model-pic16,
8214         * (target port-specific-objects-pic16): the libraries and objects
8215         are copied to the build directory form the device/lib/pic16/bin
8216         directory
8217
8218         Cumulative patch concerning pic16 port:
8219         * library directory has been re-organized,
8220         * added support for PIC18F1220,
8221         * added headers and library sources for chips 18f1220,18f6520,
8222         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
8223
8224         * configuration registers setting has changed, now each supported
8225         device has a complete description of the registers it uses,
8226         * all initialisations are moved to idata sections, these section
8227         can be absolute or relocatable,
8228         * fixed initialisation of codespace variables,
8229         * fixed warning about PCLATU and gpsim,
8230         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
8231         * (genAssign): use table reads when assigning from variables in codespace,
8232         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
8233         char/int variables placed in codespace,
8234         * (pic16_emitConfigRegs): NEW, emits a list with configuration
8235         registers set in .asm file, no need for --pomit-config-words anymore,
8236         * (pic16glue): some 8051 legacy segments are commented out
8237         (to be removed completely),
8238         * added support for alternative assembler and linker with --asm=
8239         and --link= command line arguments,
8240         * peepholes are disabled automatically in the port, no need to
8241         specify on command line,
8242         * port supports natively char/int/long multiplication, but converts
8243         all divisions to support functions,
8244         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
8245         to the file set in variable $2,
8246         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
8247         strings in ASCII format and not in hex,
8248         * ralloc.c (serialRegAssign): added a triplet of conditional calls
8249         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
8250         allocate proper register if iCodes aren't temporary,
8251
8252 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
8253
8254         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
8255
8256 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
8257
8258         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
8259         is commented out
8260
8261 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8262
8263         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
8264         computed address is reused
8265         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
8266         multi-byte bitfields
8267
8268 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
8269
8270         * src/z80/gen.c: (genArrayInit): must check for pointers too
8271
8272 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
8273
8274         * support/regression/tests/zeropad.c: never meant to commit the
8275           nestedstruct test: removed, added check for GCC version
8276
8277 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
8278
8279         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
8280         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
8281         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
8282           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
8283           bugs 928906 and 954082 half-empty initializers
8284         * src/SDCCsymt.h,
8285         * src/SDCCsymt.c (getAllocSize): added for above fix
8286         * src/z80/gen.c (genArrayInit): fixed bug 741044
8287         * support/regression/tests/zeropad.c: added tests
8288
8289 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
8290
8291         * src/pic16/device.c (pic16_dump_section): corrected bug which
8292         caused some symbols of the libraries to be misplaced
8293
8294 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
8295
8296         * src/pic16/glue.c,
8297         * src/pic16/ralloc.h,
8298         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
8299         to fix conflict with pic port
8300
8301 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
8302
8303         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
8304         externs configuration variables,
8305         * src/pic16/ralloc.h,
8306         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
8307         prototype in header, commented out some debug messages
8308
8309 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
8310
8311         * src/pic16/glue.c,
8312         * src/pic16/main.c,
8313         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
8314         for gpasm COFF object generation. Thanks to D. Hawkins for
8315         his patch info
8316
8317 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8318
8319         * src/ds390/main.c,
8320         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
8321         Brock for spotting this)
8322         * src/ds390/gen.c (genEndFunction),
8323         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
8324         interrupt handler and critical. Disable push/pop optimizations when
8325         peephole optimizations disabled.
8326
8327 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
8328
8329         Updated pic16 library sources and headers.
8330         * device/lib/pic16/pic18f*/ ,
8331         * device/include/pic16/*.h: modified to handle structured SFR
8332         definitions
8333
8334 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
8335
8336         * src/port.h (PORT structure): added hook initPaths, now each
8337         port can declare its own default search paths,
8338         which can been seen with the --print-search-dirs option,
8339         see pic16 port for example,
8340         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
8341         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
8342         * (doPrintSearchDirs): NEW, replaces in a central manner the
8343         printing of search dirs which was split in set*Paths functions,
8344         * (main): added call to port->initPaths and doPrintSearchDirs,
8345         * src/avr/main.c,
8346         * src/ds390/main.c,
8347         * src/hc08/main.c,
8348         * src/izt/i186.c,
8349         * src/izt/tlcs900h.c,
8350         * src/mcs51/main.c,
8351         * src/pic/main.c,
8352         * src/pic16/main.c: modified port structures to reflect addition of
8353         initPaths hook,
8354
8355         * src/pic16/device.c (regCompare): registers are finally sorted by name,
8356         * (pic16_dump_section): for registers in same address reserve memory once,
8357         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
8358         to no_banksel,
8359         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
8360         result is greater in size than right or left,
8361         * (pic16_genUMult8X8_8): there are some cases where the result can
8362         be 16 bits size, so handle these,
8363         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
8364         * (pic16_outBitC): modified to emit pcodes,
8365         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
8366         or not,
8367         * (genDivOneByte): implemented algorithm to divide 8-bits,
8368         * (genCmp): uncommented goto, but issues still exist,
8369         * (genAnd): fixed a bug with variables >8bits,
8370         * (genPackBits): optimization added that uses BCF/BSF to change a
8371         single bit,
8372         * (genAssign): fixed bug when assigning floating point literals,
8373         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
8374         __sdcc_gsinit_startup label,
8375         * src/pic16/main.c (_pic16_init): removed search directory
8376         initialisations,
8377         * (_pic16_initPaths): NEW, used to initialise search directories,
8378         * (_hasNativeMulFor): support functions for all except char/int
8379         multiplication, and char division,
8380         * (PIC16_port struct): modified entry for native mul support,
8381         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
8382         no_banksel option,
8383         * (buildCallTree): call to register_usage is ifdef'ed out,
8384
8385 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8386
8387         * device/include/string.h: applied Stas Sergeev's patch to make this
8388         header file compatible with the preprocessor -Wundef option
8389         * src/SDCCmain.c (main): abort compilation if preprocessor reports
8390         failure (fixes bug #941458)
8391
8392 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8393
8394         * src/SDCCopt.c (killDeadCode): fixed bug #907733
8395         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
8396         that the variable, not the function, should be static
8397         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
8398         to be consistent with non-literal case
8399
8400 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8401
8402         * src/SDCCast.c (isConformingBody): fixed bug #949967
8403         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
8404         convilong): fixed bug #952086
8405
8406 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8407
8408         * src/SDCCmem.c (allocVariables): fixed bug #955321
8409
8410 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8411
8412         * src/hc08/main.c (_hc08_genAssemblerEnd),
8413         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
8414         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
8415         completely eliminated the use of a temporary file
8416         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
8417         when more than one file linked
8418         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
8419
8420 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8421
8422         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
8423         which fixes bug #543481
8424         * support/regression/tests/bug-751703.c: fixed comments left from a
8425         cut and paste error
8426         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
8427         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
8428         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
8429         scopes
8430         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
8431         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
8432         are now changed to underscores in moduleName
8433
8434 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8435
8436         * as/mcs51/lkmem.c: better fix for bug #954173
8437
8438 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
8439         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8440
8441         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
8442         * device/include/c8051f000.h,
8443         * device/include/c8051f120.h,
8444         * device/include/c8051f300.h,
8445         * device/include/c8051f310.h,
8446         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
8447         PWM16) and detab'ed
8448
8449 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8450
8451         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
8452         and mailing lists, doc'ed --no-peep-comments, removed reference
8453         to knoppix (newest version has no LyX/LaTeX), other minor changes
8454         * src/SDCCglue.c (glue): save 2 bytes stack space with
8455         option --main-return. The ljmp could probably be avoided too
8456
8457 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8458
8459         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
8460
8461 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8462
8463         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
8464         * src/SDCCopt.c (isLocalWithoutDef),
8465         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
8466         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
8467         (credit to Maarten Brock for patch #949363, on which this is based)
8468         * support/regression/tests/bug-751703.c: some test cases of extern used
8469         within inner scopes.
8470
8471 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8472
8473         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
8474         SPEC_STRUCT
8475         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
8476         struct definitions
8477         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
8478         dwWriteLabel): fix to create valid debugger symbols even when
8479         the module name has non-alphanumeric symbols in it
8480         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
8481         when a variable's allocation has been optimized away
8482
8483
8484 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8485
8486         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
8487         * src/hc08/main.c,
8488         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
8489         * src/mcs51/main.c,
8490         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
8491         * src/ds390/main.c,
8492         * src/z80/gen.c (z80_emitDebuggerSymbol),
8493         * src/z80/main.c,
8494         * src/pic/gen.c (pic14_emitDebuggerSymbol),
8495         * src/pic/main.c,
8496         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
8497         * src/pic16/main.c,
8498         * src/avr/gen.c (avr_emitDebuggerSymbol),
8499         * src/avr/main.c,
8500         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
8501         * src/xa51/main.c,
8502         * src/SDCCdebug.c (emitDebuggerSymbol),
8503         * src/SDCCdebug.h,
8504         * src/port.h: added a debugger struct to the port struct. Added a
8505         callback for defining debugger symbols
8506
8507         * src/SDCCast.c (createLabel),
8508         * src/SDCC.y (labeled_statement): mark all compiler generated labels
8509         with isitmp = 1
8510         * src/SDCCicode.h,
8511         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
8512         iCode back to the ast for the function
8513
8514         * src/hc08/ralloc.c (hc08_assignRegisters),
8515         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
8516         unneeded fields from the regs struct.
8517         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
8518         pushReg() & pullReg() functions instead of emitcode()
8519
8520         * src/hc08/gen.c (genLabel, genhc08Code),
8521         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
8522
8523         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
8524         debugger hooks
8525
8526         * src/hc08/gen.c (genEndFunction, genhc08Code),
8527         * src/hc08/gen.h,
8528         * src/mcs51/gen.c (genEndFunction, gen51Code),
8529         * src/mcs51/gen.h,
8530         * src/ds390/gen.c (genEndFunction, gen390Code),
8531         * src/ds390/gen.h,
8532         * src/z80/gen.c (genEndFunction, genZ80Code),
8533         * src/z80/gen.h,
8534         * src/z80/z80.h,
8535         * src/pic/gen.c (genEndFunction, genpic14Code),
8536         * src/pic/gen.h,
8537         * src/pic16/gen.c (genEndFunction, genpic16Code),
8538         * src/pic16/gen.h,
8539         * src/avr/gen.c (genEndFunction, genAVRCode),
8540         * src/avr/gen.h,
8541         * src/xa51/gen.c (genEndFunction, genXA51Code),
8542         * src/xa51/gen.h,
8543         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
8544         specific code to cdbFile.c and out of the backend code generators
8545
8546         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
8547         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
8548         starting address is now 0
8549
8550         * as/hc08/asm.h,
8551         * as/hc08/m08pst.c,
8552         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
8553         assembler directive for DWARF support
8554         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
8555
8556         * src/src.dsp,
8557         * src/Makefile.in,
8558         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
8559
8560 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8561
8562         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
8563         and inappropriate peephole optimization in jump tables
8564
8565 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8566
8567         * as/hc08/m08pst.c,
8568         * src/SDCCglue.c: sdccopt works for the hc08 port now
8569
8570 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
8571
8572         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
8573
8574 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8575
8576         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
8577
8578 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8579
8580         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
8581         rules
8582         * src/SDCCmain.c,
8583         * src/SDCCglobl.h,
8584         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
8585         comments from the peephole optimizer replacement rules
8586         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
8587         symbols
8588         * src/SDCCcse.c (updateSpillLocation),
8589         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
8590         equivalents
8591         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
8592         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
8593         objects far pointers
8594
8595 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8596
8597         * src/SDCCsymt.h: a missing part of my last change
8598         * src/pic/ralloc.c (regTypeNum),
8599         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
8600
8601 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8602
8603         * src/SDCCicode.h,
8604         * src/SDCCicode.c (aggrToPtrDclType),
8605         * src/SDCCptropt.h,
8606         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
8607         ptrPseudoSymConvert),
8608         * src/pic/ralloc.c (regTypeNum),
8609         * src/pic16/ralloc.c (regTypeNum),
8610         * src/hc08/ralloc.c (regTypeNum),
8611         * src/ds390/ralloc.c (regTypeNum),
8612         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
8613         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
8614
8615 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8616
8617         * link/z80/lkmain.c (afile),
8618         * as/hc08/lkmain.c (afile),
8619         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
8620         prevent a pointer problem when a filename has no directory and
8621         no extension specified.
8622
8623 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8624
8625         * link/z80/lkmain.c (afile): allow periods in directory names
8626         * link/z80/lkmain.c (afile),
8627         * as/mcs51/lkmain.c (afile),
8628         * as/hc08/lkmain.c (afile): allow linker script file to have an
8629         extension other than ".lnk"
8630         * link/z80/lklex.c (getfid),
8631         * link/z80/lkmain.c (parse),
8632         * as/mcs51/lklex.c (getfid),
8633         * as/mcs51/lkmain.c (parse),
8634         * as/hc08/lklex.c (getfid),
8635         * as/hc08/lkmain.c (parse): Support comments in the linker script
8636         file on lines by themselves and after filenames
8637
8638 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8639
8640         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
8641
8642 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8643
8644         * src/z80/peeph-z80.def: removed some peephole rules that don't
8645         work with multibyte arithmetic (fixed bug #937126)
8646         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
8647         to registers and not global variables
8648         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
8649         geniCodePreInc, geniCodePostDec, geniCodePreDec,
8650         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
8651         checking for assignments not internally generated (fixed bug #931895)
8652         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
8653         structure member (fixed bug #930072)
8654
8655 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8656
8657         * src/SDCCmain.c (linkEdit),
8658         * src/hc08/main.c (_hc08_parseOptions),
8659         * as/hc08/Makefile.in,
8660         * as/hc08/aslink.h,
8661         * as/hc08/asm.h,
8662         * as/hc08/m08pst.c,
8663         * as/hc08/lkrloc.c (relr, rele),
8664         * as/hc08/lkarea.c (lnkarea)
8665         * as/hc08/lkmain.c (afile, parse),
8666         * as/hc08/lkelf.c: support for ELF output
8667         * as/hc08/lks19.c (s19),
8668         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
8669
8670 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8671
8672         * as/mcs51/lkihx.c: Fixed bug #899105.
8673
8674 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8675
8676         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
8677         .dsp files from Unix to DOS.
8678
8679 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8680
8681         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
8682         function pointers; we have been compliant for several months now.
8683         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
8684         change that was accidently commented out
8685         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
8686         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
8687         bug #922319
8688
8689 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8690
8691         * src/hc08/gen.c: output of all of the internal debugging information
8692         is now controlled by the D() macro; it is disabled by default
8693
8694 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8695
8696         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
8697         harder to keep the same registers during a CAST iCode
8698         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
8699         long via int can be done in a single cast, if the signedness is
8700         correct.
8701         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
8702         putchar() in tinibios.c in ds390's library
8703
8704 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
8705
8706         * src/SDCCast.c (decorateType): fixed bug #898889,
8707         cast result of a literal complement too
8708         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
8709         fixed check for bitfields
8710
8711 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
8712
8713         * src/SDCCicode.c (geniCodeLogic): made it static,
8714         (geniCodeLogicAndOr): added in order to fix bug #905492,
8715         (ast2iCode): fixed bug #905492
8716         * support/regression/tests/bug-905492.c: added
8717         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
8718         (processParms): fixed bug #927659: don't copy parms, this will clear
8719         decorated flag
8720         * support/regression/tests/bug-927659.c: added
8721
8722 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
8723
8724         * src/SDCCast.c (addCast): don't cast float to char
8725         * device/lib/libsdcc.lib: added _memmove
8726
8727 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
8728
8729         * device/lib/large/Makefile: fixed parallel execution by
8730         replacing `make` by `$(MAKE)`
8731
8732 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8733
8734         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
8735         offsets (fixes bug #923936)
8736
8737 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
8738
8739         * device/lib/small/Makefile: fixed parallel execution by
8740         replacing `make` by `$(MAKE)`
8741
8742 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
8743
8744         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
8745
8746 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
8747
8748         * src/pic/gen.c (genCpl): multi-byte complements were not working.
8749         * src/regression/Makefile: Regression test was not running.
8750
8751 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
8752
8753         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
8754         complement if possible
8755         * src/SDCCval.c (valComplement),
8756         * src/SDCCicode.c (operandOperation): fixed complement of literal
8757         * support/regression/tests/onebyte.c (testComplement): added
8758
8759 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
8760
8761         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
8762         return an optimized tree; actually replace actParm with the new tree
8763         * src/SDCCast.h: added some parantheses to remove side effects
8764         * support/regression/tests/bug-920866.c
8765
8766 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
8767         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
8768         Bit operands were not being handled properly in the pic14 port.
8769         (now src/regression/add.c passes again).
8770
8771 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8772
8773         * src/SDCC.y (labeled_statement): case and default no longer require
8774         a following statement (RFE #893037)
8775
8776 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8777
8778         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
8779         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
8780         disabled (fixes bug #916294)
8781         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
8782         "mov a,acc"; patch provided by Lenny Story
8783         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
8784
8785 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8786
8787         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
8788         functions
8789         * src/ds390/gen.c (genFunction, genEndFunction),
8790         * src/ds390/ralloc.c (ds390_assignRegisters),
8791         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
8792         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
8793         pushed if there are parameters passed on the stack. Also, a cleaner
8794         way to decide if r0/r1 should be pushed/popped. (Together they fix
8795         bug #918693)
8796
8797 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8798
8799         * doc/sdccman.lyx,
8800         * device/lib/mcs51/crtpagesfr.asm,
8801         * device/lib/mcs51/crtxinit.asm,
8802         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
8803         to avoid confusion with Si Lab's SFRPAGE register.
8804
8805 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8806
8807         * src/SDCCglue.c (emitMaps): allow public sfr variables
8808         * src/SDCCglue.c (initialComments): include compiler build date
8809         with compiler version and put the timestamp of the generated
8810         assembly file on a serperate line to be less confusing.
8811         * src/port.h: added genInitStartup hook
8812         * src/avr/main.c,
8813         * src/ds390/main.c,
8814         * src/hc08/main.c,
8815         * src/pic/main.c,
8816         * src/pic16/main.c,
8817         * src/xa51/main.c,
8818         * src/z80/main.c: genInitStartup initialize as NULL (default to
8819         historical behaviour)
8820         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
8821         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
8822         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
8823         library instead of hard coding it into the compiler.
8824         * support/regression/ports/mcs51-stack-auto/spec.mk,
8825         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
8826         * device/lib/mcs51/Makefile,
8827         * device/lib/small/Makefile,
8828         * device/lib/large/Makefile,
8829         * device/lib/mcs51/crtpagesfr.asm,
8830         * device/lib/mcs51/crtstart.asm,
8831         * device/lib/mcs51/crtxclear.asm,
8832         * device/lib/mcs51/crtxinit.asm,
8833         * device/lib/mcs51/crtclear.asm,
8834         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
8835         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
8836         and into user configurable files.
8837         * device/lib/clean.mk: clean mcs51 directory too
8838         * support/regression/tests/longlit.c: added static to T1 declaration
8839         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
8840         accesses in the initialization code
8841
8842 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8843
8844         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
8845         OSCTRIMVAL as noted in bug #916008
8846
8847 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8848
8849         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
8850         in loops with multiple exits (reported as incorrect registers
8851         used by Martin Helmling in Sdcc-user list)
8852
8853 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8854
8855         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
8856         made ds390 register extensions look less like error messages
8857
8858 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8859
8860         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
8861         reported by Adam Wozniak in Sdcc-user list
8862
8863 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
8864
8865         * src/SDCCast.c (decorateType): fixed with bug and promotion in
8866         arithmetic optimizations, added debug output
8867
8868 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
8869
8870         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
8871         * sdcc.spec: updated and split sdcc into 3 rpms
8872         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
8873         needed for literals of LEFT_OP and '+'
8874         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
8875         introduced RESULT_TYPE_NOPROM
8876         (geniCodeMultiply): fixed logic for decision if mul is optimized to
8877         left shift
8878         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
8879         limited promotion to int only for '*'
8880         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
8881
8882 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
8883
8884         * src/pic16/gen.c (genSkip),
8885         (genc16bit2lit), (gencjneshort): commented out
8886         (is_LitOp): new helper function, checks operand type
8887         (genCmpEq): rewritten
8888
8889 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
8890
8891         * support/regression/tests/bug-908454.c: added
8892
8893 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
8894
8895         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
8896         * src/SDCCicode.c (usualBinaryConversions): op needs int type
8897         (geniCodeCast): cosmetic, don't preserve bit storage class
8898         (geniCodeLeftShift): added promotion
8899         (geniCodeLogic): fixed regression
8900         * src/SDCCsymt.c (computeTypeOr): accept bits too
8901         (compareType): 2nd part of fix for bug #908454, needed for bitfields
8902
8903 2004-03-07  Borut Razem <borut.razem AT siol.net>
8904
8905         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
8906
8907 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
8908
8909         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
8910         version of pic16_genPackRegisters which does not check if ic is a
8911         CAST operator,
8912         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
8913         function cause string1.c regression test fails
8914
8915 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
8916
8917         * sim/ucsim/configure.in,
8918         * sim/ucsim/configure,
8919         * sim/ucsim/doc/Makefile.in: use docdir
8920         * src/SDCC.y: fixed sbit atrributes
8921         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
8922         * src/SDCCast.c (decorateType): |^& need special promotion handling
8923         * src/SDCCast.h,
8924         * src/SDCCsymt.h: moved definition of RESULT_TYPE
8925         * src/SDCCsymt.h (computeType),
8926         * src/SDCCicode.c: computeType() needs op
8927         * src/SDCCsymt.c (checkTypeSanity),
8928         * doc/sddman.lyx: "plain" bitfields are unsigned
8929         * src/SDCCsymt.c (computeTypeOr): added
8930         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
8931         |^& ops
8932         * src/SDCCval.c (val*): computeType() needs op
8933         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
8934         * support/regression/tests/onebyte.c: added tests for |^&
8935
8936 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
8937
8938         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
8939         for writing icode into asm output.
8940
8941 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
8942
8943         * src/pic16/device.c: added some debug lines enabled
8944         with macro DEBUG_CHECK,
8945         * src/pic16/genarith.c: more debug in genPlus,
8946         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
8947         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
8948         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
8949         * (aopForSym): onStack symbols are re-placed in data memspace,
8950         and onStack flag is cleared,
8951         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
8952         copy temporary pcodeop,
8953         * (genPcall): added warning for not updating PCLATU,
8954         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
8955         always true for pic16 port,
8956         * (genMultOneWord): NEW, supports integer multiplication,
8957         * (genMult): modified to call genMultOneWord,
8958         * (ifxForOp): added warning when return NULL,
8959         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
8960         flag is set before call to operandFromSymbol for implicit
8961         added structures,
8962         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
8963         options.intlong_rent are set by default,
8964         * (_hasNativeMulFor): modified to allow port generation of integer
8965         multiplication,
8966         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
8967         set regtype to REG_SFR for all registers, restricting seting the
8968         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
8969
8970 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8971
8972         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
8973         more than 500 times in the regression tests
8974
8975 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8976
8977         * support/Util/SDCCerr.h,
8978         * support/Util/SDCCerr.c,
8979         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
8980         enumerator_list),
8981         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
8982         for symbol conflicts.
8983         * support/valdiags/tests/enum.c,
8984         * support/valdiags/tests/tentdecl.c,
8985         * support/valdiags/tests/struct.c: expect possible error messages
8986         referring to original symbol definitions.
8987         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
8988         * src/SDCCsymt.h,
8989         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
8990
8991 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
8992
8993         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
8994
8995 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
8996
8997         * src/pic16/ralloc.c (newReg): fixed bug #908929
8998
8999 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9000
9001         * src/ds390/gen.c: added missing #include "main.h"
9002
9003 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
9004
9005         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
9006         checking if symbol is already in set,
9007         * src/pic16/device.h: prototype for checkAddSym,
9008         * src/pic16/gen.c: (_G): added entry interruptvector,
9009         * (assignResultValue): removed some commented out lines,
9010         * (genFunction): check for ISR via sym->type, absolute section for
9011         interrupt code is created via a new pBlock, the goto instruction is
9012         placed now correctly at the interrupt vector position, changed all
9013         references from ivec to _G.interruptvector,
9014         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
9015         is the interrupt is a high priority one, same for return from ISR,
9016         * src/pic16/glue.c: changed all calls of addSetHead for publics and
9017         externs to calls of checkAddSym,
9018         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
9019         pic16_pcode_verbose flag is set,
9020         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
9021         * src/pic16/pcoderegs.c: message about how many registers are saved
9022         will only be emitted if pic16_pcode_verbose flag is set,
9023
9024 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9025
9026         * src/ds390/ralloc.h,
9027         * src/ds390/ralloc.c (ds390_regWithIdx),
9028         * src/ds390/gen.c (emitcode),
9029         * src/ds390/main.h,
9030         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
9031         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
9032         ds390operandCompare, getRegsRead, getRegsWritten,
9033         initializeAsmLineNode): customized instruction size calculation for
9034         ds390, started basis for some register optimizations
9035         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
9036         corresponding assembly output
9037         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
9038         missing push/pop of r0/r1. Optimized push/pops
9039
9040 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9041
9042         * src/mcs51/main.c (instructionSize): fixed ACALL size
9043         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
9044
9045 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
9046
9047         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
9048         the sorting of rlist with NULL elements
9049         * (print_idataType, print_idata): NEW to create idata sections
9050         * src/pic16/device.h: idataSymSet new variable
9051         * src/pic16/gen.c (genFunction): fixed some bugs in string
9052         comparing, improved the absolute section creation for ISRs,
9053         added FSR0L/FSR0H in registers that are saved in an ISR,
9054         * (genInline): fixed the processing of inline snippets,
9055         now they undergo no process by the peephole optimizer
9056         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
9057         are placed in idataSymSet,
9058         * (pic16emitStaticSeg): extern symbols are added in externs,
9059         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
9060         switching when aboslute variables are placed in access bank memory
9061         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
9062         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
9063         commented out with #if,
9064         * (pic16_packRegisters): reintroduce the check for CAST because some
9065         symbols are not correctly handled,
9066         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
9067         pCodeInstruction instead of pCode,
9068         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
9069         pCodeAsmDir definition,
9070         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
9071         directive, then the argument directive is emitted without the leading
9072         tab, hack for inline labels which must be in the first column,
9073         * (compareLabel,pic16_findNextInstruction),
9074         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
9075         * (insertBankSwitch): modified for the new pCodeAsmDir,
9076
9077 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
9078         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
9079
9080         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
9081         instance,
9082         * (pushSide): commented out with #if,
9083         * (assignResultValue): fixed some typos in saving
9084         registers,
9085         * (genPcall): FIXED and sync'ed with genCall,
9086         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
9087         * (genNearPointerGet): fixed to handle some more cases,
9088         implementation scheme via table reads,
9089         * (genConstPointerGet): modified to access code memory correct,
9090         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
9091         and improved to handle some cases
9092         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
9093         instead of "RETLW" for init data
9094         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
9095         not IN_DIRSPACE, work around to reduce bank switching when aboslute
9096         variables are placed in access bank memory (<0x80 and >=0xf80),
9097         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
9098         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
9099         TBLWT_POSTDEC,TBLWT_PREINC
9100         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
9101         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
9102         directives
9103         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
9104         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
9105         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
9106         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
9107
9108 2004-02-29  Borut Razem <borut.razem AT siol.net>
9109
9110         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
9111         support/Util/findme.h, support/Util/system.h: enhance binary relative
9112         search for lib and include by using findProgramPath()
9113
9114 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9115
9116         * src/SDCCpeeph.h,
9117         * src/SDCCpeeph.c (pcDistance),
9118         * src/port.h,
9119         * src/mcs51/ralloc.h,
9120         * src/mcs51/ralloc.c (mcs51_regWithIdx),
9121         * src/mcs51/main.h,
9122         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
9123         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
9124         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
9125         size calculation port specific, started basis for some register
9126         optimizations
9127         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
9128         missing push/pop of r0/r1. Optimized push/pops
9129         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
9130         * device/lib/_modsint.c (_modsint),
9131         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
9132         and stack version so regression tests pass
9133
9134 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
9135
9136         * src/Makefile.in (dep): include SLIBOBJS in dependency check
9137         * src/SDCCast.c (decorateType): catch another small optimization
9138         with '?' operator
9139         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
9140         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
9141         modified to finally use computeType() all over SDCC,
9142         see Feature Request #877103
9143         * src/SDCCval.h: cosmetic
9144         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
9145         valCompare(); regression tested in muldiv.c
9146         * support/regression/tests/muldiv.c (testMod): mod sign follows
9147         dividend only
9148
9149 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
9150
9151         * src/SDCCast.c (decorateType): fixed bug #902362
9152         * doc/INSTALL.txt: fixed install instructions for win32
9153
9154 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
9155
9156         * device/include/Makefile.in (install): fixed by replacing spaces
9157         by tabs
9158         * doc/README.txt,
9159         * doc/INSTALL.txt: updated for release
9160         * doc/sdccman.lyx: added warning for --xstack being buggy
9161
9162 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
9163
9164         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
9165         to eliminate build warnings.
9166         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
9167
9168 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
9169            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
9170
9171         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
9172         removed -penable-stack, added comment for stack pragma, added
9173         warning for not initializing the stack/frame registers, removed
9174         comment at interrupts section
9175
9176         Stack is made permanent, there is no ability to disable stack usage.
9177         * src/pic16/device.h,
9178         * src/pic16/device.c: removed all references to USE_STACK macro,
9179         * src/pic16/device.c (pic16_dump_section): when no elements in
9180         rlist, free rlist before return,
9181         * (pic16_dump_int_registers): NEW, internal registers are a new set
9182         of general purpose registers reused by each function,
9183         * (checkAddReg): returns 1 if registers is added to set,
9184         * (pic16_groupRegistersInSection): when a registers is of type
9185         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
9186         * src/pic16/device.h: memRange and Assigned Memory are deleted,
9187         SRCASECMP macro is moved here from device.c
9188         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
9189         PO_PCLATU, PO_PRODL, PO_PRODH,
9190         * (pic16_pCodeOpType, genMinus,
9191         changed compares to "a" register, with AOP_ACC,
9192         * (pic16_genPlus): fixed some bugs and indented properly,
9193         * (pic16_addSign): changed size to size+offset in the MOVWF
9194         instruction,
9195         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
9196         multiply 8-bit operand by literal, result is 8-bit,
9197         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
9198         multiply 2 8-bit operand, result is 8-bit,
9199         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
9200         genUMult8X*_16,
9201         * src/pic16/gen.c: changed accUse to contain WREG only,
9202         * (pic16_emitcomment): renamed to pic16_emitpcomment,
9203         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
9204         true, do not use immediate addressing any more unless sym is a
9205         pointer in codespace,
9206         * (aopForRemat): do not use immediate addressing when symbol not in
9207         codespace and when symbol's address is requested,
9208         * (aopOp): for-loop in if(sym->accUse) is modified for the new
9209         accUse size (= 1),
9210         * (aopGet): added case for AOP_ACC and don't return "accumulator
9211         bug" but WREG instead,
9212         * (popGetTempReg): pushes contents of temporary register in stack,
9213         * (popReleaseTempReg): pops contents of temporary register from
9214         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
9215         * (pic16_popGet): separated case AOP_ACC to return register WREG
9216         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
9217         or PO_IMMEDIATE and initializes their instance/offset appropriately,
9218         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
9219         the use of immediate pointers to certain cases only.
9220
9221         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
9222         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
9223         * (assignResultValue, genCall, genRet): modified to use the new
9224         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
9225         genPcall is still broken,
9226         * (genFunction): added code to create 'A' type pBlocks when
9227         interrupt functions are generated, code not extensively tested yet,
9228         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
9229         * (genEndFunction): modified so ISRs pop stored registers from stack,
9230         * (genMultOneByte): cleanup,
9231         * (AccRsh): added flag andmask, to and result with appropriate mask,
9232         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
9233         * (genDataPointerGet): fixed and reenabled its use,
9234         * (genNearDataPointerGet): bugs fixed,
9235         * (genDataPointerSet): bugs fixed,
9236         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
9237         pic16_DumpSymbol, pic16_DumpOp,
9238         * src/pic16/genutils.h: function prototypes for the above functions,
9239         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
9240         pointers,
9241         * (pic16emitRegularMap): many many many improvements, but needs a
9242         major cleanup,
9243         * src/pic16/main.c: enable_stack in pic16_options is removed,
9244         * (_pic16_parseOptions): removed command line options -penable-stack,
9245         * (_process_pragma): emit stack symbol only when stack pragma is
9246         processed,
9247         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
9248         redirected to FSR0L/FSR0H pair,
9249         * (pic16_get_op, pic16_get_op2): modifications and improvements,
9250         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
9251         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
9252         for immediates,
9253         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
9254         * (dumpPicOptype): NEW,
9255         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
9256         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
9257         with movff instruction,
9258         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
9259         added pic16_int_regs, some packRegsFor* functions are commented out,
9260         because produce errors,
9261         * src/pic16/NOTES: minor modifications
9262
9263 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9264
9265         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
9266         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
9267         --pack-iram.
9268         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
9269         * as/mcs51/lkaomf51.c: fixed bug #895763
9270
9271 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
9272
9273         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
9274
9275 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9276
9277         * doc/sdccman.lyx: added details about the HC08 storage classes and
9278         interrupts, fixed the register usage info for z80 & gbz80
9279
9280 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
9281
9282         * doc/sdccman.lyx: added more pic16 port documentation
9283         * device/include/pic16/: added header pic18fregs.h
9284
9285 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
9286
9287         * doc/sdccman.lyx: added Vangelis' contribution
9288
9289 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9290
9291         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
9292         extend to the next CALL or PCALL, not just to the next CALL.
9293
9294 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
9295
9296         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
9297
9298 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9299
9300         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
9301         bug #895752 and a better fix for bug #716790
9302
9303 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9304
9305         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
9306
9307 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9308
9309         * doc/sdccman.lyx: minor changes, minor changed
9310
9311 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
9312
9313         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
9314         which can't handle SDCC_NEWONEBYTEOPS,
9315         (geniCodeMultiply): removed conversion from mult to shift for pic14
9316         and pic16
9317
9318 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9319
9320         * src/hc08/gen.h,
9321         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
9322         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
9323         thus fixing bug #895406
9324
9325 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
9326
9327         * device/lib/_modsint.c,
9328         * device/lib/_modslong.c: sign follows divisor only
9329         * src/hc08/gen.c (genMultOneByte): if result size is 1,
9330         signs or signedness can be ignored
9331         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
9332         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
9333         added optimization for IFX,
9334         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
9335         arguments;
9336         reenabled optimization for IFX, which was removed on 2004-01-11
9337         * src/SDCCast.h: added return type IFX
9338         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
9339         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
9340         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
9341         SDCC_OLDONEBYTEOPS selects the old behaviour
9342         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
9343         changed again and commented promotion rule
9344         * src/SDCCval.c (valDiv): promotion no longer necessary
9345         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
9346         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
9347         rewritten
9348         * support/regression/tests/onebyte.c: added
9349
9350 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
9351
9352         * gen.c (genInline): reverted to old code for assemnling inline
9353         code because of bug reported James Chadd
9354
9355 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
9356
9357         * ralloc.h: missing declarations from previous patch,
9358         seems that patch for ralloc.h was never applied, fixed
9359
9360 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
9361            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
9362
9363         * pcode.c,
9364         * pcode.h,
9365         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
9366         indirect addressing. Marked FSR0 as deprecated
9367         * gen.c (pointerCode): commented out, not needed now
9368         (pic16_popGet2p): new MOVFF helper function
9369         (genGenPointerGet),
9370         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
9371         (shiftRLong): removed duplicate debugging info
9372
9373 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9374
9375         * src/ds390/gen.c (genNearPointerGet),
9376         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
9377         optimization with bits, but not bitfields.
9378         * src/ds390/ralloc.c (packRegisters),
9379         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
9380
9381 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
9382
9383         * src/SDCCcse.c (algebraicOpts): copy operands before modification
9384
9385 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9386
9387         * src/SDCCsymt.h,
9388         * src/SDCCicode.c (operandFromSymbol),
9389         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
9390         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
9391         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
9392         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
9393         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
9394         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
9395         bug #892038
9396         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
9397         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
9398         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
9399         * src/SDCCsymt.c (newSymbol),
9400         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
9401         enumerator_list),
9402         * src/SDCCval.h,
9403         * src/SDCCval.c (newiList): fixed bug #885705
9404
9405 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9406
9407         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
9408         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
9409
9410 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9411
9412         * device/include/c8051f120.h,
9413         * device/include/c8051f300.h,
9414         * device/include/c8051f310.h: added/updated header files for Silicon
9415         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
9416         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
9417         in new section Submitting patches
9418
9419 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9420
9421         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
9422         genFarPointerGet, genCodePointerGet, genGenPointerGet,
9423         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
9424         genGenPointerSet),
9425         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
9426         genFarPointerGet, genCodePointerGet, genGenPointerGet,
9427         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
9428         genGenPointerSet),
9429         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
9430         genFarPointerGet, genCodePointerGet, genGenPointerGet,
9431         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
9432         genGenPointerSet),
9433         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
9434         genFarPointerGet, genCodePointerGet, genGenPointerGet,
9435         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
9436         genGenPointerSet): fixed bug #892400
9437         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
9438         to eliminate build warnings.
9439         * src/SDCCast.c (processParms),
9440         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
9441         fixed bug 751859
9442         * support/valdiag/valdiag.py: added GCC to the list of defines active
9443         when compiling with gcc
9444
9445 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9446
9447         * support/Util/SDCCerr.h,
9448         * support/Util/SDCCerr.c,
9449         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
9450         with an incomplete type (fixed bug #883734)
9451         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
9452
9453 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9454
9455         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
9456
9457 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9458
9459         * src/SDCCast.c (decorateType),
9460         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
9461         function pointer implementation
9462         * support/regression/tests/funptrs.c: added tests to verify both forms
9463         of function pointers work correctly. Added tests to verify parameters
9464         are passed in the correct order.
9465
9466 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
9467
9468         * device.c (regCompare): registers are sorted by ascending
9469         address and increasing size,
9470         * main.c (_pic16_finaliseOptions): removed the declaration
9471         of compiler macro MCU. Now a macro of the format pic18fxxxx
9472         will be defined from the command line
9473
9474 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
9475             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
9476
9477         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
9478         PCOP_RLCF was overwritten!
9479         * gen.c (genSkip): commented out calls to pic16_emitcode,
9480         * (genCmpEQ): fixed "long" compares, only high word did get compared,
9481         * (genlshTwo),
9482         * (genRRC): added debugging info,
9483         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
9484         overwritten while shifting,
9485         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
9486         overwritten while shifting,
9487         * (AccLsh),
9488         * (AccRsh),
9489         * (shiftLLeftOrResult),
9490         * (shiftRLeftOrResult),
9491         * (shiftRLong),
9492         * (shiftLLong): Implemented with pic16_emitpcode
9493         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
9494         * (genLeftShift): Fixed bug, operand for shift by variable always
9495         was "and"ed with 0x0f,
9496         * (genLeftShiftLiteral),
9497         * (genrshTwo),
9498         * (genRightShiftLiteral): added debugging info,
9499         * (genrshFour): added comment,
9500         * (genRightShift): determined signedness from operand "left"
9501         instead of "result"
9502
9503 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9504
9505         * src/SDCCicode.c (geniCodeParms),
9506         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
9507         function pointers, fixed function pointer bugs #861242 and #861896
9508
9509 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9510
9511         * device/include/c8051f000.h,
9512         * device/include/c8051f120.h,
9513         * device/include/c8051f300.h: added header files for Silicon
9514         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
9515
9516 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
9517
9518         * src/SDCCast.c (processParams): added new type flow and restructured
9519         (gatherAutoInit): added new type flow
9520         (addCast): cosmetic changes
9521         (getLeftResultType): added new type flow for array indices, patch
9522         provided by Stas, see FR #877103
9523         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
9524         array index patch by Stas
9525         * src/SDCCast.h: added prototype getResultTypeFromType()
9526         * src/SDCCval.h,
9527         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
9528         * src/pic/glue.c (pic14emitStaticSeg),
9529         * src/pic16/glue.c (pic16emitStaticSeg),
9530         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
9531         for initialization of symbols
9532         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
9533         * support/Util/SDCCerr.h:
9534         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
9535         * .version: bumped version number to 2.3.8
9536         * device/include/Makefile.in (install),
9537         * doc/Makefile (install): changed to 'rm `find ...`' construct to
9538         avoid warnings
9539
9540 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
9541
9542         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
9543         Slade Rich fixed an optimization bug
9544         * src/pic/pcodepeep.c,
9545         * src/pic/pcoderegs.c
9546         * doc/Makefile (install): added test for directory
9547
9548 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9549
9550         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
9551         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
9552         * src/pic/ralloc.c (getRegPtr, getRegGpr),
9553         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
9554         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
9555         * as/mcs51/asexpr.c (term),
9556         * as/hc08/asexpr.c (term): fixed bug #887146
9557
9558 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9559
9560         * src/z80/gen.c (genMult): handle single byte result product
9561         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
9562         DUMMY_READ_VOLATILE (fixed bug #886367)
9563
9564 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
9565
9566         * support/regression/tests/libmullong.c: fixed logic, on little endian
9567         hosts we ended without a mullong_wrapper()
9568
9569 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9570
9571         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
9572         virus/worm forged address usage.
9573
9574 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
9575
9576         Fixed promotion, it should be done on AST level:
9577         * src/SDCCast.c (addCast): added promotion to int
9578         (decorateType): updated call to upCast()
9579         * src/SDCCicode.c (geniCodeLeftShift): removed call to
9580         usualUnaryConversions()
9581
9582 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
9583
9584         * support/regression/tests/literalop.c (mulWrapper): Added a
9585         wrapper to remove integer overflow warnings.
9586
9587         * support/regression/tests/float_trans.c: Made work on host.
9588
9589         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
9590         location of sz80.
9591
9592         * support/regression/generate-cases.py (main): Changed from inline
9593         to a main method.
9594
9595         * doc/Makefile (install): Changed to depth first to get rid of
9596         missing directory install warning.
9597
9598         * as/Makefile (install-doc): Made work on Mac.
9599
9600 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
9601
9602         * src/SDCCast.c: added an additional type flow in decorateType() of
9603         opposite direction, see feature request #860006; it's enabled at runtime
9604         by setting the environment variable SDCC_NEWTYPEFLOW
9605         * src/SDCCast.h: changed prototype of decorateType()
9606         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
9607         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
9608         'char' to 'int' can be omitted, if both operands are 'unsigned char';
9609         see feature request #877103
9610         * src/SDCCval.c: updated call of decorateType()
9611         (valBitwise): fixed bug #882876
9612         (valMinus): added promotion
9613         (valLogicAndOr): result is unsigned
9614         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
9615         * src/SDCCsymt.c (computeType),
9616         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
9617         must not cause an unsigned operation
9618         * src/pic/glue (pic14emitRegularMap),
9619         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
9620
9621 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
9622
9623         * src/pic/pcode.c (PCodeID): commented out left over debug code
9624
9625 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
9626
9627         * support/valdiag/tests/overflow.c: added shift tests
9628         * src/pic/device.c,
9629         * src/pic/gen.c,
9630         * src/pic/gen.h,
9631         * src/pic/glue.c,
9632         * src/pic/main.c,
9633         * src/pic/pcode.c,
9634         * src/pic/pcode.h,
9635         * src/pic/pcodepeep.c,
9636         * src/pic/pcoderegs.c,
9637         * src/pic/ralloc.c,
9638         * src/pic/ralloc.h: applied patch from Slade Rich;
9639         added support for multiple code pages and multiple RAM banks on the
9640         PIC 14 port. The ASM files now no longer simply assume all the
9641         code / RAM are in the same page / bank. This means the linker can
9642         safely allocate code/RAM of separate ASM files to different pages/banks.
9643         * doc/sdccman.lyx: added Slade's tips
9644         * src/mcs51/peeph.def: fixed bug #880768
9645
9646 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9647
9648         * src/hc08/ralloc.c (rematStr): fixed bug #879282
9649         * src/SDCCast.c (decorateType): fixed bug #880197
9650
9651 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
9652
9653         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
9654         getopt.h.
9655
9656         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
9657         strtof is not part of C89 and isn't included with Mac OS X.
9658
9659 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9660
9661         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
9662         shiftL2Left2Result): fixed bug #879326
9663         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
9664         (genMultOneByte): fixed bug in signed vs unsigned multiplication
9665         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
9666         address fetch for clr instruction
9667         * device/lib/hc08/_mulint.c: created optimized assembly version
9668         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
9669
9670 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
9671
9672         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
9673         proposed in FR #877103
9674
9675 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
9676
9677         * src/SDCCval.c (cheapestVal): added missing checks
9678         * src/SDCCicode.c (usualBinaryConversions): fixed condition
9679         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
9680
9681 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
9682
9683         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
9684         equal operands
9685
9686 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
9687
9688         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
9689         loaded with the linker search paths (-L arguments) and the libraries
9690         to be linked with the current source (-l arguments). Changes
9691         currently will affect only the pic16 port.
9692         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
9693         include path the port specific paths and port specific libraries,
9694         * gplink command now contains the $3 argument,
9695         * src/pic16/device.h,
9696         * src/pic16/device.c,: structure PIC_device is made public and
9697         renamed to PIC16_device, the same for variable Pics which is renamed
9698         to Pics16. Updated all references to them.
9699         * src/pic16/glue.c (pic16glue): corrected bug with code
9700         initialization which bypassed the variable initializations block.
9701
9702         * device/lib/pic16/Makefile.rules: removed --penable-stack from
9703         COMPILE_FLAGS and added the --nostdinc option
9704
9705 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9706
9707         * device/include/mc68hc908jb8.h: Register defs for another member
9708         of the hc08 family. Contributed by Bjorn Bringert - thanks!
9709
9710 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
9711
9712         Documenting changes from previous commits.
9713         * configure.in (version 1.56),
9714         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
9715         when generating output files to configure the pic16 library,
9716         but now I've commented it out, since gputils aren't installed in the
9717         SF compile farm, so library won't compile
9718
9719         * device/lib/Makefile.in (version 1.56): initially I've added in
9720         target 'all' the prerequestive 'model-pic16' so it compiled the
9721         pic16 library, but now I've commented it out for the same reasons
9722         above,
9723         * added targets 'model-pic16' and 'objects-pic16' to compile the
9724         library
9725         * added target 'port-specific-objects-pic16' to handle the
9726         generated libraries and copy them into the build/ directory
9727         * added target 'clean-intermediate-pic16' to clean intermediate
9728         files into pic16 directory
9729         * in target 'installdirs' added line to create directory pic16 in
9730         the installation path
9731
9732         * device/include/Makefile.in (version 1.11): in target 'install'
9733         added lines to copy all header files to installation path,
9734         * in target 'installdirs' added line create directory for pic16
9735         headers in the installation path
9736
9737 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
9738
9739         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
9740          a function call
9741
9742 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
9743
9744         * configure,
9745         * device/lib/configure.in,
9746         * device/lib/configure: fixed for autoconf 2.57
9747
9748 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9749
9750         * src/z80/main.c (_parseOptions): fixed the portmode= command line
9751         option so that it actually works. Made it specific to the z80, since
9752         the gbz80 doesn't have these kinds of I/O ports.
9753
9754 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9755
9756         * device/include/z180.h,
9757         * device/lib/_memcpy.c,
9758         * device/lib/_memmove.c,
9759         * device/lib/_mulint.c,
9760         * device/lib/ser_ir.c,
9761         * device/lib/ser_ir_cts_rts.c,
9762         * device/lib/_strcmp.c,
9763         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
9764         * src/z80/main.c (_process_pragma): add support for pragmas bank and
9765         portmode; added deprecation warning for bank= and protmode= forms.
9766         Also, guard against buffer overflow.
9767         * src/z80/gen.c (aopGet): generate better code for sfr banked read
9768
9769 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9770
9771         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
9772         changed interrupt vector table generation to only emit declared vectors.
9773         * device/include/Makefile.in: added missing backslash
9774         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
9775
9776 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
9777
9778         Mainly changes to support compilation of the device libraries
9779         * src/pic16/device.c: stack is allocated via symbol and not
9780         via literal number. The symbol is placed in the corresponding
9781         position of the data ram
9782         * (pic16_dump_section): relocatable and absolute uninitialized
9783         data are now emitted in sorted order to reduce section naming,
9784         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
9785         weren't marked as being in the access bank,
9786
9787 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
9788
9789         Added portion of GNU PIC Library under the directory
9790         device/include/pic16 and device/lib/pic16. These files
9791         contain the declarations of SFRs for the PIC18Fxx2 devices.
9792         The directory is initialized via configure from toplevel.
9793
9794 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
9795
9796         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
9797         the spilllocations to be compared correctly
9798
9799 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
9800
9801         * src/SDCCast.c (decorateType): fixed bug introduced today
9802
9803 2004-01-12  Borut Razem <borut.razem AT siol.net>
9804
9805         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
9806         doc/sdccman.lyx: upper case pragmas are deprecated
9807
9808 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
9809
9810         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
9811         in simpler and even better code
9812
9813 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
9814
9815         * src/SDCCicode.c (operandOperation): fixed bug #874819
9816         * src/SDCCast.c (decorateType): fixed
9817         char foo (unsigned long ul) { return ul > 0; }
9818
9819 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9820
9821         * doc/sdccman.lyx: Moved and added some sections, small changes
9822         all over. Telling LaTeX to be less strict with word spacing
9823         to better keep the right margin. Changed some notes about
9824         maintainance of the ports in section 3.2.1 - is it OK like this?
9825
9826 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
9827
9828         SDCC source changes:
9829         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
9830         convilong): modified to inform the pic16 port that builtin functions
9831         are external
9832
9833         PIC16 PORT specific changes:
9834         * src/pic16/device.c pic16_dump_equates() added,
9835         processor registers declared internally by the port are emitted in
9836         the translation as equates,
9837         * src/pic16/gen.c: inline code is passed unprocessed to the
9838         translation,
9839         * (pic16_popGetLit2): fnuction modified to take second operand as
9840         pCodeOp pointer and not as literal,
9841         * (popRegFromIdx): prefixed with pic16_,
9842         * (pic16_popCombine2): modified to receive already allocated pCode
9843         operands,
9844         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
9845         * (genFunction): initializes local stack frame and pushes on stack
9846         all the registers used by this function,
9847         * (genEndFunction): restores all registers from stack and restores
9848         stack frame,
9849         * src/pic16/glue.c (pic16emitRegularMap): various changes and
9850         improvements,
9851         * (pic16glue): changed the program startup sequence,
9852         * added new dbName code 'A' for functions placed in absolute section
9853         * src/pic16/main.c: added function attribute _naked,
9854         * added pragma 'code' to place a fnuction at an absolute address,
9855         * added command line arguments --debug-ralloc and --pcode-verbose,
9856         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
9857         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
9858         * (pic16_newpCodeOpLit2): modified to take the second operand as
9859         pCodeOp pointer,
9860         * (pic16_printpBlock): modified to emit each function in a separate
9861         section,
9862         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
9863         UPPER for immediate operands,
9864         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
9865         instruction,
9866         * src/pic16/peeph.def: all peepholes with movff are commented out,
9867         because there is a problem in the pcode peep optimizer,
9868         * src/pic16/ralloc.c: the register allocator can now reuse local
9869         function symbols for another function. This saves register usage.
9870         * src/pic16/ralloc.h: added flag isLocal in structure regs,
9871
9872         Added file src/pic16/NOTES with information about program writing on
9873         the current port version.
9874
9875 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9876
9877         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
9878         and peephole 252 (array access)
9879
9880 2004-01-09  Borut Razem <borut.razem AT siol.net>
9881
9882         * src/SDCCmain.c : fixed #872250: -l command line defined library
9883           files are scanned before standard library files
9884
9885 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9886
9887         * src/SDCCast.c (decorateType): fixed bug #874046
9888
9889 2004-01-09  Borut Razem <borut.razem AT siol.net>
9890
9891         * support/scripts/sdcc.nsi: remove previous installation
9892
9893 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9894
9895         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
9896         bytes for last interrupt vector (mcs51)
9897         * sdcc.spec: fixed typo
9898
9899 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9900
9901         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
9902         gen51Code): more efficient parameter receive for --model-large
9903         ("bug" #845294)
9904
9905 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9906
9907         * src/ds390/main.c,
9908         * src/z80/main.c: added missed needLinkerScript flags (more than
9909         one port structure defined in these file)
9910         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
9911         bug #795325
9912
9913 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
9914
9915         * src/SDCCmain.c: removed various references to DEFAULT_PORT
9916         * src/port.h: added flag needLinkerScript in port->linker
9917         structure to inform whether to create a .lnk file or not,
9918         * src/avr/main.c,
9919         * src/ds390/main.c,
9920         * src/hc08/main.c,
9921         * src/mcs51/main.c,
9922         * src/pic/main.c,
9923         * src/pic16/main.c,
9924         * src/xa51/main.c,
9925         * src/z80/main.c: changed appropriately to configure
9926         needLinkerScript flag
9927         * src/pic/gen.c,
9928         * src/pic16/gen.c (genAddrOf): fixed bug #863624
9929         * src/pic/glue.c: added variable udata_section_name to
9930         override default uninitialized data segment definition for
9931         devices only with SHAREBANK memory (reported from Erik Epetrich)
9932         * (pic14emitOverlay): modified to emit a commented overlay segment
9933         directive when no overlay data exist
9934         * (picglue): modified to emit uninitialized data segment
9935         according to udata_section_name
9936         * src/pic/main.c (_pic14_parseOptions): added command line
9937         options --udata-section-name=[name] to override default
9938         udata definition name
9939         * modified _linkCmd and _asmCmd to include compiler passed
9940         arguments via -W option
9941         * src/pic16/main.c: added $l in _asmCmd, changed extension for
9942         object file from '.rel' to '.o' in port->linker structure,
9943         changed size of fptr from 2 to 3 in port structure
9944
9945 2004-01-07  Borut Razem <borut.razem AT siol.net>
9946
9947         * support/scripts/sdcc.nsi: update PATH
9948         * support/scripts/sdcc.ico: craeted
9949
9950 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
9951
9952         * device/include/Makefile.in: fix install
9953         * doc/Makefile: fix install
9954
9955 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9956
9957         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
9958         in bug #860505
9959         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
9960         how the function variable allocation summary is displayed; also
9961         include information about variables allocated to the overlay
9962         segment
9963
9964 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9965
9966         * as/mcs51/lkmain.c: Help about -Y option
9967         * as/mcs51/lkarea.c: Fixed gcc warnings
9968
9969 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
9970
9971         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
9972         fixed warning
9973         * support/valdiag/tests/overflow.c: added
9974         * src/SDCCast.c (decorateType),
9975         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
9976         LEFT_OP (left shift)
9977
9978 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9979
9980         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
9981         (default behaviour).
9982
9983 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9984
9985         A python script to validate compiler diagnostic messages. It can be
9986         used to verify that sdcc complains about bad c source code and
9987         gives a good location of the error.
9988         * support/valdiag/Makefile,
9989         * support/valdiag/valdiag.py,
9990         * support/valdiag/tests/*
9991
9992 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9993
9994         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
9995         * src/SDCCsymt.c (newEnumType),
9996         * src/SDCCsymt.h
9997         * support/Util/SDCCerr.c,
9998         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
9999         enum related bugs.
10000         * support/regression/tests/enum.c: added test for enum values that
10001         require at least 2 bytes of storage.
10002
10003 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
10004
10005         * src/common.h: added ifndef/define/endif macros
10006         around the header file.
10007         Bug reported from Jesus Calvino-Fraga
10008
10009 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
10010
10011         * sdcc.spec: updated
10012         * device/include/Makefile.in: don't install CVS directories
10013         * device/lib/Makefile.in: added removal of CVS directories after install
10014         * doc/Makefile: fixed install, added local_icons
10015         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
10016         * src/mcs51/gen.c (genRightShift): fixed bug #870788
10017         * src/ds390/gen.c (genRightShift): fixed bug #870788
10018         * src/SDCCast.c (decorateType): fixed bug #870781
10019
10020 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
10021
10022         PIC16 port related changes:
10023         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
10024         added variable stackPos,
10025
10026         * gen.c: genCall, assignResultValue: added support for
10027         pushing/retrieving function parameters to/from stack,
10028         genFunction,genEndFunction: setup stack frame for the
10029         generated function,
10030         genAddrOf: will be changed according to bug 863624
10031
10032         * added files genutils.c and genutils.h which contain gen*
10033         debugged and optimised functions extracted from gen.c
10034
10035         * glue.c: added variable 'externs' which holds extern symbols,
10036         pic16emitRegularMap: is modified to properly handle relocatable
10037          symbols under the new scheme,
10038         pic16createInterruptVect: is modified
10039         pic16printPublics: is modified to emit 'global' assembler directives,
10040         added pic16_printExterns to print extern symbols,
10041         pic16glue: initializes stack/frame pointer in the beginning of
10042         the assembly output. Temporary hack, will be corrected later,
10043         because gplink yet does not support stack and SDCC does not
10044         yet support a type of crt0.o object to create the final binary.
10045
10046         * Removed many lines that contain 8051 legacy code.
10047         * The code is finally placed under a 'code' directive.
10048         * Added port specific options.
10049
10050         * _process_pragma: simplified since now we do not need *special*
10051         include file to define SFR registers. But a separate header
10052         will be needed. This will be developed later.
10053         * _pic16_parseOptions: added, parses port specific options:
10054         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
10055         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
10056         --preplace-udata-with=
10057
10058         * _pic16_setDefaultOptions: modified to initialize section names,
10059         but hack is temporarly out of order since it needs improvement.
10060         * _pic16_genAssemblerPreamble: configuration words are emitted by
10061         their address instead of their name. This part is incomplete and
10062         supports only the 18Fxx2 devices. Other devices will emit an error
10063         during assembly since they do not contain the same set of config
10064         registers
10065         * _pic16_genIVT: is modified,
10066
10067         * pcode.c: added definitions for some hardware registers that are needed
10068         for stack support
10069         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
10070         All PCI entries are updated. Now LFSR is supported.
10071         * Removed pic16_pciTRIS is mentioned by mdubuc in source
10072         * added pic16_newpCodeOpLit2 to support instructions with
10073         two literal arguments
10074         * pic16_pCode2str: corrected code that emits assembler instructions
10075         with two literal operands and those that have an access bit modifier
10076         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
10077         this fixes a bug which caused some labels to be lost, when an
10078         assembler directive was added, i.e. banksel,
10079         * pic16_FixRegisterBanking: improved logic that causes the insertion
10080         of bank switching,
10081         * InlineFunction: functions that are called once, are not any more
10082         inlined. This can be a port option in the future,
10083
10084         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
10085
10086         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
10087         hold the corresponding uninitialized symbols,
10088         * pic16_allocProcessorRegister: registers have explicit marked the
10089         accessBank field,
10090         * pic16_allocInternalRegister: registers are explicit marked as
10091         not used,
10092         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
10093         processing list, so bit registers were lost,
10094         *
10095
10096         * ralloc.h: added field 'accessBank' and original symbol operand
10097         in register definition,
10098         * removed the field isMapped from register definition,
10099
10100         ** Several functions have been removed from various sources:
10101         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
10102         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
10103         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
10104         pic16_assignRelocatableRegisters
10105
10106         ** others have been introduced:
10107         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
10108         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
10109
10110 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
10111
10112         * support/scripts/inc2h.pl: changed definition of BIT_AT
10113         to emit 'sbit at' instead of 'bit at'. This was a request.
10114
10115         PIC16 port related preliminary changes:
10116         * gen.c: prefixed function popRegFromString with
10117         pic16_ and all references to it corrected
10118         * pcode.c: all pic16_pc_* hardware registers prefixed
10119         with underscore (_),
10120         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
10121         * ralloc.c: newReg(): when register is REG_SFR then
10122         set address to rIdx,
10123         pic16_allocProcessorRegister(): marks register wasUsed=0
10124         pic16_writeUsedRegs(): added a call to assign processor
10125         registers via pic16_assignFixedRegisters
10126
10127 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10128
10129         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
10130         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
10131         variables in unused register banks.  Also the SSEG is placed
10132         wherever there is enough space for it, and IDATA can be anywhere
10133         in internal RAM.  For now compile using -Wl-Y[stack_size].
10134         The mem file is different for this option as well, since it
10135         makes no sense of talking about DSEG lenght.
10136
10137 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
10138
10139         * src/SDCClrange.c: fixed bug 869095 that caused segfault
10140         in certain cases, e.g. when ROM assignment, patch provided
10141         from Albert den Haan.
10142
10143 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
10144
10145         Many signedness and type propagation fixes:
10146         * src/SDCCicode.c: made geniCodeCast() static
10147         replaced SPEC_ by IS_ (cosmetic)
10148         (operandOperation): fixed div and mod operation
10149         (usualBinaryConversions): added support for promotion of char
10150         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
10151         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
10152         (geniCodeAdd): an array index will stay unsigned, even if promoted
10153         from char to int
10154         (geniCodeArray): ditto
10155         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
10156         * src/SDCCsymt.c (computeType): added more support for char;
10157         promotion of char is selectable by promoteCharToInt, fixed signedness
10158         for all cases
10159         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
10160         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
10161         * src/SDCCval (val*): replaced signedness calculation by
10162         computeType()
10163         rearranged if-branches (cosmetic)
10164         (valShift): added warning W_SHIFT_CHANGED
10165         (valCompare): fixed problem with different types
10166         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
10167         * support/regression/tests/literalop.c: added many cases
10168         * support/regression/tests/ast_constant_folding.c: changed finally to
10169         'unsigned int'
10170         * .version: new year, new version: 2.3.7
10171         * src/SDCCmain.c (main): applied patch #866468
10172         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
10173         provided by Scott Bronson
10174         * doc/sdccman.lyx: updated documentation for sdcdb
10175         updated and added chapter tips
10176
10177 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10178
10179         * src/SDCCsymt.h: missing from yesterday's commits
10180
10181 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10182
10183         * src/SDCC.y (struct_or_union_specifier),
10184         * support/Util/SDCCerr.c,
10185         * support/Util/SDCCerr.h: verify that struct & union tags are used
10186         as declared.
10187
10188 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10189
10190         * src/SDCCglobl.h: missing from yesterday's commits
10191
10192 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10193
10194         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
10195         sft_attributes, struct_declaration, parameter_declaration,
10196         type_name, start_block, declaration_list),
10197         * src/SDCC.lex (check_type): support redefinition of typedef names
10198
10199 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10200
10201         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
10202         aligned xdata arrays. Erik helped me with the if clause.
10203
10204 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10205
10206         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
10207         warning
10208
10209 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10210
10211         * src/SDCCast.h,
10212         * src/SDCCast.c (newAst_),
10213         * src/SDCCicode.h,
10214         * src/SDCCicode.c (ast2iCode, newiCode),
10215         * src/SDCCglobl.h,
10216         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
10217         expr, statement, expression_statement, selection_statement,
10218         iteration_statement, expr_opt, jump_statement): foundation for tracking
10219         sequence points
10220         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
10221         point code too)
10222
10223 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10224
10225         * support/Util/SDCCerr.c,
10226         * src/SDCCast.h,
10227         * src/SDCCast.c (createCase, createDefault, decorateType),
10228         * src/SDCClabel.c (labelUnreach),
10229         * src/SDCC.y (labeled_statement, jump_statement): More improvements
10230         to error messages.
10231         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
10232         (with thanks to Stas Sergeev)
10233         * device/include/time.h,
10234         * device/lib/time.c (CheckTime): suppress unreachable code warning
10235
10236 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10237
10238         * src/SDCCast.c (createIvalCharPtr),
10239         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
10240         bug #753752)
10241         * support/regression/tests/nullstring.c: tests for these two bugs
10242
10243 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10244
10245         * support/Util/SDCCerr.h,
10246         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
10247         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
10248         about storage class and 'at' used inside struct or union
10249         * src/SDCCBBlock.c (iCodeFromeBBlock),
10250         * src/SDCCcse.c (ifxOptimize),
10251         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
10252         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
10253         printIval, emitStaticSeg, emitOverlay),
10254         * src/SDCClabel.c (deleteIfx),
10255         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
10256         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
10257         gatherAutoInit, processParms),
10258         * support/Util/SDCCerr.h,
10259         * support/Util/SDCCerr.c (werrorfl): Support for better error location
10260         reporting for post-parse errors.
10261
10262 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10263
10264         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
10265         implicit casts via union; they don't work on big endian systems
10266         (possible fix for bug #861138)
10267
10268 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10269
10270         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
10271         * src/mcs51/main.c: fixed the fix for bug #737001
10272
10273 2003-12-15  Borut Razem <borut.razem AT siol.net>
10274
10275         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
10276
10277 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10278
10279         * support/makebin/makebin.c: put output in binary mode
10280
10281 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10282
10283         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
10284         xdata and data memory on startup. Set the environment variable
10285         SDCC_NOGENRAMCLEAR to disable this.
10286         * src/mcs51/peephole.def,
10287         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
10288         (allows non-interrupt and interrupt code to safely compete for a resource
10289         without the non-interrupt code having to disable interrupts)
10290
10291 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10292
10293         * src/SDCCicode.c (geniCodeAdd),
10294         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
10295         with valFromType if type might be a pointer and host is big endian).
10296         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
10297         types, not just integer types.
10298         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
10299         multiply defined with mismatching "at" address.
10300
10301 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10302
10303         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
10304         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
10305         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
10306         with embedded nulls (fixed bug #753752)
10307
10308 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10309
10310         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
10311         Apparently this did not see much testing (endless loop)
10312
10313 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10314
10315         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
10316
10317 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10318
10319         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
10320         gracefully handle NULL memmap pointers
10321
10322 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10323
10324         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
10325         instead of deleting the iCode when an operand is volatile
10326         * src/z80/gen.c (genDummyRead),
10327         * src/mcs51/gen.c (genDummyRead),
10328         * src/ds390/gen.c (genDummyRead),
10329         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
10330         not just IC_RIGHT
10331         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
10332         * src/SDCC.y: fixed bug #850420
10333
10334 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10335
10336         Applied z80 i/o port patch from Peter Townson and fixed some operators
10337         to better handle operands in A register.
10338         * device/include/z180.h
10339         * src/SDCC.y
10340         * src/SDCCglue.c
10341         * src/z80/gen.c
10342         * src/z80/gen.h
10343         * src/z80/main.c
10344         * src/z80/peeph-z80.def
10345         * src/z80/peeph.def
10346         * src/z80/z80.h
10347
10348 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10349
10350         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
10351
10352 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10353
10354         * device/lib/hc08/_mullong.c: Removed extra #endif
10355
10356 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10357
10358         * sim/ucsim/hc08.src/inst.cc,
10359         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
10360         carries from x to h
10361         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
10362         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
10363         * device/include/stdarg.h: fixed varargs for hc08
10364         * device/lib/Makefile.in,
10365         * device/lib/hc08/Makefile,
10366         * device/lib/hc08/_mulint.c,
10367         * device/lib/hc08/_mullong.c: fixed some endian problems
10368
10369 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10370
10371         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
10372         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
10373         * device/lib/_gptrget.c,
10374         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
10375
10376 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10377
10378         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
10379         * src/SDCCast.c (astErrors): fixed bug #846007
10380         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
10381
10382 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10383
10384         * src/SDCCast.c (decorateType): disabled a transformation I added in
10385         revision 1.188 (access to fields of a structure at an absolute address);
10386         it breaks with bitfields, extern declarations, and gcse analysis.
10387         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
10388         could be assigned through a pointer, so don't complain.
10389         * src/SDCCast.c (astErrors),
10390         * src/SDCCast.h,
10391         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
10392
10393 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
10394
10395         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
10396         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
10397         output of __config directives, since gpasm now supports them
10398         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
10399         pre-processor macro, i.e. -DMCU=p18f452
10400         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
10401         and modified to handle 'cast' icode similarly to '=' icode
10402         * src/pic16/device.h (typedef struct PIC_device): added field
10403         'extMIface' to indicate that chip has external memory interface
10404         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
10405         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
10406         18F8720
10407
10408 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10409
10410         * src/SDCC.y (pointer): fixed bug #846006
10411         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
10412         * src/SDCCast.c (decorateType): fixed bug #846009
10413         * src/ds390/peeph.def,
10414         * src/ds390/gen.c (genAnd, genOr),
10415         * src/mcs51/peeph.def,
10416         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
10417
10418 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10419
10420         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
10421         * src/SDCCdflow.c
10422         * src/SDCCcse.c
10423         * src/SDCCcse.h
10424         * src/SDCCBBlock.h
10425         * src/SDCCBBlock.c
10426
10427 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
10428
10429         fixed bug #845089
10430         * src/SDCCbitv.h,
10431         * src/SDCCbitv.c: added function to free a bitvector
10432         * src/SDCClrange.h,
10433         * src/SDCClrange.c: added function to recompute the liveranges
10434         * src/avr/ralloc.c,
10435         * src/ds390/ralloc.c,
10436         * src/hc08/ralloc.c,
10437         * src/mcs51/ralloc.c,
10438         * src/pic/ralloc.c,
10439         * src/pic16/ralloc.c,
10440         * src/xa51/ralloc.c,
10441         * src/z80/ralloc.c: recompute the liveranges after register packing
10442
10443 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
10444
10445         * src/SDCCloop.c (newInduction): fixed bug #845630
10446
10447 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10448
10449         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
10450         inadvertantly left behind from my 2003-11-12 change
10451
10452 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10453
10454         Updated headers I neglected to commit yesterday.
10455         * src/SDCClrange.h,
10456         * src/SDCCicode.h
10457
10458 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10459
10460         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
10461         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
10462         * src/SDCCopt.c (eBBlockFromiCode),
10463         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
10464         the creation of the key hash table from the sequencing so it can be used
10465         earlier (for some GCSE bug fixes still pending)
10466
10467 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10468
10469         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
10470         * support/regression/tests/addsub.c: testing genPlus shortcut
10471
10472 2003-11-15  Borut Razem <borut.razem AT siol.net>
10473
10474         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
10475
10476 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10477
10478         * src/SDCCcse.c (cseBBlock): fixed bug #527779
10479         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
10480         ordering is immaterial.
10481         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
10482
10483 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10484
10485         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
10486         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
10487         (SIGSEV) of bug #840381
10488         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
10489         unlink new file before rename if new and old filenames are the same)
10490
10491 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10492
10493         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
10494         uninitialized variables) for the mcs51. Set environment variable
10495         SDCC_GENRAMCLEAR to test.
10496         xdata initialization slightly shorter
10497
10498 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10499
10500         * src/SDCCsymt.h,
10501         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
10502         #838241 & 780691 (basicly the same bug)
10503         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
10504         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
10505
10506 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
10507
10508         * src/SDCCmain.c (linkEdit): "fix" #834252
10509
10510 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10511
10512         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
10513         * src/SDCCast.h,
10514         * src/SDCC.y: fixed bug #819403
10515
10516 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10517
10518         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
10519         the reentrant attribute.
10520         * src/hc08/gen.c (genPackBits): added missing stack readjustment
10521         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
10522         simulation
10523         * src/SDCCast.c (decorateType): fixed bug with storage class not being
10524         updated during pointer dereference; f.e. ~(((char *)1)*) was being
10525         erroneously reduced to a literal.
10526         * src/hc08/ralloc.c (packRegisters, rematStr),
10527         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
10528         some cases
10529
10530 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10531
10532         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
10533         * doc/sdccman.lyx: changed from 'article' to 'book'
10534         * doc/Makefile: readded test_suite_spec and cdbfileformat
10535
10536 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
10537
10538         * device/include/stdlib.h: include malloc.h to comply with ANSI
10539         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
10540
10541 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10542
10543         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
10544         * doc/clean.mk: also remove *.out files
10545         * doc/sdccman.lyx: some additions, larger top/bottom margins
10546
10547 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10548
10549         * src/SDCC.y: fixed bug #837365
10550         * support/regression/tests/bitopcse.c
10551         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
10552         a symbol (might be valop instead)
10553         * device/lib/Makefile.in: added errno.c to HC08SOURCES
10554         * device/lib/clean.mk: added hc08 to the cleaning list
10555
10556 2003-11-04  Borut Razem <borut.razem AT siol.net>
10557
10558         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
10559           made 2003-11-04
10560         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
10561           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
10562           malloc is declared in standard stdlib.h
10563
10564 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10565
10566         * device/lib/hc08/Makefile: need to clean .rel not .o files
10567         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
10568
10569 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10570
10571         * src/port.h,
10572         * src/hc08/main.c,
10573         * src/mcs51/main.c,
10574         * src/ds390/main.c,
10575         * src/z80/main.c,
10576         * src/avr/main.c,
10577         * src/pic/main.c,
10578         * src/pic16/main.c,
10579         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
10580         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
10581         tests (which uses the port's oclsExpense function)
10582         * src/SDCC.y,
10583         * src/SDCCast.c,
10584         * src/SDCCicode.c,
10585         * src/hc08/gen.c,
10586         * src/ds390/gen.c,
10587         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
10588
10589 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10590
10591         * src/SDCCcse.c (ifxOptimize),
10592         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
10593         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
10594         deleting the IFX iCode.
10595         * src/hc08/ralloc.c: reduced unneeded slocs
10596         * src/hc08/gen.c: fixed bug in asmopToBoolean
10597
10598 2003-11-04  Borut Razem <borut.razem AT siol.net>
10599
10600         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
10601           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
10602           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
10603           transferred to configure
10604
10605 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
10606
10607         Use headers defined in the C[++] standards:
10608         * sim/ucsim/gui.src/serio.src/fileio.cc
10609         * sim/ucsim/gui.src/serio.src/frontend.cc
10610         * sim/ucsim/gui.src/serio.src/main.cc
10611         * sim/ucsim/gui.src/serio.src/posix_signal.cc
10612         * support/Util/NewAlloc.c
10613         * as/hc08/lklibr.c
10614         * as/mcs51/lklibr.c
10615         * as/z80/aslist.c
10616         * as/z80/assym.c
10617
10618 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10619
10620         * Added MSVC projects for hc08 assembler and linker:
10621         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
10622         /as/hc08/link_hc08.dsp
10623
10624 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
10625
10626         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
10627
10628 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
10629
10630         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
10631
10632 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10633
10634         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
10635
10636 2003-10-31  Borut Razem <borut.razem AT siol.net>
10637
10638         * support/cpp2/cpplib.h,
10639           support/cpp2/cpplib.c,
10640           support/cpp2/cpplex.c,
10641           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
10642           to switch _asm block preprocessing on / off. Default is
10643           #pragma preproc_asm +
10644
10645 2003-10-31  Borut Razem <borut.razem AT siol.net>
10646
10647         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
10648           when outputting comment blocks (when executed with -C option) and
10649           _asm (SDCPP specific) blocks
10650
10651 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10652
10653         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
10654
10655 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
10656
10657         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
10658
10659 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
10660
10661         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
10662         * src/SDCCast.c (decorateType): fixed bug #832664
10663
10664 2003-10-31  Borut Razem <borut.razem AT siol.net>
10665
10666         * support/cpp2/cpplex.c: fixed for SDCPP:
10667           comments(when executed with -C option) and _asm blocks
10668           were included even if they where in skipped #if block.
10669           Applied solution from GCC cpp 3.3.2
10670
10671 2003-10-31  Borut Razem <borut.razem AT siol.net>
10672
10673         * src/SDCC.lex: sdcc now understands both formats:
10674           '# <line_number> <file_name>' and
10675           '#line <line_number> <file_name>'
10676         * support/cpp2/cppmain.c: sdcpp now generates the standard
10677           '# <line_number> <file_name>' instead of former
10678           '#line <line_number> <file_name>'
10679
10680 2003-10-30  Borut Razem <borut.razem AT siol.net>
10681
10682         * support/cpp2/cpphash.h,
10683         * support/cpp2/cpplib.h
10684         * support/cpp2/cpplex.c,
10685         * support/cpp2/cppmain.c,
10686         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
10687
10688 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10689
10690         Fixed a number of problems revealed by bug #827883.
10691         * src/SDCCloop.c (loopInvariants): Spill location of the
10692         result operand should be recomputed if extracted from
10693         a loop. Also, don't extract assignments of an iTemp
10694         from a literal.
10695         * src/SDCCast.c (isConformingBody): loop reversal should
10696         not occur if the control variable is involved with a
10697         relational operator.
10698
10699 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
10700
10701         * .version: bumped to 2.3.6 to reflect the big improvements
10702         made by Erik and Klaus. Thanks!
10703
10704 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
10705
10706         Replaced the livrange code.
10707         * src/SDCClrange.c: added new LR code
10708         * src/SDCCloop.c,
10709         * src/SDCCBBlock.h: removed remainig parts from old LR code
10710         * src/ds390/ralloc.c,
10711         * src/ds390/gen.c: minor fixes to make it work with new code
10712
10713 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10714
10715         * as/hc08/asm.h,
10716         * as/hc08/lkrloc.c,
10717         * src/hc08/gen.c,
10718         * src/hc08/ralloc.c: Fix various warnings related to the hc08
10719         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
10720         (tweaked fix for bug #818696)
10721
10722 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10723
10724         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
10725
10726 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10727
10728         * src/SDCCmain.c,
10729         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
10730         * src/mcs51/gen.c (gencjneshort),
10731         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
10732         more efficient (per Scott Bronson's suggestion)
10733
10734 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10735
10736         Extended the semantics of the critical keyword to include
10737         individual statements. See RFE #827755 and #799831
10738         * src/SDCC.y
10739         * src/SDCCicode.c
10740         * src/SDCCopt.c
10741         * src/SDCCast.c
10742         * support/Util/SDCCerr.c
10743         * support/Util/SDCCerr.h
10744         * src/mcs51/gen.c
10745         * src/ds390/gen.c
10746         * src/hc08/gen.c
10747
10748 2003-10-19  Borut Razem <borut.razem AT siol.net>
10749
10750         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
10751
10752 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10753
10754         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
10755         Fixed bug #818696
10756         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
10757         and predecrement operand is displayed
10758
10759 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
10760
10761         * src/SDCCval.c (valMinus): fixed bug #826041
10762
10763 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10764
10765         Some hc08 related updates that I missed earlier
10766         * sim/ucsim/stypes.h
10767         * support/regression/ports/hc08/spec.mk
10768
10769 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10770
10771         New target "hc08" for the Motorola 68hc08 family of micros
10772
10773         * configure
10774         * configure.in
10775         * Makefile
10776         * src/hc08/*
10777         * src/SDCCmain.c
10778         * src/port.h
10779         * sim/ucsim/hc08.src/*
10780         * sim/ucsim/configure.in
10781         * src/ucsim/configure
10782         * sim/ucsim/packages_in.mk
10783         * as/hc08/*
10784         * as/Makefile
10785         * device/include/mc68hc908qy.h
10786         * device/lib/hc08/*
10787         * device/lib/Makefile.in
10788         * support/regression/ports/hc08/*
10789         * support/regression/Makefile
10790
10791 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10792
10793         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
10794         regression test
10795         * src/ds390/gen.c (genCast): fixed bug #821957
10796
10797 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
10798
10799         * device/lib/logf.c: "fixed" overlay bug
10800         * support/regression/ports/host/spec.mk: added m library
10801         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
10802         * support/regression/tests/float_trans: added (for Eric)
10803
10804 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
10805
10806         * src/mcs51/gen.c (genCpl): fixed bug
10807         http://sf.net/mailarchive/message.php?msg_id=6263915
10808
10809 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
10810
10811         * src/SDCCast.c (decorateType): added extended constant folding
10812         * src/SDCCsymt.c (computeType): cleanup
10813         * src/SDCCval.c (valShift): minor optimization
10814         * support/regression/tests/ast_constant_folding.c: added
10815
10816 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10817
10818         * src/SDCCmain.c: removed some unintended changes
10819
10820 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10821
10822         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
10823         * src/z80/gen.c: fixed part of bug #817589
10824         * src/SDCCsymt.c (checkFunction): fixed bug #817895
10825
10826 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
10827
10828         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
10829         * src/SDCCcflow.c
10830         * src/SDCCcse.c
10831         * src/SDCCdflow.c
10832         * src/SDCClabel.c
10833         * src/SDCClrange.c
10834         * src/SDCCmem.c
10835         * src/SDCCopt.c
10836         * src/SDCCpeeph.c
10837         * src/SDCCset.c
10838         * src/avr/ralloc.c
10839         * src/ds390/ralloc.c
10840         * src/izt/ralloc.c
10841         * src/mcs51/ralloc.c
10842         * src/pic/ralloc.c
10843         * src/pic16/ralloc.c
10844         * src/xa51/ralloc.c
10845         * src/z80/ralloc.c
10846         * src/z80/gen.c: removed unused label "release:"
10847
10848 2003-10-06  Borut Razem <borut.razem AT siol.net>
10849
10850         * src/SDCC.lex: removed definition of unused variables
10851           save_optimize and save_options
10852
10853 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
10854
10855         * clean.mk: removed '=' in "-maxdepth=1"
10856         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
10857         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
10858
10859 2003-10-06  Borut Razem <borut.razem AT siol.net>
10860
10861         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
10862           my_unput() replaced by unput()
10863
10864 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
10865
10866         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
10867         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
10868         type-punned pointer will break strict-aliasing rules"
10869         Old LR behaviour is again default; Klaus' LR can be choosen by
10870         defining the environment variable LRKLAUS
10871         * src/SDCCBBlock.h
10872         * src/SDCCloop.c
10873         * src/SDCClrange.c
10874         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
10875         * clean.mk: fixed removal of files in bin/CVS/
10876         * device/lib/clean.mk: fixed removal of directories small and large
10877         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
10878         * src/SDCCicode.c,
10879         * src/SDCCval.c: removed superflous test for pedantic
10880
10881 2003-10-05  Borut Razem <borut.razem AT siol.net>
10882
10883         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
10884           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
10885           message "unmatched #pragma SAVE and #pragma RESTORE"
10886
10887 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10888
10889         * doc/sdccman.lyx: various additions and updates (interrupts, inline
10890           assembly, critical functions, atomic, nojtbound)
10891
10892 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
10893
10894         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
10895         * src/SDCCBBlock.h
10896         * src/SDCCloop.c
10897         * src/SDCCloop.h
10898         * src/SDCClrange.c
10899
10900 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10901
10902         * src/z80/gen.h,
10903         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
10904         * src/mcs51/gen.h
10905         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
10906         * src/ds390/gen.h
10907         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
10908         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
10909         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
10910
10911 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10912
10913         * src/z80/gen.c (genRet): fixed bug #524753
10914         * src/z80/gen.c (genCast): fixed internal error on cast from
10915         pointer to long
10916         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
10917         fix for bug #477835 to the z80
10918         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
10919         for tracking iCodes in the peephole optimizer for z80
10920
10921 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10922
10923         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
10924         the other part of bug #814548
10925         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
10926
10927 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
10928
10929         * src/SDCCcse.c: fixed part of bug #814548
10930
10931 2003-09-28  Borut Razem <borut.razem AT siol.net>
10932
10933         * src/asm.c: rewrite of printILine() to use temporary file instead
10934           a pipe
10935         * src/xa51/main.c: commented out declaration of int rewinds
10936
10937 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10938
10939         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
10940
10941 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10942
10943         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
10944         * src/asm.c (printILine): Fixed bug #811015
10945
10946 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10947
10948         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
10949         freeing.
10950
10951 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10952
10953         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
10954         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
10955         to correctly handle general case of AOP_PAIRPTR
10956         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
10957
10958 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10959
10960         * src/mcs51/ralloc.c (fillGaps),
10961         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
10962         register positioning bug)
10963
10964 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
10965
10966         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
10967
10968 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10969
10970         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
10971         genCodePointerGet, genGenPointerGet, genFarPointerSet,
10972         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
10973         (ralloc doesn't intentionally do this now, but perhaps later)
10974         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
10975         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
10976         register positioning bugs (Fixed bug #762602 and #795325)
10977         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
10978         (Fixed bug #808779)
10979         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
10980         lines that --i-code-in-asm generates
10981
10982 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10983
10984         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
10985         trying to fclose a FILE* that was already closed.
10986
10987 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10988
10989         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
10990         of const struct should be treated as if const themselves)
10991
10992 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
10993
10994         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
10995
10996 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10997
10998         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
10999         Unix (/n) and DOS (/r/n) line terminations.
11000
11001 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11002
11003         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
11004         bug #613775
11005
11006 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11007
11008         * src/mcs51/gen.c (genFunction, genEndFunction),
11009         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
11010         and restore of EA so that stack offsets to parameters are
11011         correct when using both critical and reentrant/stack-auto.
11012         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
11013         size (can be triggered in error if sloc is shared between
11014         different sized objects)
11015         * device/include/float.h: fixed macros to explicitly use
11016         unsigned long where needed
11017
11018 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
11019
11020         Feature req. 799831: added code to allow nesting of critical functions
11021         * src/mcs51/gen.c (genFunction, genEndFunction)
11022         * src/ds390/gen.c (genFunction, genEndFunction)
11023
11024 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11025
11026         * src/SDCCsymt.c (sclsFromPtr),
11027         * src/SDCCsymt.h,
11028         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
11029         support for standard C idiom of memory mapped variables; for
11030         example, *((xdata int*)0x1234) = 1 is now internally equivalent
11031         to xdata int at 0x1234 tempvar = 1.
11032         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
11033         provided by Akiya ISHIDA
11034
11035 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
11036
11037         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
11038         * src/SDCCval.c (constVal): added reduction from int to char
11039         * src/SDCCval.c (valMult, valDiv): fixed sign handling
11040         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
11041         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
11042         to ignore the sign
11043         * support/regression/tests/shifts.c: fixed
11044
11045 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11046
11047         * src/z80/gen.c (genXor): Fixed bug #805445
11048
11049 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11050
11051         Fixed bug #621531 (const & volatile confusion in the type chain).
11052         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
11053         refer to the const or volatile state of the pointer itself.
11054
11055         * src/SDCCast.c
11056         * src/SDCCglue.c
11057         * src/SDCCicode.c
11058         * src/SDCCsymt.c
11059         * src/SDCCval.c
11060         * src/SDCC.y
11061         * src/SDCCsymt.h
11062         * src/pic/gen.c
11063         * src/pic/ralloc.c
11064         * src/pic16/gen.c
11065         * src/pic16/ralloc.c
11066         * support/regression/tests/const.c
11067
11068 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11069
11070         When checking for duplicated modules, use absolute paths
11071         instead of relative paths.  Files changed:
11072
11073         * as/mcs51/lklib.c
11074         * link/z80/lklib.c
11075
11076 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11077
11078         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
11079
11080 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11081
11082         * device/include/string.h: added size_t typedef, changed
11083         prototypes to use size_t, eliminated separate reentrant and
11084         non-reentrant declarations, added _memmove declaration
11085         * device/lib/_memcpy.c: changed to use size_t instead of int,
11086         changed /4 to >>2 to avoid division library call
11087         * device/lib/_memcmp.c,
11088         * device/lib/_memset.c,
11089         * device/lib/_strncat.c,
11090         * device/lib/_strncpy.c,
11091         * device/lib/_strncmp.c: changed to use size_t instead of int
11092         * device/lib/_memmove.c: new file (fixed bug #772294)
11093         * device/lib/Makefile.in: added _memmove.c
11094         * device/lib/z80/asm_strings.s: fixed bug #772290
11095         * support/regression/tests/bitfields.c: attempt to fix host assertion
11096         failure on amd64-unknown-linux2.2
11097
11098 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11099
11100         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
11101         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
11102         * as/z80/asmain.c (main): fixed bug #801766
11103
11104 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
11105
11106         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
11107         compilers
11108
11109 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11110
11111         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
11112         reported in bug #800609
11113
11114 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
11115
11116         * Top header beautifications in src/pic16 directory:
11117           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
11118           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
11119           pcoderegs.h, ralloc.c, ralloc.h
11120         * main.c: added top header and GPL license notice
11121         * pcode.c: fixed the if-conditional warning
11122
11123 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
11124
11125         * device/lib/_mullong.c: replaced int by short for gcc
11126
11127 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11128
11129         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
11130         and JUMPTABLE iCodes properly now (worked by accident before)
11131         * src/mcs51/gen.c (leftRightUseAcc),
11132         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
11133         iCode properly now. Use getSize instead of nRegs since a & b
11134         aren't part of the nRegs tally.
11135
11136 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
11137
11138         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
11139         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
11140           before instructions that use the _STATUS register
11141
11142 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
11143
11144         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
11145         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
11146         fetching of the pointer
11147         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
11148         copied from genNearPointerSet()
11149         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
11150         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
11151         If they pop r0/r1 they must be called in the opposite order than aopOp().
11152         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
11153         (resp. --stack-auto), prepared for --xstack
11154
11155 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11156
11157         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
11158
11159 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
11160
11161         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
11162         these ports have their own __sdcc_external_start()
11163
11164 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
11165
11166         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
11167         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
11168         type for bits was changed. It resulted in bit variables becoming
11169         global, which is not permitted in PIC 14 assembly output.
11170
11171 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11172
11173         * doc/sdccman.lyx: various additions and updates. Rearranged sections
11174
11175 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11176
11177         Z80 and MCS51 linkers complaint if a public symbol is defined
11178         in more than one library module:
11179
11180         * as/mcs51/lklib.c
11181         * link/z80/lklib.c
11182         * as/mcs51/Makefile.in
11183
11184 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11185
11186         A few small changes that speed up the peephole optimizer.
11187
11188         * src/SDCCpeeph.c
11189
11190 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11191
11192         Try to make the peephole optimizer smarter by maintaining
11193         an association between the assembly source code and the
11194         iCodes that originated them. Put this information to use
11195         with a new peephole rule condition "notVolatile" so that
11196         the rules can be aggressive yet still safe.
11197
11198         * src/SDCCpeeph.c
11199         * src/SDCCpeeph.h
11200         * src/mcs51/gen.c
11201         * src/mcs51/peeph.def
11202
11203 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11204
11205         Fixed bug #741761
11206
11207         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
11208         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
11209         if the left or right operand symbols have the accuse flag set.
11210
11211 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11212
11213         Changed the type of the result of the ! (NOT) operator to char;
11214         previously it returned the same type as the source. This allows
11215         us to eliminate all the genFloatNot functions (all of its target
11216         implementations were very buggy) since !float can use the same
11217         code as !long now.
11218
11219         * src/SDCCicode.c (ast2iCode): ! returns char
11220         * src/mcs51/gen.c (genNot, genNotFloat),
11221         * src/ds390/gen.c (genNot, genNotFloat),
11222         * src/z80/gen.c (genNot, genNotFloat),
11223         * src/pic/gen.c (genNot, genNotFloat),
11224         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
11225
11226 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
11227
11228         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
11229         1. Interrupt would not compile properly. Ensure PCLATH register is saved
11230            during interrupts. Ensure WSAVE is located at a shared bank address.
11231         2. Fixed page selection in some places
11232         3. Fixed BTFSS/C to where necessary use registers directly and not simply
11233            the registers name strings.
11234         4. Fixed "signed / unsigned compare" compiler warnings.
11235         5. The PIC port manages its own allocation of the general purpose
11236            registers, but makes no attempt to reuse them. As a result when
11237            compiling it soon runs out of general purpose registers. Some
11238            additional code was added to the files pcode.c and device.c to walk
11239            through the function call tree and rename the registers so that they
11240            get reused.
11241
11242         * src/pic/device.c
11243         * src/pic/gen.c
11244         * src/pic/glue.c
11245         * src/pic/pcode.c
11246         * src/pic/pcode.h
11247         * src/pic/ralloc.c
11248         * src/pic/ralloc.h
11249         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
11250         genPlus() & genMinus() when the result is the same as left or right
11251
11252 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11253
11254         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
11255
11256 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11257
11258         Made bitfield a distinct type from bit so that bitfields
11259         convert as per ANSI C and bits retain their traditional
11260         boolean style behaviour. Implemented bitfield support in
11261         the z80 port.
11262
11263         * src/SDCCsymt.h,
11264         * src/SDCCsymt.c,
11265         * src/SDCCast.c,
11266         * src/cdbFile.c,
11267         * src/mcs51/gen.c,
11268         * src/ds390/gen.c: bit v bitfield split
11269         * src/z80/gen.c: New support for bitfields
11270         * support/regression/tests/bitfields.c: reenabled z80,
11271         added more tests
11272
11273 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11274
11275         Rules 246.x, 247.x relate to bitfields, the others speed up
11276         access to xdata mapped I/O devices.
11277
11278         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
11279
11280 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11281
11282         Cleaned up genPackBits and genUnpackBits and added two helper
11283         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
11284         for literal assignments in genPackBits (thanks to Frieder for
11285         reminding me).
11286
11287         * src/mcs51/gen.c
11288         * src/ds390/gen.c
11289
11290 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11291
11292         Fixed bug #748310 (pointer to function type mishandled when the
11293         function name is omitted). Also fixed a SIGSEGV when a function
11294         attribute (reentrant, etc) is used on a non-function or on a
11295         function but misplaced before the parameter list.
11296
11297         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
11298         bug #748310
11299         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
11300         * support/Util/SDCCerr.h,
11301         * support/Util/SDCCerr.c: Added func attr misuse error msg
11302
11303 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
11304
11305         Fixed bug #787649 by anonymous
11306         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
11307         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
11308
11309 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11310
11311         Fixed numerous bitfield problems.
11312
11313         * src/SDCC.y: More bitfield related error checking
11314         * src/SDCCsymt.h,
11315         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
11316         * support/Util/SDCCerr.h,
11317         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
11318         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
11319         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
11320         * support/regression/tests/bitfields.c: tests added
11321
11322 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11323
11324         Made the constant following the "interrupt" keyword optional. If
11325         omitted, the function will not automatically be given an entry
11326         in the interrupt vector table (similar to #pragma NOIV, but
11327         less syntacticly kludgy). The interrupt number is also now
11328         range checked. Also fixed a bug in the high order bit example
11329         in the manual.
11330
11331         * src/SDCC.y
11332         * src/SDCCmem.c
11333         * src/SDCCglue.c
11334         * src/SDCCsymt.h
11335         * support/Util/SDCCerr.c
11336         * support/Util/SDCCerr.h
11337         * doc/sdccman.lyx
11338
11339 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
11340
11341         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
11342         * src/SDCCicode.c (operandOperation): rewritten some ops
11343         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
11344         * src/SDCCsymt.c (computeType): literals are handled the same way as any
11345         other type
11346         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
11347         be re-activated by defining REDUCE_LITERALS)
11348         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
11349         unsigned, but are signed by default
11350         * src/SDCCval.c (constVal): rearranged
11351         * src/SDCCval.c (valMod): preliminary fix
11352         * src/SDCCval.c (valCastLiteral): use TYPE_* types
11353         * support/regression/literalop.c: added, work in progress
11354
11355 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11356
11357         Generate warnings for useless declarations like "char data;"
11358         that don't do what new users expect.
11359
11360         * src/SDCC.y
11361         * support/Util/SDCCerr.h
11362         * support/Util/SDCCerr.c
11363
11364 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
11365
11366         * src/SDCCval.c (valMult): fix overflow detection of negative int
11367
11368 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11369
11370         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
11371
11372         Changes to support big endian targets:
11373
11374         * src/ports.h
11375         * src/SDCCglue.c
11376         * src/avr/main.c
11377         * src/ds390/main.c
11378         * src/izt/i186.c
11379         * src/mcs51/main.c
11380         * src/pic/main.c
11381         * src/pic16/main.c
11382         * src/xa51/main.c
11383         * src/z80/main.c
11384
11385 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
11386
11387         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
11388         * device/lib/time.c: fixed warning "integer overflow in expression"
11389
11390 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
11391
11392         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
11393         * src/SDCCval.c (constVal): changed default to signed; hex and octal
11394         constants are unsigned; added recognition of "u" flag for unsigned
11395         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
11396         * src/SDCCval.c (valDiv, valMod): fixed signdness
11397         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
11398         signedness of modulo, left and right shift
11399         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
11400         * support/Util/SDCCerr.h: added warning W_INT_OVL
11401         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
11402         * src/SDCCast.c (ast_print): improved output of constants
11403
11404 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11405
11406         Fixed some warnings when building with MSVC:
11407
11408         * as/mcs51/asdata.c
11409         * as/z80/asdata.c
11410         * as/mcs51/asm.h
11411         * as/z80/asm.h
11412         * link/z80/aslink.h
11413         * link/z80/lkdata.c
11414         * link/z80/lkeval.c
11415         * link/z80/lkgb.c
11416         * link/z80/lkihx.c
11417         * link/z80/lks19.c
11418         * link/z80/lksym.c
11419         * support/cpp2/cpplib.c
11420         * src/ds390/gen.c
11421         * src/mcs51/gen.c
11422
11423 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
11424
11425         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
11426
11427 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11428
11429         * support/librarian/clean.mk: Do not remove Makefile.
11430         * support/librarian/Makefile: added.
11431
11432 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11433
11434         Added librarian to MSVC build:
11435         * all.dsp
11436         * sdcc.dsw
11437         * support/librarian/librarian.dsp
11438
11439         'configure' not needed for librarian, removed:
11440         * support/librarian/configure
11441         * support/librarian/configure.in
11442         * support/librarian/config_in.h
11443         * support/librarian/Makefile.in
11444
11445         Hopefully these ones built the librarian and the rest of sdcc properly:
11446         * Makefile
11447         * Makefile.common.in
11448
11449         Messed up 'configure', so revert to previous version:
11450         * configure
11451         * configure.in
11452
11453 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
11454
11455         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
11456         there, while the mantissa of a double is "only" 53 bits wide.
11457
11458 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11459
11460         Adding sdcclib to the build.  MSVC project coming soon.
11461         Files added/changed:
11462
11463         * support/librarian/clean.mk
11464         * support/librarian/configure
11465         * support/librarian/configure.in
11466         * support/librarian/config_in.h
11467         * support/librarian/Makefile.bcc
11468         * support/librarian/Makefile.in
11469         * support/librarian/sdcclib.c
11470         * Makefile.bcc
11471         * Makefile
11472         * Makefile.common.in
11473         * configure
11474         * configure.in
11475
11476 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11477
11478         Linker now complaints if linked modules have conflicting options, for
11479         example, one compiled using --model-large and another one compiled with
11480         --model-small.  The following files were modified:
11481
11482         * as/mcs51/asdata.c
11483         * as/mcs51/aslink.h
11484         * as/mcs51/asm.h
11485         * as/mcs51/asmain.c
11486         * as/mcs51/asout.c
11487         * as/mcs51/i51pst.c
11488         * as/mcs51/lkdata.c
11489         * as/mcs51/lklibr.c
11490         * as/mcs51/lkmain.c
11491         * as/z80/asdata.c
11492         * as/z80/asm.h
11493         * as/z80/asmain.c
11494         * as/z80/asout.c
11495         * as/z80/z80pst.c
11496         * link/z80/aslink.h
11497         * link/z80/lkdata.c
11498         * link/z80/lklibr.c
11499         * link/z80/lkmain.c
11500         * src/SDCCglue.c
11501
11502 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11503
11504         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
11505         as/mcs51/lklibr.c: Generate a warning when a library is not found.
11506
11507 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
11508
11509         * src/z80/mappings.i: fix _mul[us][int,long] entries
11510
11511 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11512
11513         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
11514
11515 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
11516
11517         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
11518         * support/regression/tests/bitopcse.c: added
11519         fixed warning:
11520         * src/avr/gen.c:
11521         * src/pic/gen.c:
11522         * src/pic16/gen.c:
11523         * src/z80/gen.c:
11524         * src/xa51/gen.c:
11525
11526 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11527
11528         added support for new library format to z80, gbz80 linkers:
11529         *link/z80/aslink.h
11530         *link/z80/lklex.c
11531         *link/z80/lklib.c
11532         *link/z80/lklist.c
11533
11534 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
11535
11536         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
11537         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
11538
11539 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
11540
11541         added DUMMY_READ_VOLATILE:
11542         * src/SDCC.y:
11543         * src/avr/gen.c:
11544         * src/xa51/gen.c:
11545         * src/z80/gen.c:
11546         * src/pic/gen.c:
11547         * src/pic16/gen.c:
11548         * src/mcs51/gen.c:
11549         * src/ds390/gen.c:
11550         * src/SDCCcse.c (algebraicOpts): many improvements
11551         * src/SDCCcse.h: removed algebraicOpts()
11552         * src/SDCCicode.c (picDummyRead): added
11553
11554 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11555
11556         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
11557         "Insufficient space in data memory".
11558
11559 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11560
11561         * src/mcs51/gen.c: fixed bug #771358
11562         * src/z80/gen.c: fixed bug #759087
11563
11564 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
11565
11566         * src/pic16/glue.c: minor cleanup by Vangelis
11567
11568 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11569
11570         * device/include/regc515c.h: fixed #758477
11571         * device/lib/_gptrget.c: saving some cycles in generic pointer get
11572         * device/lib/_gptrput.c: saved a few bytes
11573         * my tab spacing is 8, yours too?)
11574         * device/lib/_ser.c: process RX bytes earlier than TX bytes
11575         * device/lib/serial.c: process RX bytes earlier than TX bytes
11576         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
11577
11578 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11579
11580         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
11581
11582 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11583
11584     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
11585
11586 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
11587
11588         * device/lib/Makefile.in: bad fix, reverted to 1.43
11589
11590 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
11591
11592         * device/lib/Makefile.in: added missing z80 object files
11593
11594 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
11595
11596         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
11597         pic16 progress by Vangelis:
11598         * src/SDCCglobl.h:
11599         * src/SDCCmain.c:
11600         * src/pic/Makefile:
11601         * src/pic:
11602         * pic/Makefile:
11603         * pic16/device.c:
11604         * pic16/device.h:
11605         * pic16/gen.c:
11606         * pic16/gen.h:
11607         * pic16/genarith.c:
11608         * pic16/glue.c:
11609         * pic16/main.c:
11610         * pic16/pcode.c:
11611         * pic16/pcode.h:
11612         * pic16/pcodepeep.c:
11613         * pic16/peeph.def:
11614
11615 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11616
11617     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
11618
11619 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11620
11621     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
11622     added gbz80 build to MSVC project.
11623     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
11624     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
11625     from 8051 stuff and setup so it links using a .lnk file.
11626
11627 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11628
11629     * support/librarian/sdcclib.c: sdcc librarian.
11630     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
11631     with sdcclib.
11632
11633 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11634
11635     * as/mcs51/lkmain.c: properly handle extensions in function afile.
11636
11637 2003-07-02  Borut Razem <borut.razem AT siol.net>
11638
11639         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
11640         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
11641         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
11642         src/xa51/main.c, src/z80/main.c:
11643         virtualization of glue() function: each port has it's own glue function,
11644         which is accessed by do_glue function pointer in PORT.general structure
11645
11646 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
11647
11648         * DS800C400 fun, improved ROM interface and tinibios.
11649
11650 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
11651
11652         * More support for DS80C400. Now includes beginning of interface to ROM.
11653
11654 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
11655
11656         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
11657
11658 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11659
11660         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
11661
11662 2003-06-19  Borut Razem <borut.razem AT siol.net>
11663
11664         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
11665
11666 2003-06-19  Borut Razem <borut.razem AT siol.net>
11667
11668         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
11669         fixed Z80 port - crt0.o: cannot open.
11670
11671 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
11672
11673         * support/Util/MySystem.c (merge_command): revert bad fix
11674
11675 2003-06-18  Borut Razem <borut.razem AT siol.net>
11676
11677         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
11678
11679 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11680
11681         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
11682         option --use-stdout sends errors to stdout instead of stderr.
11683
11684 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
11685
11686         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
11687
11688 2003-06-15  Borut Razem <borut.razem AT siol.net>
11689
11690         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
11691         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
11692         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
11693         fixed width array of pointers replaced with sets;
11694         multiple include and lib paths ared transferred to preprocessor and linker
11695         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
11696         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
11697         fixed width array of pointers
11698         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
11699         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
11700         fixupPath(), getPathDifference()
11701         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
11702         fixed width array of pointers
11703
11704 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
11705
11706         * src/pic16/ralloc.c: fix warnings
11707         * src/pic16/pcode.c: fix warning
11708
11709 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
11710
11711          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
11712         know all the details, but essentially this set of changes enable
11713         the pic16 port to generate movff instructions and generate assembler
11714         directives,
11715         * src/SDCCmain.c:
11716         * src/pic16/gen.c:
11717         * src/pic16/glue.c:
11718         * src/pic16/pcode.c:
11719         * src/pic16/device.c:
11720         * src/pic16/main.c:
11721         * src/pic16/pcode.h:
11722         * src/pic16/pcoderegs.c:
11723         * src/pic16/ralloc.c:
11724         * src/pic16/ralloc.h:
11725
11726 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11727
11728         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
11729         added option --vc, so sdcc errors and warnings are compatible with
11730         Microsoft Visual Studio.
11731
11732 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11733
11734         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
11735           device/lib/libfloat.lib: added atof function.
11736
11737 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
11738
11739         * doc/sdccman.lyx: updated to Lyx 1.3
11740         * doc/cdbfileformat.lyx: updated to Lyx 1.3
11741         * doc/test_suite_spec.lyx: updated to Lyx 1.3
11742         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
11743
11744 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
11745
11746         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
11747
11748 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11749
11750         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
11751           additions to the "related tools/documentation" section
11752
11753 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
11754
11755         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
11756
11757 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
11758
11759         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
11760         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
11761
11762 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
11763
11764         * doc/sdccman.lyx: fix double dash and other minor things
11765         * doc/Makefile: fix double dash
11766
11767 2003-05-28  Karl Bongers(patches from Martin Helmling)
11768         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
11769           condition and ignore commands.
11770
11771 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11772
11773         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
11774           is in parts still quite out of date, I did changes as far as I felt makes sense
11775           for a non-native english speaker.
11776           Please feel free to add to the manual or to correct my changes.
11777         * doc/Makefile: undid touching the date of intermediate tex files.
11778
11779 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11780
11781         * doc/sdccman.lyx: Manual has an index now
11782
11783 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
11784
11785         Finalize muluint/mulsint and mululong/mulslong merging:
11786         * device/lib/_mulint.c
11787         * device/lib/_mullong.c
11788         * device/lib/gbz80/mul.s
11789         * device/lib/gbz80/stubs.s
11790         * device/lib/z80/mul.s
11791         * device/lib/z80/stubs.s
11792         * src/SDCCsymt.c (initCSupport)
11793
11794 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11795
11796         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
11797         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
11798           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
11799           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
11800           instead of /Zm500.
11801
11802 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11803
11804         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
11805           the regression tests I'm not brave enough to enable 245.b, 245.c
11806         * doc/sdccman.lyx: added latex preamble for hyperref package.
11807           Using pdflatex this will give you a hyperlinked pdf file with
11808           bookmarks. (prepend '%' before /usepackage if this breaks something)
11809
11810 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11811
11812          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
11813
11814 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
11815
11816         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
11817
11818 2003-05-21    <johan AT balder>
11819
11820         * src/SDCCglue.c (printIval): fixed bug #739934
11821
11822 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
11823
11824         Applied patch from bug 737905 (renamed yylineo to mylineno):
11825         * src/altlex.c
11826         * src/SDCCast.c
11827         * src/SDCglobl.h
11828         * src/SDCC.lex
11829         * src/SDCCsymt.c
11830         * src/SDCCval.c
11831         * src/pic16/pcode.c: Cleaned warnings
11832         * src/pic16/pcodeflow.c: Cleaned warnings
11833         * src/pic16/pcoderegs.c: Cleaned warnings
11834
11835 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
11836
11837         * src/pic16/pcode.c: Cleaned warnings
11838         * src/pic16/pcodepeep.c: Cleaned warnings
11839         * src/pic16/ralloc.c: Cleaned warnings
11840
11841 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
11842
11843         * doc/sdccman.lyx: fixed bug 739745
11844         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
11845
11846 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
11847
11848         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
11849         it can be defined with CFLAGS when running configure
11850         * src/SDCCmain.c: fixed compiling + linking with object files
11851
11852 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
11853
11854         * configure.in: configure for pic16 port,
11855             added --disable-pic16-port
11856         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
11857         * src/SDCCmain.c: linkOptions is changed to set *,
11858             added if/endif conditional macros to remove options help
11859             messages from optionsTable when a port is not configured, added
11860             support for the PIc16 port in the ports table, when executing
11861             the compiler with no port specified on command line, a default
11862             port is selected with the new macro DEFAULT_PORT which is
11863             defined in port.h, in setDefaultOptions() linkOptions is removed
11864             from initialization assignment, since now it is a set,
11865             parseCmdLine uses setParseWithComma for linkOptions, in
11866             linkEdit() linkOptions are accessed with new function indexSet()
11867             which returns the i'th item of a set variable. See SDCCset.c, in
11868             linkEdit() when calling buildCmdLine(), added linkOptions as
11869             last argument. Now users can pass arguments to gplink via the
11870             -Wl option, main() uses pic16glue() to glue up pic16 programs
11871         * src/SDCCpeeph.c: various changes to support pic16
11872         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
11873             return the i'th item of the set
11874         * src/SDCCset.h: added function prototype for indexSet()
11875         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
11876         * src/clean.mk: added pic16 in CLEANALLPORTS variable
11877         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
11878             added macro DEFAULT_PORT
11879         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
11880         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
11881             generated
11882         * src/pic16/glue.c: commented out some error producing lines
11883         * src/pic16/main.c: __config directives are commented out to stop
11884             gpasm complaining and test the linkage with gplink, _linkCmd and
11885             _asmCmd changed to be more gplink and gpasm friendly
11886         * src/pic16/peeph.def: peep rule 3 is commented out, since it
11887             produced an error when parsed, peep rule 12 is added to utilize
11888             movff, but it is commented out since the pCode does not support
11889             yet a command with 2 address arguments
11890
11891 2003-05-18    <johan AT balder>
11892
11893         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
11894         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
11895 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
11896
11897         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
11898   Added feature to script commands from file.
11899
11900 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
11901
11902         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
11903         * src/SDCCutil.c: include ctype.h for win32
11904
11905 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
11906
11907         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
11908
11909 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
11910
11911         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
11912   Fixed so you can set breakpoints prior to run, run does not stop
11913   on entry now.  Add tbreak.  Other enhancements and fixes for use
11914   with ddd.
11915
11916 2003-05-12  Borut Razem <borut.razem AT siol.net>
11917
11918         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
11919
11920 2003-05-11  Borut Razem <borut.razem AT siol.net>
11921
11922         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
11923         the path of bin directory, so that PATH is the only env. variable, which has to be set
11924         in case of standard installation.
11925         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
11926         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
11927         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
11928
11929 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
11930
11931         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
11932         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
11933         temp files are in the port dir; clean the gen/test directory when
11934         generating new test.c
11935         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
11936         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
11937         * support/regression/tests/zeropad.c: added
11938
11939 2003-05-09    <johan AT balder>
11940
11941         * src/SDCCglue.c: fixed bug #597940
11942
11943 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
11944
11945         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
11946   cache sfr, optimize next,step, fix off by one sourceline,
11947   support ddd list function.
11948         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
11949
11950 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
11951
11952         * support/regression/HTMLgen.py: added compare_s2f()
11953         * support/regression/Makefile: redo 1.27
11954         * support/regression/generate-cases.py: redo 1.5
11955
11956 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
11957
11958         * support/regression/tests/float.c: workaround 33 bit hex constant
11959         * support/regression/tests/simplefloat.c: fix division for host
11960
11961 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
11962
11963         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
11964         that tame's the PIC's over-aggressive optimizer.
11965
11966 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11967
11968          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
11969          support for MSVC.
11970
11971 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
11972
11973         Initial support for DS80C400. "Hello world" runs on TINIm400
11974         (with polled I/O).
11975
11976 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
11977
11978          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
11979          * Some notes on ddd usage added in debugger/README
11980          Martin Helmling adding more features and fixes for ddd GUI debugger.
11981          Code added for nexti, stepi, up, down, and other adjustments.
11982
11983 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
11984
11985         * src/pic/pCodepeep.c non-wildcard asmops are now handled
11986         * src/pic/peeph.def Added two rules to optimize carry manipulation
11987         * src/pic/* removed debug printfs
11988
11989 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
11990
11991         * debugger/mcs51/cmd.c: added header newalloc.h
11992
11993 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
11994
11995         * as/Makefile: new EXEEXT
11996         * as/z80/Makefile: remove trailing slash of BUILDIR
11997         * as/z80/clean.mk: new EXEEXT
11998         * Makefile.common.in: add to CFLAGS (and others), don't replace it
11999         * support/cpp2/Makefile.in: new EXEEXT
12000         * src/pic/glue.c (pic14emitRegularMap): fixed warning
12001
12002 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
12003
12004         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
12005         EXEEXT was introduced to fix all related problems with targets
12006         "clean", "install" and "uninstall"; a couple of further flaws
12007         especially with "clean" have been fixed too
12008         * as/mcs51/Makefile.in
12009         * as/mcs51/clean.mk
12010         * as/z80/Makefile
12011         * Makefile
12012         * clean.mk
12013         * debugger/mcs51/Makefile.in
12014         * debugger/mcs51/clean.mk
12015         * link/z80/Makefile
12016         * link/z80/Makefile.in
12017         * link/z80/clean.mk
12018         * link/Makefile
12019         * packihx/Makefile.in
12020         * packihx/clean.mk
12021         * sim/ucsim/Makefile
12022         * sim/ucsim/clean.mk
12023         * sim/ucsim/avr.src/Makefile.in
12024         * sim/ucsim/avr.src/clean.mk
12025         * sim/ucsim/s51.src/Makefile.in
12026         * sim/ucsim/s51.src/clean.mk
12027         * sim/ucsim/xa.src/Makefile.in
12028         * sim/ucsim/xa.src/clean.mk
12029         * sim/ucsim/z80.src/Makefile.in
12030         * sim/ucsim/z80.src/clean.mk
12031         * sim/ucsim/main_in.mk
12032         * sim/ucsim/packages_in.mk
12033         * sim/ucsim/gui.src/Makefile.in
12034         * sim/ucsim/gui.src/serio.src/Makefile.in
12035         * sim/ucsim/gui.src/serio.src/clean.mk
12036         * src/Makefile.in
12037         * src/clean.mk
12038         * support/cpp2/Makefile.in
12039         * support/cpp2/clean.mk
12040         * support/makebin/Makefile
12041         * support/makebin/clean.mk
12042         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
12043         * doc/sdccman.lyx: --program-suffix no longer needed
12044
12045 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
12046
12047          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
12048          Martin Helmling added support for ddd GUI debugger.
12049          Code added to display assembly, set variables, and other commands
12050          to interface to ddd.
12051
12052 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
12053
12054         * as/Makefile: fix target clean
12055         * as/clean.mk: fix target clean
12056         * as/z80/clean.mk: fix target clean
12057
12058 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
12059
12060         * Makefile.common.in: added  AT EXEEXT AT
12061         * configure.in: removed all mingw32 stuff
12062         * configure: rebuilt from configure.in
12063         * doc/sdccman.lyx: updated section "installation"
12064         * support/scripts/sdcc_mingw32: adapted to configure
12065         * support/scripts/sdcc_cygwin_mingw32: added
12066
12067 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
12068
12069         * src/pic Added object file support for the PIC port
12070         * src/pic Applied patch from Craig Franklin (this started the object file support)
12071         * src/regression Updated the PIC regression tests for object files
12072
12073 2003-04-20  Borut Razem <borut.razem AT siol.net>
12074
12075         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
12076           lklex.c: In function `getfid':
12077           lklex.c:203: warning: array subscript has type `char'
12078         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
12079           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
12080         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
12081           stack handling macros
12082
12083 2003-04-19  Borut Razem <borut.razem AT siol.net>
12084
12085         * "handling space characters in file path" task:
12086         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
12087         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
12088         * support/Util/MySystem.h: make it self-sufficient
12089         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
12090           src/z80/main.c, sdcc/as/mcs51/lklex.c:
12091           handling space characters in file path
12092         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
12093           (it will be used by assemblers, which have their own includes, e.g. gpasm)
12094         * support/Util/MySystem.c: handling space characters in executable's path
12095
12096 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
12097
12098         * as/z80/Makefile: fix permanent rebuild of z80
12099         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
12100         * support/regression/tests/bitfields.c: added Johan's bitfields.c
12101
12102 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
12103
12104         * src/SDCCopt.c: add special case optimization to replace modulo by
12105           a power of two with a bitwise AND.
12106
12107 2003-04-18    <johan AT balder>
12108
12109         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
12110
12111 2003-04-17    <johan AT balder>
12112
12113         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
12114         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
12115
12116 2003-04-13  Borut Razem <borut.razem AT siol.net>
12117
12118         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
12119         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
12120           fixed mingw problem in adl_NORMALIZE_PATH
12121
12122 2003-04-12  Borut Razem <borut.razem AT siol.net>
12123
12124         * fixed "#pragma SAVE/RESTORE can not be nested":
12125         * src/SDCC.lex: reworked pragma handling functions
12126         * sdcc/src/SDCCglobl.h: reworked stack handling macros
12127         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
12128
12129 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
12130
12131         * src/SDCCutil.c (pathEquivalent): defined but not used
12132         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
12133         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
12134         * configure: rebuilt from configure.in
12135         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
12136         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
12137         * device/include/Makefile.in: replace sdcc_datadir
12138         * device/lib/Makefile.in: replace sdcc_datadir
12139         * Makefile.common.in: add LDFLAGS from configure
12140         * packihx/Makefile.in: use LDFLAGS
12141         * src/Makefile.in: use LDFLAGS
12142         * support/cpp2/Makefile.in: add LDFLAGS from configure
12143         * support/makebin/Makefile: use LDFLAGS
12144         * .version: bumped version number to 2.3.5
12145
12146 2003-04-12  Borut Razem <borut.razem AT siol.net>
12147
12148         * completed "different paths" task:
12149         * src/SDCCmacro.c: fixed bug in handling quotes
12150         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
12151         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
12152
12153 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
12154
12155         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
12156
12157 2003-04-11 kevin Vigor <kevin AT vigor.nu>
12158
12159         * ds390/gen.c ds390/peeph.def: fix bug 706781
12160
12161 2003-04-11  Borut Razem <borut.razem AT siol.net>
12162
12163         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
12164
12165 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
12166
12167         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
12168         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
12169          set - this bit used to not be set...).
12170         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
12171           bad code in PIC Port
12172         * src/regression/and2.c added to test bug 609268
12173         * src/regression/Makefile added and2.c to regression test
12174
12175
12176 2003-04-08    <johan AT CP255758-A>
12177
12178         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
12179         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
12180         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
12181
12182 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
12183
12184         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
12185         fix bug #487815
12186         * support/cpp2/Makefile.in: fix bug #487815
12187         * configure: rebuilt from configure.in
12188         * Makefile.common.in: docdir changed, new path suffixes
12189         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
12190         * sdcc_vc_in.h: reflect changes from sdccconf.h
12191         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
12192         * src/SDCCutil.h: remove BINDIR hack
12193         * doc/sdccman.lyx: update new path hierarchy
12194
12195 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
12196
12197         * src/SDCCpeeph.c: added okToRemoveSLOC test
12198
12199 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
12200
12201         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
12202
12203 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
12204
12205         * src/SDCCpeeph.c: added labelIsReturnOnly test
12206         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
12207
12208 2003-04-05    <johan AT balder>
12209
12210         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
12211         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
12212         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
12213         * src/SDCCast.c: fixed a warning
12214         * src/SDCCast.h: fixed a warning
12215         * src/SDCCicode.c (operandFromAst): fixed a warning
12216
12217 2003-04-04    <johan AT balder>
12218
12219         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
12220         * src/SDCCast.c (decorateType): fixed bug #715076
12221         * src/SDCC.y: fixed bug #702907
12222
12223 2003-04-03    <johan AT balder>
12224
12225         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
12226         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
12227         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
12228         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
12229         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
12230
12231 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
12232
12233         * _decdptr.c: fix return values
12234         * _gptrget.c: fix return values
12235         * _gptrgetc.c: fix return values
12236         * _gptrput.c: fix return values
12237         * _mulint.c: fix return values
12238         * as/z80/Makefile: fix 'make -j' problem
12239
12240 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
12241
12242         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
12243         * configure.in: big cleanup, updated to autoconf 2.5x
12244         * configure: rebuilt from configure.in
12245         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
12246         * sdcc_vc_in.h: reflect changes from sdccconf.h
12247         * doc/Makefile: fixed a flaw in "make install"
12248
12249 2003-04-02    <johan AT balder>
12250
12251         * src/ds390/gen.c (genCmp): no comments
12252         * src/mcs51/gen.c (genCmp): no comments
12253         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
12254         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
12255
12256 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
12257
12258         * support/regression/generate-cases.py: place generated file in given sub directory
12259         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
12260         * support/regression/Makefile: improvements for 'make -j';
12261         side effect: it's simpler and faster now
12262
12263 2003-03-31  Borut Razem <borut.razem AT siol.net>
12264
12265         * src/z80/main.c: link-{port} and as-{port} defined without path
12266         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
12267
12268 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
12269
12270         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
12271
12272 2003-03-30  Borut Razem <borut.razem AT siol.net>
12273
12274         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
12275           changed type of list parameter to set
12276         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
12277         * src/port.h: changed type of do_assemble() parameter to set
12278         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
12279           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
12280           definition of "cppoutfilename" macro with NULL value in preProcess()
12281         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
12282         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
12283         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
12284           replaced with set *binPathSet
12285         * shash_add() deallocates the item, if allready exsists, before adding the new one
12286         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
12287
12288 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
12289
12290         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
12291           a nested for loop bug in the PIC port
12292         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
12293           for loops
12294
12295 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
12296
12297         * support/Util/dbuf.h: remove C++ stuff to make it portable
12298
12299 2003-03-28  Borut Razem <borut.razem AT siol.net>
12300
12301         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
12302           literal strings in stringLiteral()
12303         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
12304         * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
12305           to the project
12306
12307 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
12308
12309         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
12310
12311 2003-03-26    <johan AT balder>
12312
12313         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
12314         * src/ds390/gen.c (saveRegisters): catched symbol abuse
12315         * src/SDCCast.c (decorateType): fixed " -v < 3"
12316
12317 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
12318
12319         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
12320         Added Lenny Story's debug infrastructure changes:
12321         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
12322         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
12323         * src/cdbFile.c: added
12324         * src/SDCCdebug.c: added
12325         * src/SDCCdebug.h: added
12326         * src/SDCCast.c (createFunction)
12327         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
12328         * src/SDCCmain.c (parseCmdLine, main)
12329         * src/SDCCmem.c (redoStackOffsets)
12330         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
12331         * src/SDCCsymt.h
12332         * src/common.h
12333         * src/avr/gen.c (genAVRCode)
12334         * src/ds390/gen.c (gen390Code)
12335         * src/mcs51/gen.c (gen51Code)
12336         * src/pic/gen.c (genpic14Code)
12337         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
12338         * src/xa51/gen.c (genXA51Code)
12339         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
12340
12341 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12342
12343         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
12344         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
12345
12346 2003-03-22    <johan AT balder>
12347
12348         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
12349
12350 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
12351
12352         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
12353         * doc/cdbfileformat.lyx: added, written by Lenny Story
12354         * doc/Makefile: added cdbfileformat.lyx
12355         * doc/clean.mk: added cdbfileformat.lyx
12356
12357 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
12358
12359         * src/mcs51/peeph.def: fix bug #705773
12360
12361 2003-03-20    <johan AT balder>
12362
12363         An sfr/sbit can have an "at #" AND an initializer
12364         * src/SDCCsymt.c (checkSClass):
12365         * src/SDCCmem.c (allocGlobal):
12366         * src/SDCCmem.c (allocLocal):
12367         * src/SDCCast.c (createBlock):
12368
12369 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
12370
12371         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
12372
12373 2003-03-16    <johan AT balder>
12374
12375         Undid the hackup of const and volatile, the problem is much bigger
12376         * src/SDCC.y:1.65
12377         * src/SDCCast.c:1.171
12378         * src/SDCCglue.c:1.138
12379         * src/SDCCicode.c:1.146
12380         * src/SDCCsymt.c:1.150
12381         * src/SDCCval.c:1.65
12382
12383 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
12384
12385         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
12386         * src/ds390/gen.c (genAddrOf): fixed bug #704087
12387
12388 2003-03-13    <johan AT balder>
12389
12390         Hackup const and volatile modifiers in type chains a bit:
12391         * src/SDCC.y:1.63
12392         * src/SDCCast.c:1.169
12393         * src/SDCCglue.c:1.136
12394         * src/SDCCicode.c:1.143
12395         * src/SDCCsymt.c1.146
12396         * src/SDCCsymt.h1.59
12397         * src/SDCCval.c:1.63
12398
12399 2003-03-12    <johan AT balder>
12400
12401         * src/SDCCBBlock.h: more LRH debugging junk
12402         * src/SDCCcflow.h: more LRH debugging junk
12403         * src/SDCCloop.c: more LRH debugging junk
12404         * src/SDCC.y (struct_declaration): fixed bug #697590
12405         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
12406         * src/ds390/gen.c (aopForRemat): fixed bug #700031
12407         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
12408
12409 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
12410         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
12411         test function names must now match exactly).
12412         * src/SDCCcse.c: added special case in findCheaperOp to allow
12413         extending a short integer. Makes less awful code for bug 700121 test case.
12414
12415 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12416
12417         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
12418         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
12419
12420 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
12421
12422         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
12423         actually called (operandsNotEqual() was called for all
12424         operandsNotEqualX tests).
12425
12426 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
12427
12428         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
12429         with shorter literals. Fixes bug 700121.
12430
12431 2003-03-11    <johan AT balder>
12432
12433         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
12434
12435 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
12436
12437         * src/SDCCloop.c (mergeRegions): an evil beast is dead
12438         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
12439
12440 2003-03-10  Borut Razem <borut.razem AT siol.net>
12441
12442         * src/SDCCmain.c: pipe preprocessor's output
12443         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
12444         * sdcc_vc_in.h: define pclose as _pclose for WIN32
12445         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
12446         which closes all pipes in pipeSet set
12447         * src/SDCCset.c: free deleted item in function deleteSetItem()
12448         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
12449         moved from z80 to src subproject
12450         * .version: increased version number to 2.3.4
12451
12452 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
12453
12454         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
12455         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
12456         * support/regression/ports/xa51/spec.mk: fix typo
12457
12458 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
12459
12460         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
12461
12462 2003-03-09  Borut Razem <borut.razem AT siol.net>
12463
12464         * src/SDCCmain.c: pipe preprocessor's output
12465         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
12466         * sdcc_vc_in.h: define pclose as _pclose for WIN32
12467         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
12468         which closes all pipes in pipeSet set
12469         * src/SDCCset.c: free deleted item in function deleteSetItem()
12470         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
12471         moved from z80 to src subproject
12472
12473 2003-03-09  Borut Razem <borut.razem AT siol.net>
12474
12475         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
12476         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
12477         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
12478         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
12479         * src/SDCCglobl.h: unification of WIN32 native definitions
12480
12481 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12482
12483         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
12484
12485 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
12486
12487         * src/configure.in:   check for endianess (even while cross-compiling)
12488         * src/configure:      check for endianess (even while cross-compiling)
12489         * src/configure_in.h: check for endianess (even while cross-compiling)
12490         * src/avr/gen.c:        remove old endianess stuff
12491         * src/mcs51/gen.c:      remove old endianess stuff
12492         * src/ds390/gen.c:      remove old endianess stuff
12493         * src/pic/gen.c:        remove old endianess stuff
12494         * src/pic/genarith.c:   remove old endianess stuff
12495         * src/pic/glue.c:       fix endianess check
12496         * src/pic16/gen.c:      remove old endianess stuff
12497         * src/pic16/genarith.c: remove old endianess stuff
12498         * src/pic16/glue.c:     fix endianess check
12499         * src/xa51/gen.c:       remove old endianess stuff
12500         * src/z80/gen.c:        fix endianess check
12501         * src/SDCCglue.c:       fix endianess check
12502         * src/ds390/peeph.def: fix bug 700036
12503
12504 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
12505
12506         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
12507         * src/configure: find appropriate data-types on host for SDCC's int and long
12508         * src/configure.in: find appropriate data-types on host for SDCC's int and long
12509         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
12510         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
12511
12512 2003-03-07    <johan AT balder>
12513
12514         Just a big NOOP:
12515                 some minor cleanups before the big shot
12516                 OP_DEFS and OP_USES now use Kevin's protection
12517                 new option --nolabelopt
12518
12519         * src/SDCCBBlock.c:
12520         * src/SDCCast.c,:
12521         * src/SDCCcflow.c:
12522         * src/SDCCcse.c:
12523         * src/SDCCicode.c:
12524         * src/SDCCicode.h:
12525         * src/SDCClabel.c:
12526         * src/SDCCloop.c:
12527         * src/SDCCmain.c:
12528         * src/ds390/ralloc.c:
12529         * src/mcs51/ralloc.c:
12530         * src/pic/ralloc.c:
12531         * src/xa51/ralloc.c:
12532         * src/z80/ralloc.c:
12533
12534 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
12535
12536         * src/pic/pcode.c (get_op): fix 64 bit warnings
12537         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
12538         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
12539         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
12540         * support/regression/tests/malloc.c: fix 64 bit warnings
12541
12542 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
12543
12544         * src/mcs51/gen.c (genMinus): fixed bug 696436
12545
12546 2003-03-02  Borut Razem <borut.razem AT siol.net>
12547
12548         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
12549
12550 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
12551
12552         * configure.in: test for mkstemp
12553         * sdccconf_in.h: add HAVE_MKSTEMP
12554
12555 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
12556
12557         * device/include/ctype.h: removed warning while using --stack-auto
12558         * device/include/malloc.h: removed warning while using --stack-auto
12559         * device/include/string.h: removed warning while using --stack-auto
12560
12561 2003-02-23  Borut Razem <borut.razem AT siol.net>
12562
12563         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
12564         because NDEBUG is defined (see man assert)
12565         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
12566
12567 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12568
12569         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
12570         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
12571
12572 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12573
12574         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
12575         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
12576
12577 2003-02-18    <johan AT balder>
12578
12579         * as/mcs51/asmain.c (asmbl): module can start with a digit
12580         * as/z80/asmain.c (asmbl): module can start with a digit
12581
12582 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
12583
12584         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
12585         * src/asm.c: fix pipe() for Mingw32
12586
12587 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
12588
12589         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
12590         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
12591         make -V work again; --c1mode reads now from stdin
12592         * doc/sdccman.lyx: added --c1mode
12593         * support/Util/SDCCerr.c: new messages for c1 mode
12594         * support/Util/SDCCerr.h: new messages for c1 mode
12595         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
12596
12597 2003-02-15    <johan AT balder>
12598
12599         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
12600
12601 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
12602
12603         * doc/sdccman.lyx: Environment variables, -o and other minor things
12604
12605 2003-02-14    <johan AT balder>
12606
12607         * src/xa51/main.c: before anyone really tries to use it :)
12608
12609         * Install doc's in share/sdcc/doc
12610         * removed some obsolete files
12611         * Do a proper make distclean and uninstall
12612         M Makefile.common.in
12613         R sdccbuild.sh
12614         M as/Makefile
12615         M device/include/Makefile.in
12616         M device/lib/Makefile.in
12617         M doc/sdccman.lyx
12618         M link/Makefile
12619         M sim/ucsim/doc/Makefile.in
12620         M src/clean.mk
12621         R src/avr/peeph.rul
12622         R src/xa51/peeph.rul
12623         M support/cpp2/Makefile.in
12624         M support/makebin/Makefile
12625
12626
12627 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
12628
12629         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
12630
12631 2003-02-10  Borut Razem <borut.razem AT siol.net>
12632
12633         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
12634         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
12635         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
12636         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
12637         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
12638         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
12639         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
12640         src/z80/Makefile.bcc: Borland Makefile cleanup
12641         * as/z80/Makefile.bcc: Added Borland Makefile
12642         * support/cpp2/borland.h: Removed
12643
12644 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
12645
12646         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
12647         * src/SDCC.lex: new pragma NOIV
12648         * src/SDCCglobl.h: new pragma NOIV
12649         * src/SDCCmem.c: new pragma NOIV
12650
12651 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
12652
12653         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
12654
12655 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
12656
12657         * src/SDCCmain.c: signal handling is switched off by --debug
12658         * doc/Makefile: small fix for install; use clean.mk again
12659         * doc/clean.mk: clean *.pdf and *.html too
12660
12661 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
12662
12663         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
12664         * device/lib/printfl.c: fix a ds390 bug by making it portable
12665         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
12666         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
12667         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
12668         * debugger/mcs51/cmd.c: converted multi-line string literals
12669         * sim/ucsim/globals.cc: converted multi-line string literals
12670         * src/SDCCmain.c: introduced signal handler to remove temp files
12671         * doc/Makefile: small tweaks, implement clean
12672         * doc: removed generated files
12673
12674 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12675
12676         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
12677         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
12678         Address Record is not correctly generated for DS390."
12679
12680 2003-02-02  Borut Razem <borut.razem AT siol.net>
12681
12682         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
12683         * as/mcs51/asm.h: fixed compilation with Borland C
12684         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
12685         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
12686         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
12687         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
12688         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
12689         src/z80/Makefile.bcc: delete $(LIB) only if exist
12690         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
12691
12692 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
12693
12694         * device/include/malloc.h: introduced NULL
12695         * device/include/string.h: introduced NULL
12696         * device/include/stdlib.h: introduced NULL
12697         * device/lib/_memcpy.c: removed NULL
12698         * device/lib/_strcat.c: removed NULL
12699         * device/lib/_strchr.c: removed NULL
12700         * device/lib/_strcmp.c: removed NULL
12701         * device/lib/_strcpy.c: removed NULL
12702         * device/lib/_strcspn.c: removed NULL
12703         * device/lib/_strlen.c: removed NULL
12704         * device/lib/_strncat.c: removed NULL
12705         * device/lib/_strncmp.c: removed NULL
12706         * device/lib/_strncpy.c: removed NULL
12707         * device/lib/_strpbrk.c: removed NULL
12708         * device/lib/_strrchr.c: removed NULL
12709         * device/lib/_strspn.c: removed NULL
12710         * device/lib/_strstr.c: removed NULL
12711         * device/lib/_strtok.c: removed NULL
12712         * device/lib/malloc.c: removed NULL, include own header
12713
12714 2003-02-02    <johan AT balder>
12715
12716         * 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
12717         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
12718         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
12719         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
12720         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
12721         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
12722
12723 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12724
12725         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
12726         area 'DATA'"
12727
12728 2003-02-01    <johan AT balder>
12729
12730         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
12731
12732 2003-01-31    <johan AT CP255758-A>
12733
12734         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
12735
12736 2003-01-30    <johan AT balder>
12737
12738         * src/SDCCBBlock.c: automatic bug detection
12739         * src/SDCCicode.c: automatic bug detection
12740
12741 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12742
12743         * src/SDCCglobl.h:   now --xram-size 0 works
12744         * src/SDCCmain.c:    now --xram-size 0 works
12745
12746 2003-01-29    <johan AT balder>
12747
12748         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
12749
12750 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12751
12752         * as/mcs51/aslink.h: Added options --xram-size and --code-size
12753         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
12754         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
12755         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
12756         * src/SDCCglobl.h:   Added options --xram-size and --code-size
12757         * src/SDCCmain.c:    Added options --xram-size and --code-size
12758
12759 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
12760
12761         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
12762         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
12763
12764 2003-01-27    <johan AT balder>
12765
12766         * src/SDCC.y: fixed bug #613764
12767
12768 2003-01-26    <johan AT balder>
12769
12770         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
12771         * src/SDCCsymt.h: fixed bug #673374
12772         * src/SDCCglue.c: fixed bug #661910
12773         * src/SDCCast.c: fixed bug #458099 and 673374
12774
12775 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
12776
12777         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
12778         * as/mcs51/strcmpi.h: added
12779         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
12780         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
12781         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
12782         * as/mcs51/assym.c: strcmpi -> as_strcmpi
12783         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
12784         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
12785         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
12786         * as/mcs51/Makefile.aslink: new module strcmpi
12787         * as/mcs51/Makefile.asx8051: new module strcmpi
12788         * as/mcs51/Makefil.bcc: new module strcmpi
12789         * as/mcs51/Makefile.in: new module strcmpi
12790         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
12791
12792 2003-01-26    <johan AT balder>
12793
12794         * src/SDCCglue.c: reverted back to 1.124
12795         * src/SDCCast.c: reverted back to 1.156
12796         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
12797
12798 2003-01-25    <johan AT balder>
12799
12800         * src/SDCCglue.c: A better fix for bug #661910
12801         * src/SDCCast.c: A better fix for bug #661910
12802         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
12803
12804 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
12805
12806         * src/Makefile.in: remove spawn.o
12807         * src/SDCCmain.c: remove spawn.h
12808         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
12809         * src/spawn.c: removed
12810         * src/spawn.h: removed
12811         * support/regression/ports/ds390/spec.mk: link with -r
12812
12813 2003-01-24    <johan AT CP255758-A>
12814
12815         * src/ds390/gen.c (aopOp): fixed bug #667458
12816         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
12817         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
12818         (createIvalCharPtr): an ival doesn't always have a storage class anymore
12819
12820 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
12821
12822         * src/mcs51/peeph.def: better assembler identation by Frieder
12823         * src/mcs51/gen.c: better assembler identation by Frieder
12824
12825 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
12826
12827         * as/z80/string.h: removed for gcc 3.2
12828         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
12829         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
12830
12831 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
12832
12833         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
12834         * src/SDCCpeeph.c (replaceRule): fix bug #663503
12835         * support/regression/Makefile: separate temp files for ports
12836         * support/regression/generate-cases.py: separate temp files for ports
12837         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
12838         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
12839
12840 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
12841
12842         * moved tinitalk to device/examples/ds390
12843
12844 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
12845
12846         * as/mcs51/lkmem.c: rflag is for DS390
12847         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
12848         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
12849                          (linkEdit): move mem- and map-files the same way as ihx-files
12850         * src/z80/main.c (_setDefaultOptions): removed --generic
12851         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
12852         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
12853         * src/pic/glue.c (picglue): --c1mode works again
12854         * src/pic16/glue.c (pic16glue): --c1mode works again
12855         * src/asm.c (printCLine): fix #660034
12856
12857 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
12858
12859         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
12860         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
12861         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
12862         * as/mcs51/lkmem (summary): better fix for sp problem
12863         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
12864         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
12865         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
12866                                               remove --stack-after-data
12867
12868 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
12869
12870         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
12871         * src/SDCCutil.c (join): ugly bug: missing '\0'
12872         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
12873
12874 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
12875
12876         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
12877         * src/port.h: typo
12878         * src/pic/main.c (_asmCmd): gpasm supports -o
12879         * src/z80/main.c: more general macros
12880         * device/lib/Makefile.in: remove intermediate files
12881
12882 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
12883
12884         * .version: Bumped version number to 2.3.3
12885         * src/SDCCBBlock.c: new option -o
12886         * src/SDCCglobl.h: new option -o
12887         * src/SDCCglue.c: new option -o
12888         * src/SDCCmain.c: new option -o
12889         * src/asm.c: new option -o
12890         * src/ds390/main.c: new option -o
12891         * src/pic/glue.c: new option -o
12892         * src/pic/pcode.c: new option -o
12893         * src/pic/ralloc.c: new option -o
12894         * src/pic16/glue.c: new option -o
12895         * src/pic16/pcode.c: new option -o
12896         * src/pic16/ralloc.c: new option -o
12897         * src/z80/main.c: new option -o
12898         * device/lib/Makefile.in: use -o
12899         * support/regression/ports/ds390/spec.mk: use -o
12900         * support/regression/ports/gbz80/spec.mk: use -o
12901         * support/regression/ports/mcs51/spec.mk: use -o
12902         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
12903         * support/regression/ports/z80/spec.mk: use -o
12904         * support/regression/ports/ucz80/spec.mk: use -o
12905         * support/regression/ports/xa51/spec.mk: use -o
12906         * support/regression/fwk/lib/timeout.c: fix usage string
12907
12908 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
12909         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
12910
12911 2003-01-07    <johan AT balder>
12912
12913         * src/SDCCast.c (decorateType): fixed bug #600035
12914
12915 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
12916         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
12917         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
12918         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
12919         * src/pic/pcode.c: outcommented unused variable to remove warnings
12920         * src/pic/ralloc.c: outcommented unused variable to remove warnings
12921
12922 2003-01-06    <karl AT turbobit.com>
12923         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
12924    regression tests.
12925
12926 2003-01-06    <johan AT balder>
12927
12928         * src/SDCCicode.c: fixed array add
12929
12930 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
12931         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
12932         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
12933
12934 2003-01-04    <johan AT balder>
12935
12936         * src/SDCCval.c (getNelements): fixed the initialized array of structures
12937
12938 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12939         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
12940
12941 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
12942         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
12943         * support/regression/tests/bug-524697.c: fit mem usage into 8032
12944
12945 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
12946         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
12947
12948 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
12949         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
12950
12951 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
12952         * src/mcs51/main.c: removed {bindir}{sep} from aslink
12953
12954 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12955
12956     * in /sdcc/as/mcs51/ changed these files in order to create an
12957     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
12958     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
12959     following files to include the previous two files: aslink.dsp,
12960     Makefile.aslink, Makefile.bcc, and Makefile.in.
12961
12962     * Changed /sdcc/src/SDCCmain.c so it creates files with extension
12963     .adb instead of .cdb
12964
12965 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12966
12967         * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
12968         value from option --iram-size.
12969
12970 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12971
12972         * /sdcc/as/mcs51/lklist.c: added boundary check before using
12973         dram[] array.
12974
12975 2002-09-18    <wiml AT hhhh.org>
12976
12977         * SDCClrange.h: exposed setFromRange() and setToRange()
12978         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
12979           packRegsForAccUse() (bug 542397)
12980         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
12981           multiple times and emitting the fetch operations more than once
12982           added aopGetUsesAcc() function to allow binary operators to
12983           fetch their operands in the correct order; made genMinus() emit
12984           compact code for X = LITERAL - Y
12985
12986 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12987         * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
12988         sprintf() in line 1267.
12989
12990 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12991         * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
12992         like ports.
12993
12994 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12995         Changes to aslink (All the changes are marked with 'JCF'):
12996
12997         * /sdcc/as/mcs51/aslink.h: External definition of sflag and
12998         summary().
12999
13000         * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
13001         area BSEG.  Also moves, if possible, the DATA area down into the internal
13002         ram so more space is available.
13003
13004         * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
13005         sflag.
13006
13007         * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
13008         not bytes.  Function summary() which creates a memory usage summary
13009         file with extension .mem.  Reports of overlaping stack and small stack
13010         size.  If the space for the stack is less than 16 bytes aslink trows a
13011         warning.
13012
13013         * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
13014         the 8051.  Option 'y' for memory summary output file.
13015
13016         Changes to sdcc (All the changes are marked with 'JCF'):
13017
13018         * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
13019
13020         * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
13021         overlaying area for it (uses RegBankUsed[4]).
13022
13023         * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
13024         bank zero as used by default.  By default aslink locates the stack
13025         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
13026         the creation of the .mem file.  Delegates the allocation of data area
13027         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
13028         the begining of the stack area to aslink.
13029
13030         * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
13031         glue() in SDCCglue.c creates an area for it.
13032
13033 2002-09-03  Borut Razem <borut.razem AT siol.net>
13034         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
13035         sdcc/src/pic/glue.c:
13036         introduced atexit() handler for teporay files removal in case of
13037         errors, assertions, ...
13038
13039 2002-08-29  Borut Razem <borut.razem AT siol.net>
13040         * sdcc/support/cpp2/auto-host_vc_in.h:
13041         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
13042         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
13043         Maybe there is a similar problem with BORLANDC? It should be checked!
13044
13045         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
13046         corrected improper use of assert: the assignment to clr variable was done inside the assert.
13047         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
13048         was not executed, and the compiler (cl) launched a warning:
13049         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
13050
13051 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
13052         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
13053
13054 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
13055         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
13056
13057         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
13058           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
13059           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
13060           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
13061           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
13062           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
13063           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
13064         - added Release configuration in VS projects
13065         - review of compiler an linker options
13066         - VC .exe files are generated in bin_vc directory, not to interfere
13067           with binaries generated from other projects (cygwin, mingw, bcc ...)
13068
13069         * sdcc/src/yacc.dsp: added
13070
13071         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
13072         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
13073         and insert the version number definitions from .version
13074
13075         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
13076
13077         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
13078         added - genarate auto-host.h using auto-host_vc_in.h as template
13079
13080         * sdcc/sdcc_vc.h,
13081         removed from CVS, generated automatically
13082
13083 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
13084         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
13085
13086 2002-08-11  Borut Razem <borut.razem AT siol.net>
13087         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
13088
13089 2002-08-10  Borut Razem <borut.razem AT siol.net>
13090         * src/SDCCmain.c (main):
13091         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
13092         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
13093         The consequence was that some temporary files were not removed.
13094
13095         * src/SDCCglue.c:
13096         unification of code in functions tempfilename() and tempfile():
13097         function tempnam() is defined in Visual Studio 6.0 and .NET
13098
13099         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
13100
13101         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
13102           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
13103         - removed compiler command line option /WX: Treats all warnings as errors
13104         - update a list of source files, included into the project
13105
13106         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
13107           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
13108         changed project type to Generic Project so that can be correcly converted to VS.NET project
13109
13110         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
13111
13112         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
13113
13114         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
13115
13116         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
13117         added return 0 statements after assert() to make compiler happy
13118
13119         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
13120         added newline in the def file to keep MSC compiler satisfied
13121
13122         * sdcc/src/z80/gen.c:
13123         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
13124           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
13125         - solved MSC error in function aopDump()
13126
13127         * sdcc_vc.h: define PREFIX as "\\sdcc"
13128
13129 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
13130         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
13131
13132 2002-06-22  Scott Dattalo <scott AT dattalo.com>
13133         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
13134         - Rewrote the register banking algorithm.
13135         - Added pCode live-range analysis to registers (for now, only non-used and
13136         singly-used registers optimized away)
13137
13138         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
13139
13140         * 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.
13141
13142 2002-05-10  Scott Dattalo <scott AT dattalo.com>
13143         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
13144
13145 2002-04-22  Michael Hope  <michaelh AT vroom>
13146
13147         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
13148
13149         * configure.in (DD_COPT): Added include support required for gbdk.
13150
13151         * .version: Bumped version number just to increase it.
13152
13153         * src/SDCCmain.c: Added -nostdinc to the default options.
13154
13155 2002-04-15  Michael Hope  <michaelh AT vroom>
13156
13157         * device/lib/z80/printf.c (sprintf): Added.
13158
13159         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
13160
13161         * src/z80/peeph.def: Added transpose redundent load rule.
13162
13163         * src/z80/main.c: Added force callee saves for jaune.
13164
13165         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
13166
13167         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
13168
13169 2002-03-28  Johan Knol  <johan AT balder>
13170
13171         * src/SDCCval.c: fixed bug #532436
13172
13173 2002-03-14  Scott Dattalo <scott AT dattalo.com>
13174         * /src/port.h:
13175         Added "char *Processor" field to the port structure.
13176
13177         * /src/SDCCmain.c:
13178         Added -p option. Allows port dependent processor to be specified.
13179
13180         * all ports:
13181         Initialized the new field char *Processor field to NULL in all ports
13182
13183         * /src/pic/*:
13184         Compiler generated registers for interrupt context saving
13185         were not getting allocated.
13186
13187 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
13188
13189         * /src/SDCCast.c:
13190         Fixed left shift. Will promote the left side of a left shift
13191         if a) left shifting more than size of operand or b) when assigned
13192         to something size > size of left side
13193
13194 2002-03-14  Scott Dattalo <scott AT dattalo.com>
13195         * src/pic/*
13196         tons of changes. Register allocation has been
13197         rewritten. Added customization for the various PICs. Flow
13198         analysis is restructured. ...
13199
13200         * src/pic/device.h:
13201         Added
13202
13203         * src/pic/device.c:
13204         Added. device.c is a PIC port hack to accomodate variations
13205         in PIC devices.
13206
13207 2002-03-13  Michael Hope  <michaelh AT vroom>
13208
13209         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
13210
13211 2002-03-04  johanknol  <johanknol AT manik>
13212
13213         * /src/SDCCval.c: fixed
13214
13215         const unsigned char arr[][2] = { { 0, 1 } };
13216         t18.c:1: error: Initializer element is not constant
13217
13218 2002-03-04  bela  <bela AT manik>
13219
13220         * /device/include/mcs51reg.h:
13221         ds89c420 register definition update
13222
13223 2002-03-03    <johan AT FRIJA>
13224
13225         * support/Util/SDCCerr.c: did something, but don't no why anymore
13226
13227         * support/regression/tests/bug-524691.c: made it a little less shy
13228
13229         * src/SDCCast.c (decorateType): fixed bug #524697
13230
13231         * src/SDCCast.c: made some lineno improvements
13232
13233         * src/SDCCval.c (getNelements): changed warning to error
13234
13235         * src/SDCCglue.c (printIvalArray): changed warning to error
13236
13237         * src/SDCCicode.c: fixed a warning for mingw
13238
13239         * src/SDCCast.c (decorateType): fixed the << promotion for ops
13240
13241         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
13242
13243 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
13244
13245         * src/ds390/peeph.def:
13246         Added some more peephole rules
13247
13248         * src/ds390/gen.c: Various fixes & enhancements
13249
13250         * src/SDCClrange.c, src/SDCClrange.h:
13251         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
13252
13253         * src/ds390/ralloc.c:
13254         various fixes & enhancements (ds390) specific
13255
13256         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
13257         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
13258         from rallocs.
13259
13260         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
13261
13262 2002-03-02    <johan AT FRIJA>
13263
13264         * src/SDCCast.c (decorateType): fixed bug #524708
13265
13266         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
13267
13268         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
13269
13270 2002-03-01  Michael Hope  <michaelh AT vroom>
13271
13272         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
13273
13274         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
13275
13276 2002-03-01    <johan AT FRIJA>
13277
13278         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
13279
13280         * src/SDCCast.c (decorateType): fixed bug #524209
13281
13282         * src/SDCCval.c (valNot): fixed bug #524195
13283
13284 2002-02-26    <johan AT balder>
13285
13286         * src/xa51/gen.c: fixed a warning
13287
13288         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
13289
13290         * src/SDCCast.c (decorateType): fixed bug #522534
13291
13292 2002-02-23    <johan AT balder>
13293
13294         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
13295
13296 2002-02-22    <johan AT balder>
13297
13298         * src/SDCCast.c: fixed bug #514865
13299
13300         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
13301
13302 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
13303
13304         * sdcc/src/SDCCloop.c:
13305         Previous fix was not good. basic blocks that have "break" or "return" are
13306         not really partof a loop , but live ranges used in these blocks should
13307         be live thru the entire loop, so set partOfLoop but don't add them to
13308         loop region
13309
13310 2002-02-21    <johan AT FRIJA>
13311
13312         * src/SDCCcse.c: fixed bug #514308
13313
13314 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
13315
13316         * src/SDCCloop.c:
13317         Fixed BUG #519583. If a conditional block ended in a return/break
13318         statement inside a loop, it was not being considered part of the loop.
13319
13320         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
13321
13322 2002-02-10  Karl Bongers <karl AT turbobit.com>
13323
13324         * debugger/*:
13325         Fixed up SDCDB debugger somewhat.  Updated debugger/README
13326         with lots of comments and notes.
13327
13328         * device/examples/test2.c:
13329         Fix bug, "red" variable not being initialized(compiler complained).
13330
13331         * device/examples/Makefile, examples/test3.c:
13332         Add Makefile in device/examples folder, compiles test3.c
13333         for use as a multiple module SDCDB test case.
13334
13335         * sim/ucsim/cmd.src/cmdset.cc:
13336         Took out debug printfs in ucsim "next" command.
13337
13338         * sim/ucsim/xa.src:
13339         Karl and Johan start ucsim XA support.  Most dissassembly working,
13340         about 75% emulation done(plenty of work remaining).
13341
13342         * sim/ucsim/z80.src:
13343         Add Z80 support to ucsim, add test-ucz80 regression test,
13344         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
13345         Notice z80 compiler fails on examples/test3.c/crc code.
13346
13347 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
13348
13349         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
13350         Added support for --parms-in-bank1
13351
13352         * src/ds390/peeph.def:
13353         added a few more peephole optimzations
13354
13355         * src/ds390/main.c:
13356         1) added __builtin_inp & __builtin_outp used to read in data of given length
13357            from a memory mapped port
13358         2) added __builtin_memcmp
13359         3) added __builtin_swapw swap bytes of a short
13360
13361         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
13362         1) handle multiple send & receives from register bank1
13363         2) ralloc can now allocate DPTR1 to some liveRanges
13364
13365         * src/SDCCsymt.c, src/SDCCsymt.h:
13366         changes to handle multiple sends & receives
13367
13368         * src/SDCCptropt.h:
13369         added some pointer arithmetic optimization
13370
13371         * src/SDCCptropt.c:
13372         added some pointer arithmetic optimizations but not stable yet so not
13373         called from anywhere (will get this working shortly)
13374
13375         * src/SDCCopt.c: fixed for multiple sends & receives
13376
13377         * src/SDCCmain.c:
13378         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
13379         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
13380            set preprocessor defines (depending on options)
13381
13382         * src/SDCCicode.c, src/SDCCicode.h:
13383         changes made to handle multiple sends & receives
13384
13385         * src/SDCCglobl.h:
13386         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
13387
13388         * src/SDCCcse.c, src/SDCCcse.h:
13389         added function findbackward def (to be used in upcoming optimization)
13390
13391         * src/SDCCcflow.c, src/SDCCcflow.h:
13392         added function returnAtEnd - to determine if a basic block terminates with
13393         a RETURN iCode
13394
13395         * src/SDCCast.c, src/SDCCast.h:
13396         added option parms-in-bank1
13397
13398         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
13399         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
13400         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
13401         adjusted for --parms-in-bank1 option
13402
13403         * device/include/string.h:
13404         donot redefine "reentrant" keyword
13405
13406         * device/include/ds80c390.h: Added some more SFRs
13407
13408 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
13409
13410         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
13411
13412 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
13413
13414         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
13415
13416 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
13417
13418         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
13419
13420 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
13421
13422         * Added --xram-movc option
13423
13424 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
13425
13426         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
13427
13428 2002-01-11  Johan Knol
13429
13430         * Added math lib of Jesus Calvino-Fraga
13431
13432 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
13433
13434         * src/SDCCmain.c (processFile): fix processing of ../../src.c
13435         * support/regression/Makefile: new target test-mcs51-stack-auto
13436         * support/regression/ports/mcs51-stack-auto/spec.mk: added
13437
13438 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
13439
13440         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
13441
13442 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
13443
13444         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
13445
13446 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
13447
13448         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
13449
13450         * src/SDCCglue.h: add definition for printIvalChar()
13451
13452 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
13453
13454         * src/SDCCast.c: fix #498138 by Johan
13455
13456         * src/SDCCglue.c: fix #498138 by Johan
13457
13458 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
13459
13460         * support/regression/Makefile: fix clean
13461
13462         * support/regression/ports/ds390/support.c: fix transmission of last character
13463
13464 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
13465
13466         * /sdcc/src/ds390/gen.c:
13467         a) improved computing address of stack variable
13468         b) took out some #if 0 code
13469         c) improved parmBytes adjustment
13470         d) improved genPlusIncr & genMinusIncr
13471         e) genCmp could generate bad code (when left assigned to DPTR)
13472         f) Fixed bug in hasInc
13473
13474         * /sdcc/src/ds390/ralloc.c:
13475         a) packRegsForSupport could mess up live information (Fixed)
13476         b) packRegsDPTRuse could be incorrect for left & right shift
13477
13478         * /sdcc/src/mcs51/ralloc.c:
13479         packRegsForSupport could mess up the live information (Fixed)
13480
13481         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
13482
13483         * /sdcc/src/SDCCast.c:
13484         can reverse a loop even if function call is present as long
13485         as the loop control variable is local & is not passed as parameter
13486
13487 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
13488
13489         * /sdcc/ChangeLog: *** empty log message ***
13490
13491         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
13492         More builtin function additions for TININative
13493
13494         * /sdcc/src/ds390/ralloc.c:
13495         Had broken the regression testsuite
13496
13497         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
13498
13499         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
13500         Added funcattr hasStackParms will be set for reentrant functions when there
13501         are paramteres on the stack, this helps in minimizing frame pointer generation
13502         typeFromStr can handle function pointers now
13503
13504         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
13505         *** empty log message ***
13506
13507 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
13508
13509         * /src/ds390/gen.c, /src/ds390/main.c:
13510         More builtin function additions for TININative
13511
13512         * /src/ds390/ralloc.c:
13513         Had broken the regression testsuite
13514
13515         * /src/SDCCast.c: Fixed a bug in dumptree
13516
13517         * /src/SDCCsymt.c, /src/SDCCsymt.h:
13518         Added funcattr hasStackParms will be set for reentrant functions when there
13519         are paramteres on the stack, this helps in minimizing frame pointer generation
13520         typeFromStr can handle function pointers now
13521
13522         * /doc/builtins.txt, /doc/TININative.txt:
13523         *** empty log message ***
13524
13525
13526 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
13527
13528         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
13529         ALPHA version for -mTININative
13530
13531         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
13532         updated to reflect changes in the port structure
13533
13534         * /src/port.h:
13535         added function do_assemble (similar to do_link) if non-null this function
13536         will be called to do assembly (-mTININative) requires a multi command
13537         assembly
13538         added function genAssemblerEnd will be called to generate assembler Epilogue
13539
13540         * /src/SDCCsymt.c:
13541         added _JavaNative to debug info printing
13542
13543         * /src/SDCCmain.c: added option --tini-libid
13544         added port->do_assemble function (-mTININative) has a multi command assemble
13545
13546         * /src/SDCCglue.c: Disabled "constExpr" check
13547         added port->genAssemblerEnd function
13548
13549         * /src/SDCCglobl.h: Added option --tini-libid value
13550
13551         * /src/SDCCast.h:
13552         tookout optimizeCompare from the header (has no external references)
13553
13554         * /src/SDCCast.c: made one more function "static"
13555
13556 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
13557
13558         * src/z80/mappings.i: Added z80asm support.
13559
13560         * src/z80/main.c: Added z80asm support on --asm=z80asm
13561
13562         * src/z80/gen.c: Fixed asm portability issues.
13563
13564         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
13565
13566         * src/SDCCglue.c (printExterns): Added global/extern split.
13567
13568 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
13569
13570         * support/regression/Makefile: added test for mcs51 model large
13571
13572         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
13573
13574         * support/regression/ports/gbz80/spec.mk: added -mgbz80
13575
13576 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
13577
13578         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
13579
13580 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
13581
13582         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
13583
13584         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
13585
13586 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
13587
13588         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
13589
13590         * support/regression/tests/simplefloat.c: Port to mcs51.
13591
13592 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
13593         * support/regression/tests/bug-485362.c: Added.
13594
13595         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
13596
13597         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
13598
13599         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
13600
13601         * src/z80/gen.c (aopDump): Added a dump function.
13602
13603 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
13604         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
13605
13606         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
13607
13608         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
13609
13610         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
13611
13612         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
13613
13614         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
13615
13616         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
13617
13618         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
13619
13620         * support/regression/ports/ds390/support.c: Use tinibios.
13621
13622         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
13623
13624 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
13625
13626         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
13627         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
13628
13629         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
13630
13631         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
13632
13633 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
13634
13635         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
13636
13637         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
13638         (packRegsForIYUse): Created and optimised.
13639
13640 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
13641
13642         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
13643 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
13644
13645         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
13646
13647         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
13648
13649         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
13650
13651 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
13652
13653         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
13654
13655         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
13656
13657 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
13658
13659         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
13660
13661         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
13662
13663         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
13664
13665 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
13666
13667         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
13668         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
13669         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
13670
13671         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
13672
13673         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
13674         (genNotFloat): Added.
13675         (genUminusFloat): Added.
13676
13677         * device/lib/z80/Makefile: Added floating pt stubs.
13678
13679         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
13680
13681         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
13682
13683         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
13684
13685 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
13686
13687         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
13688
13689         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
13690
13691         * sdcc/support/regression/Makefile: Add port ds390.
13692
13693         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
13694
13695         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
13696
13697         * sdcc/support/regression/ports/ds390/spec.mk: Added.
13698
13699         * sdcc/support/regression/ports/ds390/support.c: Added.
13700
13701         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
13702
13703         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
13704
13705         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
13706
13707 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
13708
13709         * device/include/malloc.h: Added z80 and gbz80 support.
13710
13711         * device/lib/gbz80/heap.s: Added.
13712
13713         * device/lib/z80/heap.s: Added.
13714
13715         * device/lib/malloc.c: Added z80 and gbz80 support.
13716
13717         * support/regression/tests/malloc.c (testMalloc): Added.
13718
13719         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
13720
13721         * support/regression/tests/bug-478094.c: Added.
13722
13723         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
13724
13725 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
13726
13727         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
13728
13729         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
13730
13731         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
13732
13733         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
13734
13735         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
13736
13737 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
13738
13739         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
13740
13741 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
13742
13743         * support/regression/tests/bug-477927.c: Added.
13744
13745         * src/z80/peeph.def: Added minor rules.
13746
13747         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
13748
13749         * src/z80/peeph.def: Added jump optimisation modification.
13750
13751 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
13752
13753         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
13754
13755 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
13756
13757         * support/regression/tests/funptrs.c: Added.
13758
13759 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
13760
13761         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
13762
13763 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
13764
13765         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
13766
13767         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
13768
13769         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
13770         (movLeft2ResultLong): Created.
13771
13772         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
13773         (joinPushes): Added.  Joins two char pushes into a word push.
13774
13775 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
13776
13777         * support/cpp2/Makefile.in (install): Added creation of dest dir.
13778
13779         * support/makebin/Makefile (install): Added creation of dest dir.
13780
13781 2001-10-24 Karl Bongers <karl AT turbobit.com>
13782
13783         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
13784
13785 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
13786
13787         * src/z80/ralloc.c: Turned off faulty pack for one use.
13788
13789         * src/z80/peeph-gbz80.def: Removed redundent restart options.
13790
13791         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
13792
13793 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
13794
13795         * support/regression/Makefile: Improved clean
13796
13797         * support/regression/ports/gbz80/spec.mk: Added clean
13798
13799         * support/regression/ports/host/spec.mk: Added clean
13800
13801         * support/regression/ports/z80/spec.mk: Added clean
13802
13803         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
13804
13805         * support/regression/ports/mcs51/timeout.c: little improvements
13806
13807 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
13808
13809         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
13810
13811         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
13812
13813         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
13814
13815 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
13816
13817         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
13818
13819         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
13820
13821 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
13822         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
13823
13824         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
13825
13826         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
13827
13828         * src/mcs51/main.c (_linkCmd): Added bin path to command.
13829
13830         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
13831
13832         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
13833
13834         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
13835
13836         * support/regression/tests/longor.c: Added.
13837
13838 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
13839
13840         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
13841
13842         * as/mcs51/aslink.h: define PATH_MAX
13843
13844         * as/mcs51/asm.h: define PATH_MAX
13845
13846         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
13847
13848         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
13849
13850         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
13851
13852         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
13853
13854         * src/SDCCglobl.h: define PATH_MAX
13855
13856         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
13857
13858         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
13859
13860 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
13861
13862         * src/z80/gen.c (gencjneshort): Fixed
13863
13864         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
13865
13866 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
13867
13868         * support/regression/tests/bug-469671.c: Added.
13869
13870         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
13871
13872 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
13873
13874         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
13875
13876         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
13877
13878 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
13879
13880         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
13881
13882         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
13883
13884         * src/device/lib/_mullong.c : removed hint: nooverlay bug
13885
13886         * src/device/lib/_divuint.c : removed hint: nooverlay bug
13887
13888         * src/device/lib/_divulong.c: removed hint: nooverlay bug
13889
13890         * src/device/lib/_moduint.c : removed hint: nooverlay bug
13891
13892         * src/device/lib/_modulong.c: removed hint: nooverlay bug
13893
13894 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
13895
13896         * 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.
13897
13898         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
13899
13900         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
13901
13902 2001-10-07    <johan AT FRIJA>
13903
13904         * device/lib/gets.c (gets): fixed the return value.
13905
13906 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
13907         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
13908
13909         * 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.
13910
13911         * 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.
13912
13913         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
13914
13915         * src/pic/gen.c: Removed Safe_strdup.
13916
13917         * configure.in: Added option to enable libgc support.
13918
13919         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
13920         (bitVectUnion): Optimised.
13921         (bitVectIntersect): Optimised.
13922         (bitVectBitsInCommon): Optimised.
13923         (bitVectCplAnd): Optimised.
13924
13925         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
13926
13927 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
13928
13929         * src/SDCCmain.c: distinguish between assembler debug and plain options
13930
13931         * src/avr/main.c:   remove standard assembler options
13932
13933         * src/ds390/main.c: remove standard assembler options
13934
13935         * src/mcs51/main.c: remove standard assembler options
13936
13937         * src/port.h: removed "PENDING" comment
13938
13939 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
13940
13941         * src/device/lib/_mulint.c  : new, with assember functions
13942
13943         * src/device/lib/_mullong.c : new, with assember functions
13944
13945         * src/device/lib/_divuint.c : with assember functions
13946
13947         * src/device/lib/_divsint.c : with assember functions
13948
13949         * src/device/lib/_divulong.c: with assember functions
13950
13951         * src/device/lib/_divslong.c: with assember functions
13952
13953         * src/device/lib/_moduint.c : with assember functions
13954
13955         * src/device/lib/_modsint.c : with assember functions
13956
13957         * src/device/lib/_modulong.c: with assember functions
13958
13959         * src/device/lib/_modslong.c: with assember functions
13960
13961         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
13962
13963         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
13964
13965         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
13966                                       replaced _mululong.c and _mulslong.c by _mullong.c
13967
13968 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
13969
13970         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
13971
13972 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
13973
13974         * src/SDCCglue.c: test, if win32api is available for MINGW
13975
13976 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
13977
13978         * src/SDCCsymt.c: no more _modifier in printTypeChain()
13979         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
13980         * support/regression/ports/gbz80/spec.mk: removed GENERIC
13981         * support/regression/ports/host/spec.mk: removed GENERIC
13982         * support/regression/ports/mcs51/spec.mk: removed GENERIC
13983         * support/regression/ports/z80/spec.mk: removed GENERIC
13984
13985 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
13986
13987         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
13988
13989         * support/regression/tests/bug-467035.c: Created.
13990
13991 2001-10-01    <johan AT FRIJA>
13992
13993         * src/SDCC.y: fixed bug #466586 part 1
13994
13995 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
13996
13997         * SDCCicode.c: z80 has no generic pointers
13998         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
13999
14000 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
14001
14002         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
14003
14004 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
14005
14006         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
14007
14008         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
14009
14010 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
14011
14012         * configure.in: Fixed up so that ucsim is only configured once.
14013
14014         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
14015
14016         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
14017         (getPathDifference): As above.
14018
14019         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
14020
14021         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
14022
14023 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
14024         * .version: Updated to 2.3.1
14025
14026         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
14027         Added copyright header.
14028
14029         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
14030         (assemble): Added support for macro based assembler commands.
14031         (linkEdit): Added support for macro based linker commands.
14032         (preProcess): Changed the pre-processor to use macros.
14033         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
14034         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
14035
14036         * device/lib/z80/crt0.s: Added module name for debugging.
14037
14038 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
14039
14040         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
14041
14042         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
14043
14044         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
14045
14046         * src/Makefile.in: Added SDCCmacro and SDCCutil
14047
14048 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
14049
14050         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
14051
14052 2001-09-16    <johan AT FRIJA>
14053
14054         * 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.
14055
14056 2001-09-15    <johan AT FRIJA>
14057
14058         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
14059         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
14060
14061 2001-09-11    <johan AT FRIJA>
14062
14063         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
14064
14065 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
14066
14067         * support/regression/tests/bug-460444.c: Added test case.
14068
14069         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
14070         (genCast): Added justification for all of the asserts.
14071
14072 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
14073
14074         * support/regression/support.c: _xdata replaced by xdata
14075
14076         * support/regression/spec.mk: removed _generic
14077
14078 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
14079
14080         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
14081
14082         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
14083         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
14084
14085         * src/z80/peeph.def: Added a rule to optimise shift then compare.
14086
14087         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
14088
14089         * support/regression/tests/bug-460010.c: Added test case.
14090
14091         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
14092
14093 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
14094
14095         * support/regression/Makefile: inter-port-clean adjusted for mcs51
14096
14097         * support/regression/testfwk.c: removed workaround for bug #436344
14098
14099         * support/regression/tests/bp.c: use less memory with mcs51
14100
14101         * support/regression/tests/bug-441448.c: use less memory
14102
14103         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
14104
14105         * support/regression/collate-results.py: typo
14106
14107 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
14108
14109         * support/regression/tests/fetchoverlap.c: Added new test case.
14110
14111         * support/regression/tests/bp.c: Added new test case.
14112
14113         * support/regression/tests/bug-448984.c: Added new test case.
14114
14115         * support/regression/tests/pow2shifts.c: Added new test case.
14116
14117         * src/z80/gen.c: Turned off the noise it normally generates for the release.
14118         (genlshTwo): Fixed right shift for count > 8.
14119
14120         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
14121
14122 2001-09-08    <johan AT FRIJA>
14123
14124         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
14125
14126 2001-09-07    <johan AT FRIJA>
14127
14128         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
14129
14130         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
14131
14132 2001-09-06    <johan AT FRIJA>
14133
14134         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
14135         * bernhard noted me at this: "() equals to (void)" (1.38)
14136
14137 2001-09-05    <johan AT FRIJA>
14138
14139         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
14140
14141 2001-09-04    <johan AT FRIJA>
14142
14143         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
14144
14145
14146 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
14147
14148         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
14149
14150 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
14151
14152         * link/z80/aslink.h: Fixed path for PATH_MAX
14153
14154 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
14155
14156         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
14157
14158         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
14159
14160         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
14161
14162         * 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.
14163
14164 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
14165
14166         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
14167         (genCmp): Fixed up genCmp for the GB with longs.
14168
14169         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
14170
14171         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
14172
14173         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
14174
14175         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
14176
14177 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
14178
14179         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
14180
14181 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
14182
14183         * 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.
14184
14185         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
14186
14187 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
14188
14189         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
14190
14191         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
14192
14193 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
14194
14195   * sim/ucsim/configure:    little improvement of Cygwin-detection
14196   * sim/ucsim/configure.in: little improvement of Cygwin-detection
14197   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
14198   * support/regression/tests/bug-221100.c: small changes for mcs51
14199   * support/regression/tests/bug-221168.c: small changes for mcs51
14200   * support/regression/tests/bug-227710.c: small changes for mcs51
14201   * support/regression/tests/staticinit.c: small changes for mcs51
14202   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
14203   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
14204   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
14205
14206 $Revision$