dos_compilers/Manx Aztec C86 v52a/BIN/CHANGES.CG

54 lines
1.7 KiB
Plaintext
Raw Normal View History

2024-07-02 17:25:54 +02:00
Changes to CGEN:
4/9/92 ---------- Released v5.2a beta 1 ---------------------
9/2/92 trailer() *jd
Added +t option to force $$var's (used for far data items) into codeseg
instead of dataseg.
9/11/92 starregs() *jd
Bad code generated for:
int a; huge struct mystr {int i,k,j;} *mp;
m() { a = mp->j; a = mp->i; }
9/14/92 gencast() *jd
When a null ptr was cast from near to far, result was not null (it was ds:0)
9/15/92 jd: outoper()
For the following:
(*(far void(*)())0x12345678L)()
cgen generated far call to 5678h, not 0x12345678.
9/16/92 jd: genstr()
For some structure copying, cgen generated bad code, because it
always prepared right side first, even if left was more complex.
Changed cgen to do hardest side first.
9/16/92 jd: templ.inp
For addition of constant to a huge pointer, compiler wasn't generating
extrn references to $hadd. For inc of huge ptr, it wasn't generating
extrn ref to $hinx.
10/4/92 ---------------- Released v5.2a beta 2 ----------------------------
10/5/92 jd: execvp()
Relinked 'cgen' to use fixed execvp() - previous execvp() didn't always
correctly search all directories specified in PATH.
10/22/92 jd: EvalRightFirst()
For some expressions, cgen was dereferencing a null pointer, causing
random areas of memory to be modified
10/22/92 jd: gencast()
The check for a null pointer in a cast of a near pointer to far
does not always have to be done. cgen was modified so that if the
near pointer is guarenteed not to be null, the check is not done,
thus saving space.
10/23/92 jd: outstatic()
cgen was putting near static uninitialized variables in the data
segment, not the bss segment, thus increasing the size of the data
seg.