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