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