Added -p option to allow selection of port dependent processors.
[fw/sdcc] / ChangeLog
1 2002-03-14  Scott Dattalo <scott@dattalo.com>
2         * /src/port.h:
3         Added "char *Processor" field to the port structure.
4
5         * /src/SDCCmain.c:
6         Added -p option. Allows port dependent processor to be specified.
7
8         * all ports:
9         Initialized the new field char *Processor field to NULL in all ports
10
11         * /src/pic/*:
12         Compiler generated registers for interrupt context saving
13         were not getting allocated.
14                 
15 2002-03-16  Sandeep Dutta  <sandeep@ddi.com>
16
17         * /src/SDCCast.c:
18         Fixed left shift. Will promote the left side of a left shift
19         if a) left shifting more than size of operand or b) when assigned
20         to something size > size of left side
21
22 2002-03-14  Scott Dattalo <scott@dattalo.com>
23         * src/pic/*
24         tons of changes. Register allocation has been 
25         rewritten. Added customization for the various PICs. Flow
26         analysis is restructured. ...
27
28         * src/pic/device.h:
29         Added
30
31         * src/pic/device.c:
32         Added. device.c is a PIC port hack to accomodate variations
33         in PIC devices.
34         
35 2002-03-04  johanknol  <johanknol@manik>
36
37         * /src/SDCCval.c: fixed
38
39         const unsigned char arr[][2] = { { 0, 1 } };
40         t18.c:1: error: Initializer element is not constant
41
42 2002-03-04  bela  <bela@manik>
43
44         * /device/include/mcs51reg.h:
45         ds89c420 register definition update
46
47 2002-03-03    <johan@FRIJA>
48
49         * support/Util/SDCCerr.c: did something, but don't no why anymore
50
51         * support/regression/tests/bug-524691.c: made it a little less shy 
52
53         * src/SDCCast.c (decorateType): fixed bug #524697 
54
55         * src/SDCCast.c: made some lineno improvements
56
57         * src/SDCCval.c (getNelements): changed warning to error
58
59         * src/SDCCglue.c (printIvalArray): changed warning to error
60
61         * src/SDCCicode.c: fixed a warning for mingw
62
63         * src/SDCCast.c (decorateType): fixed the << promotion for ops
64
65         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
66
67 2002-03-02  Sandeep Dutta  <sandeep@ddi.com>
68
69         * src/ds390/peeph.def:
70         Added some more peephole rules
71
72         * src/ds390/gen.c: Various fixes & enhancements
73
74         * src/SDCClrange.c, src/SDCClrange.h:
75         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
76
77         * src/ds390/ralloc.c:
78         various fixes & enhancements (ds390) specific
79
80         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
81         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
82         from rallocs.
83
84         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
85
86 2002-03-02    <johan@FRIJA>
87
88         * src/SDCCast.c (decorateType): fixed bug #524708
89
90         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
91
92         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
93
94 2002-03-01  Michael Hope  <michaelh@vroom>
95
96         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
97
98         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
99
100 2002-03-01    <johan@FRIJA>
101
102         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
103
104         * src/SDCCast.c (decorateType): fixed bug #524209
105
106         * src/SDCCval.c (valNot): fixed bug #524195
107
108 2002-02-26    <johan@balder>
109
110         * src/xa51/gen.c: fixed a warning
111
112         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
113
114         * src/SDCCast.c (decorateType): fixed bug #522534
115
116 2002-02-23    <johan@balder>
117
118         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
119
120 2002-02-22    <johan@balder>
121
122         * src/SDCCast.c: fixed bug #514865
123
124         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
125
126 2002-02-21  Sandeep Dutta  <sandeep@ddi.com>
127
128         * sdcc/src/SDCCloop.c:
129         Previous fix was not good. basic blocks that have "break" or "return" are
130         not really partof a loop , but live ranges used in these blocks should
131         be live thru the entire loop, so set partOfLoop but don't add them to
132         loop region
133
134 2002-02-21    <johan@FRIJA>
135
136         * src/SDCCcse.c: fixed bug #514308
137
138 2002-02-20  Sandeep Dutta  <sandeep@ddi.com>
139
140         * src/SDCCloop.c:
141         Fixed BUG #519583. If a conditional block ended in a return/break
142         statement inside a loop, it was not being considered part of the loop.
143
144         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
145
146 2002-02-10  Karl Bongers <karl@turbobit.com>
147
148         * debugger/*:
149         Fixed up SDCDB debugger somewhat.  Updated debugger/README
150         with lots of comments and notes.
151
152         * device/examples/test2.c:
153         Fix bug, "red" variable not being initialized(compiler complained).
154
155         * device/examples/Makefile, examples/test3.c:
156         Add Makefile in device/examples folder, compiles test3.c
157         for use as a multiple module SDCDB test case.
158
159         * sim/ucsim/cmd.src/cmdset.cc:
160         Took out debug printfs in ucsim "next" command.
161
162         * sim/ucsim/xa.src:
163         Karl and Johan start ucsim XA support.  Most dissassembly working,
164         about 75% emulation done(plenty of work remaining).
165
166         * sim/ucsim/z80.src:
167         Add Z80 support to ucsim, add test-ucz80 regression test,
168         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
169         Notice z80 compiler fails on examples/test3.c/crc code.
170
171 2002-01-30  Sandeep Dutta  <sandeep@ddi.com>
172
173         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
174         Added support for --parms-in-bank1
175
176         * src/ds390/peeph.def:
177         added a few more peephole optimzations
178
179         * src/ds390/main.c:
180         1) added __builtin_inp & __builtin_outp used to read in data of given length
181            from a memory mapped port
182         2) added __builtin_memcmp
183         3) added __builtin_swapw swap bytes of a short
184
185         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
186         1) handle multiple send & receives from register bank1
187         2) ralloc can now allocate DPTR1 to some liveRanges
188
189         * src/SDCCsymt.c, src/SDCCsymt.h:
190         changes to handle multiple sends & receives
191
192         * src/SDCCptropt.h:
193         added some pointer arithmetic optimization
194
195         * src/SDCCptropt.c:
196         added some pointer arithmetic optimizations but not stable yet so not
197         called from anywhere (will get this working shortly)
198
199         * src/SDCCopt.c: fixed for multiple sends & receives
200
201         * src/SDCCmain.c:
202         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
203         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
204            set preprocessor defines (depending on options)
205
206         * src/SDCCicode.c, src/SDCCicode.h:
207         changes made to handle multiple sends & receives
208
209         * src/SDCCglobl.h:
210         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
211
212         * src/SDCCcse.c, src/SDCCcse.h:
213         added function findbackward def (to be used in upcoming optimization)
214
215         * src/SDCCcflow.c, src/SDCCcflow.h:
216         added function returnAtEnd - to determine if a basic block terminates with
217         a RETURN iCode
218
219         * src/SDCCast.c, src/SDCCast.h:
220         added option parms-in-bank1
221
222         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c 
223         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c 
224         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
225         adjusted for --parms-in-bank1 option
226
227         * device/include/string.h:
228         donot redefine "reentrant" keyword
229
230         * device/include/ds80c390.h: Added some more SFRs
231
232 2002-01-28  Bernhard Held  <bernhard@bernhardheld.de>
233
234         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4 
235
236 2002-01-26  Bernhard Held  <bernhard@bernhardheld.de>
237
238         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
239
240 2002-01-22  Bernhard Held  <bernhard@bernhardheld.de>
241
242         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
243
244 2002-01-18  Paul Stoffregen  <paul@pjrc.com>
245
246         * Added --xram-movc option
247
248 2002-01-13  Bernhard Held  <bernhard@bernhardheld.de>
249
250         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
251
252 2002-01-11  Johan Knol
253
254         * Added math lib of Jesus Calvino-Fraga
255
256 2002-01-08  Bernhard Held  <bernhard@bernhardheld.de>
257
258         * src/SDCCmain.c (processFile): fix processing of ../../src.c
259         * support/regression/Makefile: new target test-mcs51-stack-auto
260         * support/regression/ports/mcs51-stack-auto/spec.mk: added
261
262 2002-01-04  Bernhard Held  <bernhard@bernhardheld.de>
263
264         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
265
266 2002-01-04  Bernhard Held  <bernhard@bernhardheld.de>
267
268         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
269
270 2002-01-03  Bernhard Held  <bernhard@bernhardheld.de>
271
272         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
273
274         * src/SDCCglue.h: add definition for printIvalChar()
275
276 2002-01-02  Bernhard Held  <bernhard@bernhardheld.de>
277
278         * src/SDCCast.c: fix #498138 by Johan
279
280         * src/SDCCglue.c: fix #498138 by Johan
281
282 2002-01-02  Bernhard Held  <bernhard@bernhardheld.de>
283
284         * support/regression/Makefile: fix clean
285
286         * support/regression/ports/ds390/support.c: fix transmission of last character
287
288 2001-12-29  Sandeep Dutta  <sandeep@ddi.com>
289
290         * /sdcc/src/ds390/gen.c:
291         a) improved computing address of stack variable
292         b) took out some #if 0 code
293         c) improved parmBytes adjustment
294         d) improved genPlusIncr & genMinusIncr
295         e) genCmp could generate bad code (when left assigned to DPTR)
296         f) Fixed bug in hasInc
297
298         * /sdcc/src/ds390/ralloc.c:
299         a) packRegsForSupport could mess up live information (Fixed)
300         b) packRegsDPTRuse could be incorrect for left & right shift
301
302         * /sdcc/src/mcs51/ralloc.c:
303         packRegsForSupport could mess up the live information (Fixed)
304
305         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
306
307         * /sdcc/src/SDCCast.c:
308         can reverse a loop even if function call is present as long
309         as the loop control variable is local & is not passed as parameter
310
311 2001-12-24  Sandeep Dutta  <sandeep@ddi.com>
312
313         * /sdcc/ChangeLog: *** empty log message ***
314
315         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
316         More builtin function additions for TININative
317
318         * /sdcc/src/ds390/ralloc.c:
319         Had broken the regression testsuite
320
321         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
322
323         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
324         Added funcattr hasStackParms will be set for reentrant functions when there
325         are paramteres on the stack, this helps in minimizing frame pointer generation
326         typeFromStr can handle function pointers now
327
328         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
329         *** empty log message ***
330
331 2001-12-24  Sandeep Dutta  <sandeep@ddi.com>
332
333         * /src/ds390/gen.c, /src/ds390/main.c:
334         More builtin function additions for TININative
335
336         * /src/ds390/ralloc.c:
337         Had broken the regression testsuite
338
339         * /src/SDCCast.c: Fixed a bug in dumptree
340
341         * /src/SDCCsymt.c, /src/SDCCsymt.h:
342         Added funcattr hasStackParms will be set for reentrant functions when there
343         are paramteres on the stack, this helps in minimizing frame pointer generation
344         typeFromStr can handle function pointers now
345
346         * /doc/builtins.txt, /doc/TININative.txt:
347         *** empty log message ***
348
349
350 2001-12-24  Sandeep Dutta  <sandeep@ddi.com>
351
352         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
353         ALPHA version for -mTININative
354
355         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
356         updated to reflect changes in the port structure
357
358         * /src/port.h:
359         added function do_assemble (similar to do_link) if non-null this function
360         will be called to do assembly (-mTININative) requires a multi command
361         assembly
362         added function genAssemblerEnd will be called to generate assembler Epilogue
363
364         * /src/SDCCsymt.c:
365         added _JavaNative to debug info printing
366
367         * /src/SDCCmain.c: added option --tini-libid
368         added port->do_assemble function (-mTININative) has a multi command assemble
369
370         * /src/SDCCglue.c: Disabled "constExpr" check
371         added port->genAssemblerEnd function
372
373         * /src/SDCCglobl.h: Added option --tini-libid value
374
375         * /src/SDCCast.h:
376         tookout optimizeCompare from the header (has no external references)
377
378         * /src/SDCCast.c: made one more function "static"
379
380 2001-12-23  Michael Hope  <michaelh@juju.net.nz>
381
382         * src/z80/mappings.i: Added z80asm support.
383
384         * src/z80/main.c: Added z80asm support on --asm=z80asm
385
386         * src/z80/gen.c: Fixed asm portability issues.
387
388         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
389
390         * src/SDCCglue.c (printExterns): Added global/extern split.
391
392 2001-12-17  Bernhard Held  <bernhard@bernhardheld.de>
393
394         * support/regression/Makefile: added test for mcs51 model large
395
396         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
397
398         * support/regression/ports/gbz80/spec.mk: added -mgbz80
399
400 2001-12-05  Michael Hope  <michaelh@juju.net.nz>
401
402         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
403
404 1904-01-06  Michael Hope  <michaelh@juju.net.nz>
405
406         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
407
408         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
409
410 2001-12-02  Bernhard Held  <bernhard@bernhardheld.de>
411
412         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
413
414         * support/regression/tests/simplefloat.c: Port to mcs51.
415
416 2001-11-25  Michael Hope  <michaelh@juju.net.nz>
417         * support/regression/tests/bug-485362.c: Added.
418
419         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
420
421         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
422
423         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
424
425         * src/z80/gen.c (aopDump): Added a dump function.
426
427 2001-11-25  Bernhard Held  <bernhard@bernhardheld.de>
428         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
429
430         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
431
432         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
433
434         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
435
436         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
437
438         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
439
440         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
441
442         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
443
444         * support/regression/ports/ds390/support.c: Use tinibios.
445
446         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
447
448 2001-11-23  Michael Hope  <michaelh@juju.net.nz>support/regression/tests/bug-460010.c
449
450         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
451         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
452
453         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
454
455         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
456
457 2001-11-18  Michael Hope  <michaelh@juju.net.nz>
458
459         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
460
461         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
462         (packRegsForIYUse): Created and optimised.
463
464 2001-11-07  Michael Hope  <michaelh@juju.net.nz>
465
466         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
467 2001-11-18  Bernhard Held  <bernhard@bernhardheld.de>
468
469         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
470
471         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
472
473         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
474
475 2001-11-07  Bernhard Held  <bernhard@bernhardheld.de>
476
477         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
478
479         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
480
481 2001-11-07  Bernhard Held  <bernhard@bernhardheld.de>
482
483         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
484
485         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
486
487         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
488
489 2001-11-07  Michael Hope  <michaelh@juju.net.nz>
490
491         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
492         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
493         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
494
495         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
496
497         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
498         (genNotFloat): Added.
499         (genUminusFloat): Added.
500
501         * device/lib/z80/Makefile: Added floating pt stubs.
502
503         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
504
505         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
506
507         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
508
509 2001-11-07  Bernhard Held  <bernhard@bernhardheld.de>
510
511         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
512
513         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
514
515         * sdcc/support/regression/Makefile: Add port ds390.
516
517         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
518
519         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
520
521         * sdcc/support/regression/ports/ds390/spec.mk: Added.
522
523         * sdcc/support/regression/ports/ds390/support.c: Added.
524
525         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
526
527         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
528
529         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
530
531 2001-11-04  Michael Hope  <michaelh@juju.net.nz>
532
533         * device/include/malloc.h: Added z80 and gbz80 support.
534
535         * device/lib/gbz80/heap.s: Added.
536
537         * device/lib/z80/heap.s: Added.
538
539         * device/lib/malloc.c: Added z80 and gbz80 support.
540
541         * support/regression/tests/malloc.c (testMalloc): Added.
542
543         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
544
545         * support/regression/tests/bug-478094.c: Added.
546
547         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
548
549 2001-11-04  Bernhard Held  <bernhard@bernhardheld.de>
550
551         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
552
553         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
554
555         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
556
557         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
558
559         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
560
561 2001-11-04  Michael Hope  <michaelh@juju.net.nz>
562
563         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
564
565 2001-11-03  Michael Hope  <michaelh@juju.net.nz>
566
567         * support/regression/tests/bug-477927.c: Added.
568
569         * src/z80/peeph.def: Added minor rules.
570
571         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
572
573         * src/z80/peeph.def: Added jump optimisation modification.
574
575 2001-11-01  Michael Hope  <michaelh@juju.net.nz>
576
577         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
578
579 2001-10-30  Michael Hope  <michaelh@juju.net.nz>
580
581         * support/regression/tests/funptrs.c: Added.
582
583 2001-10-29  Michael Hope  <michaelh@juju.net.nz>
584
585         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
586
587 2001-10-28  Michael Hope  <michaelh@juju.net.nz>
588
589         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
590
591         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
592
593         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
594         (movLeft2ResultLong): Created.
595
596         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
597         (joinPushes): Added.  Joins two char pushes into a word push.
598
599 2001-10-27  Michael Hope  <michaelh@juju.net.nz>
600
601         * support/cpp2/Makefile.in (install): Added creation of dest dir.
602
603         * support/makebin/Makefile (install): Added creation of dest dir.
604
605 2001-10-24 Karl Bongers <karl@turbobit.com>
606
607         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
608
609 2001-10-21  Michael Hope  <michaelh@juju.net.nz>
610
611         * src/z80/ralloc.c: Turned off faulty pack for one use.
612
613         * src/z80/peeph-gbz80.def: Removed redundent restart options.
614
615         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
616
617 2001-10-21  Bernhard Held  <bernhard@bernhardheld.de>
618
619         * support/regression/Makefile: Improved clean
620
621         * support/regression/ports/gbz80/spec.mk: Added clean
622
623         * support/regression/ports/host/spec.mk: Added clean
624
625         * support/regression/ports/z80/spec.mk: Added clean
626
627         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
628
629         * support/regression/ports/mcs51/timeout.c: little improvements
630
631 2001-10-17  Michael Hope  <michaelh@juju.net.nz>
632
633         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
634
635         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
636
637         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
638
639 2001-10-16  Bernhard Held  <bernhard@bernhardheld.de>
640
641         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
642
643         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
644
645 2001-10-13  Michael Hope  <michaelh@juju.net.nz>
646         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
647
648         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
649
650         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
651
652         * src/mcs51/main.c (_linkCmd): Added bin path to command.
653
654         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
655
656         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
657
658         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
659
660         * support/regression/tests/longor.c: Added.
661
662 2001-10-11  Bernhard Held  <bernhard@bernhardheld.de>
663
664         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
665
666         * as/mcs51/aslink.h: define PATH_MAX
667
668         * as/mcs51/asm.h: define PATH_MAX
669
670         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
671
672         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
673
674         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
675
676         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
677
678         * src/SDCCglobl.h: define PATH_MAX
679
680         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
681
682         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
683
684 2001-10-11  Michael Hope  <michaelh@juju.net.nz>
685
686         * src/z80/gen.c (gencjneshort): Fixed
687
688         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
689
690 2001-10-09  Michael Hope  <michaelh@juju.net.nz>
691
692         * support/regression/tests/bug-469671.c: Added.
693
694         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
695
696 2001-10-08  Michael Hope  <michaelh@juju.net.nz>
697
698         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
699
700         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
701
702 2001-10-08  Bernhar Held  <bernhard@bernhardheld.de>
703
704         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
705
706         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
707
708         * src/device/lib/_mullong.c : removed hint: nooverlay bug
709
710         * src/device/lib/_divuint.c : removed hint: nooverlay bug
711
712         * src/device/lib/_divulong.c: removed hint: nooverlay bug
713
714         * src/device/lib/_moduint.c : removed hint: nooverlay bug
715
716         * src/device/lib/_modulong.c: removed hint: nooverlay bug
717
718 2001-10-07  Michael Hope  <michaelh@juju.net.nz>
719
720         * 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.
721
722         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
723
724         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
725
726 2001-10-07    <johan@FRIJA>
727
728         * device/lib/gets.c (gets): fixed the return value.
729
730 2001-10-06  Michael Hope  <michaelh@juju.net.nz>
731         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
732
733         * 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.
734
735         * 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.
736
737         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
738
739         * src/pic/gen.c: Removed Safe_strdup.
740
741         * configure.in: Added option to enable libgc support.
742
743         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
744         (bitVectUnion): Optimised.
745         (bitVectIntersect): Optimised.
746         (bitVectBitsInCommon): Optimised.
747         (bitVectCplAnd): Optimised.
748
749         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
750
751 2001-10-03 Bernhard Held <bernhard@bernhardheld.de>
752
753         * src/SDCCmain.c: distinguish between assembler debug and plain options
754
755         * src/avr/main.c:   remove standard assembler options
756
757         * src/ds390/main.c: remove standard assembler options
758
759         * src/mcs51/main.c: remove standard assembler options
760
761         * src/port.h: removed "PENDING" comment
762
763 2001-10-03 Bernhard Held <bernhard@bernhardheld.de>
764
765         * src/device/lib/_mulint.c  : new, with assember functions
766
767         * src/device/lib/_mullong.c : new, with assember functions
768
769         * src/device/lib/_divuint.c : with assember functions
770
771         * src/device/lib/_divsint.c : with assember functions
772
773         * src/device/lib/_divulong.c: with assember functions
774
775         * src/device/lib/_divslong.c: with assember functions
776
777         * src/device/lib/_moduint.c : with assember functions
778
779         * src/device/lib/_modsint.c : with assember functions
780
781         * src/device/lib/_modulong.c: with assember functions
782
783         * src/device/lib/_modslong.c: with assember functions
784
785         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
786
787         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
788
789         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
790                                       replaced _mululong.c and _mulslong.c by _mullong.c
791
792 2001-10-03 Bernhard Held <bernhard@bernhardheld.de>
793
794         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
795
796 2001-10-01 Bernhard Held <bernhard@bernhardheld.de>
797
798         * src/SDCCglue.c: test, if win32api is available for MINGW
799
800 2001-10-01 Bernhard Held <bernhard@bernhardheld.de>
801
802         * src/SDCCsymt.c: no more _modifier in printTypeChain()
803         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
804         * support/regression/ports/gbz80/spec.mk: removed GENERIC
805         * support/regression/ports/host/spec.mk: removed GENERIC
806         * support/regression/ports/mcs51/spec.mk: removed GENERIC
807         * support/regression/ports/z80/spec.mk: removed GENERIC
808
809 2001-10-01  Michael Hope  <michaelh@juju.net.nz>
810
811         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
812
813         * support/regression/tests/bug-467035.c: Created.
814
815 2001-10-01    <johan@FRIJA>
816
817         * src/SDCC.y: fixed bug #466586 part 1
818
819 2001-10-01  Johan Knol <johan.knol@iduna.nl>
820
821         * SDCCicode.c: z80 has no generic pointers
822         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
823         
824 2001-09-30  Michael Hope  <michaelh@juju.net.nz>
825
826         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
827
828 2001-09-29  Michael Hope  <michaelh@juju.net.nz>
829
830         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
831
832         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
833
834 2001-09-25  Michael Hope  <michaelh@juju.net.nz>
835
836         * configure.in: Fixed up so that ucsim is only configured once.
837
838         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
839
840         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
841         (getPathDifference): As above.
842
843         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
844
845         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
846
847 2001-09-23  Michael Hope  <michaelh@juju.net.nz>
848         * .version: Updated to 2.3.1
849
850         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
851         Added copyright header.
852
853         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
854         (assemble): Added support for macro based assembler commands.
855         (linkEdit): Added support for macro based linker commands.
856         (preProcess): Changed the pre-processor to use macros.
857         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
858         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
859
860         * device/lib/z80/crt0.s: Added module name for debugging.
861
862 2001-09-20  Michael Hope  <michaelh@juju.net.nz>
863
864         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
865
866         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
867
868         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
869
870         * src/Makefile.in: Added SDCCmacro and SDCCutil
871
872 2001-09-19  Michael Hope  <michaelh@juju.net.nz>
873
874         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
875
876 2001-09-16    <johan@FRIJA>
877
878         * 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.
879
880 2001-09-15    <johan@FRIJA>
881
882         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
883         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
884
885 2001-09-11    <johan@FRIJA>
886
887         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
888
889 2001-09-10  Michael Hope  <michaelh@juju.net.nz>
890
891         * support/regression/tests/bug-460444.c: Added test case.
892
893         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
894         (genCast): Added justification for all of the asserts.
895
896 2001-09-10  Bernhard Held <bernhard@bernhardheld.de>
897
898         * support/regression/support.c: _xdata replaced by xdata
899
900         * support/regression/spec.mk: removed _generic
901
902 2001-09-09  Michael Hope  <michaelh@juju.net.nz>
903
904         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
905
906         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
907         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
908
909         * src/z80/peeph.def: Added a rule to optimise shift then compare.
910
911         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
912
913         * support/regression/tests/bug-460010.c: Added test case.
914
915         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
916
917 2001-09-09  Bernhard Held <bernhard@bernhardheld.de>
918
919         * support/regression/Makefile: inter-port-clean adjusted for mcs51
920
921         * support/regression/testfwk.c: removed workaround for bug #436344
922
923         * support/regression/tests/bp.c: use less memory with mcs51
924
925         * support/regression/tests/bug-441448.c: use less memory
926
927         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
928
929         * support/regression/collate-results.py: typo
930
931 2001-09-08  Michael Hope  <michaelh@juju.net.nz>
932
933         * support/regression/tests/fetchoverlap.c: Added new test case.
934
935         * support/regression/tests/bp.c: Added new test case.
936
937         * support/regression/tests/bug-448984.c: Added new test case.
938
939         * support/regression/tests/pow2shifts.c: Added new test case.
940
941         * src/z80/gen.c: Turned off the noise it normally generates for the release.
942         (genlshTwo): Fixed right shift for count > 8.
943
944         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
945
946 2001-09-08    <johan@FRIJA>
947
948         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
949
950 2001-09-07    <johan@FRIJA>
951
952         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
953
954         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
955
956 2001-09-06    <johan@FRIJA>
957
958         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
959         * bernhard noted me at this: "() equals to (void)" (1.38)
960
961 2001-09-05    <johan@FRIJA>
962
963         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
964
965 2001-09-04    <johan@FRIJA>
966
967         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
968
969
970 2001-09-04  Paul Stoffregen  <paul@pjrc.com>
971
972         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
973
974 2001-09-03  Michael Hope  <michaelh@juju.net.nz>
975
976         * link/z80/aslink.h: Fixed path for PATH_MAX
977
978 2001-09-02  Michael Hope  <michaelh@juju.net.nz>
979
980         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
981
982         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
983
984         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
985
986         * 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.
987
988 2001-09-01  Michael Hope  <michaelh@juju.net.nz>
989
990         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
991         (genCmp): Fixed up genCmp for the GB with longs.
992
993         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
994
995         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
996
997         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
998
999         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
1000
1001 2001-08-30  Paul Stoffregen  <paul@pjrc.com>
1002
1003         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
1004
1005 2001-08-30  Michael Hope  <michaelh@juju.net.nz>
1006
1007         * 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.
1008
1009         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
1010
1011 2001-08-29  Michael Hope  <michaelh@juju.net.nz>
1012
1013         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
1014
1015         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
1016
1017 2001-08-30 Bernhard Held   <bernhard@bernhardheld.de>
1018
1019   * sim/ucsim/configure:    little improvement of Cygwin-detection      
1020   * sim/ucsim/configure.in: little improvement of Cygwin-detection      
1021   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
1022   * support/regression/tests/bug-221100.c: small changes for mcs51
1023   * support/regression/tests/bug-221168.c: small changes for mcs51
1024   * support/regression/tests/bug-227710.c: small changes for mcs51
1025   * support/regression/tests/staticinit.c: small changes for mcs51
1026   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
1027   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
1028   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601