peter
a71e44ac49
* use defines.inc
2000-09-24 15:06:10 +00:00
Jonas Maebe
91faeee3a4
* fixed web bug #1133 (merged from fixes branch)
2000-09-18 11:28:36 +00:00
Jonas Maebe
0f02db341c
* fix for web bug1099 (merged from fixes branch)
2000-08-18 10:09:13 +00:00
peter
195bc075eb
* $ifdef go32v2 -> target_info.target=go32v2
2000-08-05 13:33:08 +00:00
Jonas Maebe
5efdcfc3a5
* readded l1 variable (between ifdef go32v2 to avoid hints/notes)
2000-08-05 10:35:51 +00:00
peter
4549ef44e1
* merges from fixes
2000-08-04 22:00:50 +00:00
Jonas Maebe
d446128ceb
- removed imul support from -dfoldarithops since "imull [reg32],[mem32]"
...
doesn't exist (merged from fixes branch)
2000-07-31 08:44:05 +00:00
Jonas Maebe
df9e505622
* fixed bug in shr/shl optimization when -Og is used (merged from fixes
...
branch)
2000-07-28 13:56:23 +00:00
Jonas Maebe
ce46621762
* daopt386: changes to getnextinstruction/getlastinstruction so they
...
ignore labels who have is_addr set
+ daopt386/csopt386: remove loads of registers which are overwritten
before their contents are used (especially usefull for removing superfluous
maybe_loadesi outputs and push/pops transformed by below optimization
+ popt386: transform pop/pop/pop/.../push/push/push to sequences of
'movl x(%esp),%reg' (only active when compiling a go32v2 compiler
currently because I don't know whether it's safe to do this under Win32/
Linux (because of problems we had when using esp as frame pointer on
those os'es)
2000-07-21 15:19:54 +00:00
michael
2949824a69
+ Patch to 1.1
2000-07-14 05:11:48 +00:00
michael
650fbb86aa
+ removed logs
2000-07-13 11:32:24 +00:00
michael
e7aca136a1
+ Initial import
2000-07-13 06:29:38 +00:00
Jonas Maebe
79e58b655c
* real fix for web bug #1032 (removed previous coment since it was false)
2000-07-10 08:00:22 +00:00
Jonas Maebe
f42e4f21b4
* fixed web bug #1032
2000-07-10 07:14:41 +00:00
Jonas Maebe
eed3807af0
* moved "<flag setting operation>; test/or reg,reg" to "<flag setting
...
operation>" optimization to pass 2 because it caused problems
with -dnewoptimizations
2000-07-06 12:30:31 +00:00
Jonas Maebe
18dd1f715b
+ support for inc/dec/imul in foldarithops
2000-06-14 06:05:06 +00:00
Jonas Maebe
23c8f29811
* fixed bug in "subl $2,%esp; .. ; pushw mem" optimization when the
...
sub comes from setting up the stack frame instead of from aligning
esp (I hope)
2000-05-23 10:58:46 +00:00
Jonas Maebe
a48a8031b8
* changed "mov reg1, reg2; mov reg2, y" optimization that caused
...
regalloc info to become invalid (it's still performed, but the
regalloc info stays valid now)
2000-04-23 14:56:36 +00:00
Jonas Maebe
f648aaf986
* small regalloc fix
2000-04-16 16:46:43 +00:00
Jonas Maebe
6c09cba112
* some more allocRegBetween fixes (-al didn't function previously
...
if the compiler was compiled with -OG2p3r)
2000-03-26 10:58:47 +00:00
Jonas Maebe
a890c59e05
* fixed bug in regUsedAfterInstruction (it didn't convert the reg
...
to 32bit before checking)
* result: make cycle now works with -OG3p3r!!!!
2000-03-26 08:46:52 +00:00
Jonas Maebe
3555239e29
* remove dealloc/alloc of reg1 between "movl %reg1,%reg2;
...
movl %reg2,%reg1" when removing the second instruction (it
confused the CSE and caused errors with -Or)
2000-03-25 18:57:02 +00:00
Jonas Maebe
0ab87d5ed8
* modifications to make the compiler functional when compiled with
...
-Or
2000-02-13 14:21:50 +00:00
Jonas Maebe
958d6dacef
* fix for imul optimization in popt386 (exclude top_ref as first
...
argument)
* in csopt386: change "mov reg1,reg2; <several operations on reg2>;
mov reg2,reg1" to "<several operations on reg1>" (-dnewopt...)
2000-02-12 19:28:56 +00:00
Jonas Maebe
0cbad4fe45
+ change "mov reg1,reg2;imul x,reg2" to "imul x,reg1,reg2" in popt386
...
(-dnewoptimizations)
* shl(d) and shr(d) are considered to have a hardcoded register if
they use cl as shift count (since you can't replace them with
another register) in csopt386 (also for -dnewoptimizations)
2000-02-12 14:10:14 +00:00
peter
4a4a24b6e8
* log truncated
2000-02-09 13:22:42 +00:00
Jonas Maebe
245975562b
* fpuloadstore optimizations are now done before and after the CSE
2000-02-04 13:53:04 +00:00
florian
b2098c4de5
* some improvemenst to cmov support
...
* disabled excpetion frame generation in cosntructors temporarily
2000-01-24 12:17:22 +00:00
florian
332c7a568f
* CMOV support in optimizer (in define USECMOV)
...
+ start of support of exceptions in constructors
2000-01-23 21:29:14 +00:00
Jonas Maebe
d6bcb83f95
+ change "lea x(reg),reg" to "add x,reg" (-dnewoptimizations)
...
* detection whether edi is used after instructions (since regalloc
info for it is now available)
* better regUsedAfterInstruction function
2000-01-22 16:05:15 +00:00
pierre
86058ed342
* bug fix for bug #802
2000-01-21 11:26:19 +00:00
Jonas Maebe
f8e779a438
* fixed a serious memory leak
2000-01-11 17:14:49 +00:00
Jonas Maebe
23d69a5126
* changed edi allocation to use getexplicitregister32/ungetregister
...
(adapted tgeni386 a bit for this) and enabled it by default
* fixed very big and stupid bug of mine in cg386mat that broke the
include() code (and make cycle :( ) if you compiled without
-dnewoptimizations
2000-01-09 12:34:59 +00:00
peter
e525797c51
* updated copyright to 2000
2000-01-07 01:14:18 +00:00
peter
972ba5215a
* fixed and;jmp being translated into test;jmp
1999-12-30 17:56:44 +00:00
Jonas Maebe
8272526892
* CSE of constant loading in regs works properly again
...
+ if a constant is stored into memory using "mov const, ref" and
there is a reg that contains this const, it is changed into
"mov reg, ref"
1999-12-05 16:48:43 +00:00
peter
ad2b1fb278
* newoptimizations define added
1999-12-02 11:26:41 +00:00
peter
0512ba80fb
+ ttype, tsymlist
1999-11-30 10:40:42 +00:00
Jonas Maebe
e250138c67
+ change "mov var,reg; add/shr/... x,reg; mov reg,var" to
...
"add/shr/... x,var" (if x is a const or reg, suggestion from Peter)
Enable with -dfoldArithOps
1999-11-27 23:47:55 +00:00
Jonas Maebe
7d1b3066d9
* fixed some missed optimizations because 8bit regs were not always
...
taken into account
1999-11-21 13:09:41 +00:00
Jonas Maebe
9ffa216681
* don't remove align objects between JMP's and labels
1999-11-13 19:03:56 +00:00
Jonas Maebe
621cecced4
* getfinaldestination works completely again (a lot of functionality
...
got lost in the conversion resulting from the removal of
ait_labeled_instruction)
1999-11-06 16:24:00 +00:00
peter
0887060ff2
* truncated log to 20 revs
1999-11-06 14:34:16 +00:00
peter
6b1ab5eb31
* procinfo is now a pointer
...
* support for result setting in sub procedure
1999-09-27 23:44:46 +00:00
florian
ac20c15ef4
+ fld reg;fxxx to fxxxr reg optimization
1999-09-05 14:27:19 +00:00
Jonas Maebe
5fc1435036
* changed pai386, paippc and paiapha (same for tai*) to paicpu (taicpu)
1999-08-25 11:59:32 +00:00
Jonas Maebe
618547adf0
* fixed pop/push optmization
1999-08-23 10:20:46 +00:00
pierre
e5df050607
* avoid unused locals
1999-08-10 12:30:00 +00:00
Jonas Maebe
aff06b2d4e
* "add/sub const,%esp;sub $2,%esp" wasn't always optimized
1999-08-05 15:02:48 +00:00
florian
ca53eee67e
* renamed i386asm and i386base to cpuasm and cpubase
1999-08-04 00:22:34 +00:00