libfirm
14 years agoImplement binary emitters for FldCW, FnstCW and fistp.
Christoph Mallon [Wed, 23 Sep 2009 07:03:51 +0000 (07:03 +0000)]
Implement binary emitters for FldCW, FnstCW and fistp.

[r26625]

14 years agoImplement binary emitters for FucompFnstsw and fild. Add missing cases for 96bit...
Christoph Mallon [Wed, 23 Sep 2009 06:56:24 +0000 (06:56 +0000)]
Implement binary emitters for FucompFnstsw and fild. Add missing cases for 96bit floats.

[r26624]

14 years agoImplement binary emitters for FucomFnstsw, fchs and fpushCopy.
Christoph Mallon [Wed, 23 Sep 2009 06:19:21 +0000 (06:19 +0000)]
Implement binary emitters for FucomFnstsw, fchs and fpushCopy.

[r26623]

14 years agoImplmenent binary emitters for unordered conditional jump, fadd, faddp, fld, fld1...
Christoph Mallon [Wed, 23 Sep 2009 05:56:50 +0000 (05:56 +0000)]
Implmenent binary emitters for unordered conditional jump, fadd, faddp, fld, fld1, fldz, fmul, fmulp, fpop, fst, fstp, fsubp, fsubr, ftstfnstsw, fucomppfnstsw and fxch. apfel.c works \o/.

[r26622]

14 years agofix verifier crash in case of no register assigned errors
Matthias Braun [Tue, 22 Sep 2009 22:11:11 +0000 (22:11 +0000)]
fix verifier crash in case of no register assigned errors

[r26621]

14 years agocleanup template backend a bit
Matthias Braun [Tue, 22 Sep 2009 22:04:05 +0000 (22:04 +0000)]
cleanup template backend a bit

[r26620]

14 years agoImplement binary emitter for CopyBi.
Christoph Mallon [Tue, 22 Sep 2009 19:22:21 +0000 (19:22 +0000)]
Implement binary emitter for CopyBi.

[r26618]

14 years agoImplement binary emitter for SubSP.
Christoph Mallon [Tue, 22 Sep 2009 19:10:39 +0000 (19:10 +0000)]
Implement binary emitter for SubSP.

[r26617]

14 years ago8bit immediates of Push are signed.
Christoph Mallon [Tue, 22 Sep 2009 18:45:29 +0000 (18:45 +0000)]
8bit immediates of Push are signed.

[r26616]

14 years agoSimplify and correct bemit_binop_2(): test with sourceAM generated wrong opcode.
Christoph Mallon [Tue, 22 Sep 2009 18:06:09 +0000 (18:06 +0000)]
Simplify and correct bemit_binop_2(): test with sourceAM generated wrong opcode.

[r26615]

14 years agoEmit only 2 byte immediates for BinOpMem with 16bit memory location.
Christoph Mallon [Tue, 22 Sep 2009 17:35:59 +0000 (17:35 +0000)]
Emit only 2 byte immediates for BinOpMem with 16bit memory location.

[r26614]

14 years agoHandle 8Bit and 16bit locations for DecMem, IncMem, NegMem and NotMem.
Christoph Mallon [Tue, 22 Sep 2009 17:27:41 +0000 (17:27 +0000)]
Handle 8Bit and 16bit locations for DecMem, IncMem, NegMem and NotMem.

[r26613]

14 years agoHandle 8Bit locations for RolMem, RorMem, SarMem, ShlMem and ShrMem.
Christoph Mallon [Tue, 22 Sep 2009 17:20:39 +0000 (17:20 +0000)]
Handle 8Bit locations for RolMem, RorMem, SarMem, ShlMem and ShrMem.

[r26612]

14 years agoImplement binary emitters for RolMem, RorMem, SarMem, ShlMem and ShrMem.
Christoph Mallon [Tue, 22 Sep 2009 17:14:54 +0000 (17:14 +0000)]
Implement binary emitters for RolMem, RorMem, SarMem, ShlMem and ShrMem.

[r26611]

14 years agoHandle 16bit memory locations for xxxMem.
Christoph Mallon [Tue, 22 Sep 2009 17:04:52 +0000 (17:04 +0000)]
Handle 16bit memory locations for xxxMem.

[r26610]

14 years agoImplement binary emitters for AddMem8Bit, AndMem8Bit, OrMem8Bit, SubMem8Bit and XorMe...
Christoph Mallon [Tue, 22 Sep 2009 16:55:43 +0000 (16:55 +0000)]
Implement binary emitters for AddMem8Bit, AndMem8Bit, OrMem8Bit, SubMem8Bit and XorMem8Bit.

[r26609]

14 years agoImplement binary emitters for AddMem, AndMem, OrMem, SubMem and XorMem.
Christoph Mallon [Tue, 22 Sep 2009 15:52:40 +0000 (15:52 +0000)]
Implement binary emitters for AddMem, AndMem, OrMem, SubMem and XorMem.

[r26608]

14 years agoOnly read the in-reg of a Cmp8Bit, if there is a register.
Christoph Mallon [Tue, 22 Sep 2009 15:51:53 +0000 (15:51 +0000)]
Only read the in-reg of a Cmp8Bit, if there is a register.

[r26607]

14 years agoCorrectly implement binary emitter for Cmp8Bit.
Christoph Mallon [Tue, 22 Sep 2009 14:40:34 +0000 (14:40 +0000)]
Correctly implement binary emitter for Cmp8Bit.

[r26606]

14 years agoThe eax special case for load/store can of course handle entities.
Christoph Mallon [Tue, 22 Sep 2009 12:28:57 +0000 (12:28 +0000)]
The eax special case for load/store can of course handle entities.

[r26605]

14 years agoMake bemit_store() work for 8 and 16 bit, too.
Christoph Mallon [Tue, 22 Sep 2009 12:26:37 +0000 (12:26 +0000)]
Make bemit_store() work for 8 and 16 bit, too.

[r26604]

14 years agoImplement binary emitter for Cmp8Bit.
Christoph Mallon [Tue, 22 Sep 2009 11:57:27 +0000 (11:57 +0000)]
Implement binary emitter for Cmp8Bit.

[r26603]

14 years agoImplement binary emitter for DecMem, IncMem, NegMem and NotMem.
Christoph Mallon [Tue, 22 Sep 2009 11:47:55 +0000 (11:47 +0000)]
Implement binary emitter for DecMem, IncMem, NegMem and NotMem.

[r26602]

14 years agosome unnecessary comments removed
Thomas Bersch [Tue, 22 Sep 2009 11:42:32 +0000 (11:42 +0000)]
some unnecessary comments removed

[r26601]

14 years agoImplement binary emitter for Perm.
Christoph Mallon [Tue, 22 Sep 2009 11:19:59 +0000 (11:19 +0000)]
Implement binary emitter for Perm.

[r26600]

14 years agoOrder Proj's in reverse perfect elimination order by their node-degree in the ifg
Thomas Bersch [Tue, 22 Sep 2009 11:15:56 +0000 (11:15 +0000)]
Order Proj's in reverse perfect elimination order by their node-degree in the ifg

[r26599]

14 years agoIFG Data-Structure to PBQP CopyOpt Data-Structure added
Thomas Bersch [Tue, 22 Sep 2009 11:09:50 +0000 (11:09 +0000)]
IFG Data-Structure to PBQP CopyOpt Data-Structure added

[r26597]

14 years agoFix the binary emitter for Set: The pnc must be massaged a bit, before it can be...
Christoph Mallon [Tue, 22 Sep 2009 10:43:09 +0000 (10:43 +0000)]
Fix the binary emitter for Set: The pnc must be massaged a bit, before it can be used.

[r26596]

14 years agoImplement binary emitter for Set.
Christoph Mallon [Tue, 22 Sep 2009 10:34:41 +0000 (10:34 +0000)]
Implement binary emitter for Set.

[r26595]

14 years agoImplement binary emitter for Store8Bit.
Christoph Mallon [Tue, 22 Sep 2009 08:45:45 +0000 (08:45 +0000)]
Implement binary emitter for Store8Bit.

[r26594]

14 years agoIn bemit_mod_am() we must check for the ebp special case, if there is an index, too.
Christoph Mallon [Tue, 22 Sep 2009 08:38:04 +0000 (08:38 +0000)]
In bemit_mod_am() we must check for the ebp special case, if there is an index, too.

[r26593]

14 years agoImplement binary emitter for IMul.
Christoph Mallon [Tue, 22 Sep 2009 08:09:39 +0000 (08:09 +0000)]
Implement binary emitter for IMul.

[r26592]

14 years agoImplement binary emitter for Cwtl.
Christoph Mallon [Tue, 22 Sep 2009 07:30:12 +0000 (07:30 +0000)]
Implement binary emitter for Cwtl.

[r26591]

14 years agoImplement binary emitter for Conv_I2I{,8Bit}.
Christoph Mallon [Tue, 22 Sep 2009 07:27:06 +0000 (07:27 +0000)]
Implement binary emitter for Conv_I2I{,8Bit}.

[r26590]

14 years agoUse bemit_unop() to implement bemit_call().
Christoph Mallon [Tue, 22 Sep 2009 07:02:07 +0000 (07:02 +0000)]
Use bemit_unop() to implement bemit_call().

[r26589]

14 years agoCorrect AM test in bemit_unop().
Christoph Mallon [Tue, 22 Sep 2009 06:57:47 +0000 (06:57 +0000)]
Correct AM test in bemit_unop().

[r26588]

14 years agoia32_IJmp needs the no-out-requirements hack, too.
Christoph Mallon [Tue, 22 Sep 2009 06:35:53 +0000 (06:35 +0000)]
ia32_IJmp needs the no-out-requirements hack, too.

[r26587]

14 years agoRewrite ModR/M+SIB generation in bemit_mod_am(). This corrects the problem, if there...
Christoph Mallon [Tue, 22 Sep 2009 06:07:37 +0000 (06:07 +0000)]
Rewrite ModR/M+SIB generation in bemit_mod_am(). This corrects the problem, if there is no base, erroneously EBP was emitted as base.

[r26586]

14 years agofix modam with base=ebp and index - MergeSort and QuickSort work
Matthias Braun [Mon, 21 Sep 2009 22:34:46 +0000 (22:34 +0000)]
fix modam with base=ebp and index - MergeSort and QuickSort work

[r26585]

14 years agofix emitting jne, now queens works :)
Matthias Braun [Mon, 21 Sep 2009 21:50:01 +0000 (21:50 +0000)]
fix emitting jne, now queens works :)

[r26584]

14 years agoimplement PopMem, PopEbp, fix push register, fix some unops
Matthias Braun [Mon, 21 Sep 2009 21:33:15 +0000 (21:33 +0000)]
implement PopMem, PopEbp, fix push register, fix some unops

[r26583]

14 years agofix binary emitter for cmp with addressmode and immediate
Matthias Braun [Mon, 21 Sep 2009 20:31:57 +0000 (20:31 +0000)]
fix binary emitter for cmp with addressmode and immediate

[r26581]

14 years agoAdd missing \n.
Christoph Mallon [Mon, 21 Sep 2009 19:38:13 +0000 (19:38 +0000)]
Add missing \n.

[r26579]

14 years agoImplement binary emitter for test.
Christoph Mallon [Mon, 21 Sep 2009 19:33:28 +0000 (19:33 +0000)]
Implement binary emitter for test.

[r26578]

14 years agoIn bemit_binop_with_imm() use in-reg, beacuse some instructions (cmp, test) have...
Christoph Mallon [Mon, 21 Sep 2009 19:32:28 +0000 (19:32 +0000)]
In bemit_binop_with_imm() use in-reg, beacuse some instructions (cmp, test) have no out-reg.

[r26577]

14 years agoImplement binary emitters for inc and dec.
Christoph Mallon [Mon, 21 Sep 2009 17:52:15 +0000 (17:52 +0000)]
Implement binary emitters for inc and dec.

[r26573]

14 years agoImplement binary emitters for shifts and rotates.
Christoph Mallon [Mon, 21 Sep 2009 17:42:40 +0000 (17:42 +0000)]
Implement binary emitters for shifts and rotates.

[r26572]

14 years agoadded jump emitters (only far jump at the moment)
Matthias Braun [Mon, 21 Sep 2009 16:55:44 +0000 (16:55 +0000)]
added jump emitters (only far jump at the moment)

[r26571]

14 years agoImplement bemit_call() with AM.
Christoph Mallon [Mon, 21 Sep 2009 15:11:05 +0000 (15:11 +0000)]
Implement bemit_call() with AM.

[r26570]

14 years agofix strange bug introduced in refactoring (a half-written if)
Matthias Braun [Mon, 21 Sep 2009 14:42:13 +0000 (14:42 +0000)]
fix strange bug introduced in refactoring (a half-written if)

[r26569]

14 years agofix bug introduced in refactoring: displacement only modam used wrong modrm byte
Matthias Braun [Mon, 21 Sep 2009 14:37:17 +0000 (14:37 +0000)]
fix bug introduced in refactoring: displacement only modam used wrong modrm byte

[r26568]

14 years agofix cltd
Matthias Braun [Mon, 21 Sep 2009 14:03:49 +0000 (14:03 +0000)]
fix cltd

[r26567]

14 years agofix relative entity emitter
Matthias Braun [Mon, 21 Sep 2009 13:58:21 +0000 (13:58 +0000)]
fix relative entity emitter

[r26566]

14 years agoWhen using only %esp in AM, which must use a SIB byte, set the index to esp, too...
Christoph Mallon [Mon, 21 Sep 2009 13:24:29 +0000 (13:24 +0000)]
When using only %esp in AM, which must use a SIB byte, set the index to esp, too, which means no index.

[r26565]

14 years agoCorrect three bugs in bemit_incsp(): Offset 0 must emit no code, get_signed_imm_size...
Christoph Mallon [Mon, 21 Sep 2009 13:16:31 +0000 (13:16 +0000)]
Correct three bugs in bemit_incsp(): Offset 0 must emit no code, get_signed_imm_size() returns size in byte, not bits, IncSP -128 is a 4 byte offset, because the value gets negated (i.e. addl $128, %esp is emitted).

[r26564]

14 years agodo creation and merge of affinity classes in 1 pass
Matthias Braun [Mon, 21 Sep 2009 10:52:28 +0000 (10:52 +0000)]
do creation and merge of affinity classes in 1 pass

[r26560]

14 years agoemit statev times in usec
Matthias Braun [Mon, 21 Sep 2009 10:51:56 +0000 (10:51 +0000)]
emit statev times in usec

[r26559]

14 years ago... and the range of a signed 16bit word is -32768 <= x < 32768, not x < 32767.
Christoph Mallon [Mon, 21 Sep 2009 09:00:17 +0000 (09:00 +0000)]
... and the range of a signed 16bit word is -32768 <= x < 32768, not x < 32767.

[r26558]

14 years agoThe range of a singed byte is -128 <= x < 128, not -127 <= x and x <= 128.
Christoph Mallon [Mon, 21 Sep 2009 08:58:36 +0000 (08:58 +0000)]
The range of a singed byte is -128 <= x < 128, not -127 <= x and x <= 128.

[r26557]

14 years agos#/*fallthrough*/#/* FALLTHROUGH */# so lint is happy.
Christoph Mallon [Mon, 21 Sep 2009 08:55:30 +0000 (08:55 +0000)]
s#/*fallthrough*/#/* FALLTHROUGH */# so lint is happy.

[r26556]

14 years agoConnect Projs and their predecessors by nearedges instead of edges.
Sebastian Buchwald [Mon, 21 Sep 2009 08:05:26 +0000 (08:05 +0000)]
Connect Projs and their predecessors by nearedges instead of edges.

[r26555]

14 years agoMore opcodes.
Michael Beck [Sun, 20 Sep 2009 10:01:38 +0000 (10:01 +0000)]
More opcodes.

[r26553]

14 years agoRefactored binary emitter:
Michael Beck [Sun, 20 Sep 2009 03:12:49 +0000 (03:12 +0000)]
Refactored binary emitter:
- support more encoding
- clean up logic
- first steps to generate from spec ...

[r26552]

14 years ago- removed C99 features
Michael Beck [Sat, 19 Sep 2009 09:21:59 +0000 (09:21 +0000)]
- removed C99 features

[r26551]

14 years ago- Active Perl 5.6 cannot cope with "${name}[]" in HERE document, replaced by "${name...
Michael Beck [Sat, 19 Sep 2009 09:21:28 +0000 (09:21 +0000)]
- Active Perl 5.6 cannot cope with "${name}[]" in HERE document, replaced by "${name} []"

[r26550]

14 years ago- further refactoring and finally eliminated the callback for get_out_reg_reqs
Matthias Braun [Fri, 18 Sep 2009 17:48:23 +0000 (17:48 +0000)]
- further refactoring and finally eliminated the callback for get_out_reg_reqs
- Introduced be_Start which is now used instead of iro_Start+be_RegParams
- further cleanups and fixes along the way

[r26549]

14 years agoFixed some problems due to refactoring in previous revisions.
Sebastian Buchwald [Fri, 18 Sep 2009 13:44:09 +0000 (13:44 +0000)]
Fixed some problems due to refactoring in previous revisions.

[r26548]

14 years agoFixed some wrong nodes.
Sebastian Buchwald [Fri, 18 Sep 2009 12:47:57 +0000 (12:47 +0000)]
Fixed some wrong nodes.

[r26547]

14 years agoonly for debugging
Thomas Bersch [Fri, 18 Sep 2009 12:34:56 +0000 (12:34 +0000)]
only for debugging

[r26545]

14 years ago- Reworked backends to put out register_requirements into backend_info_t
Matthias Braun [Fri, 18 Sep 2009 09:18:32 +0000 (09:18 +0000)]
- Reworked backends to put out register_requirements into backend_info_t
- Add a generic requirements+register+flag dumper to bearch; This avoids all
  backends/benode having their own slightly different dumpers
- Lots of cleanups in the backends along the way

[r26542]

14 years agoSet irg birg.
Sebastian Buchwald [Thu, 17 Sep 2009 14:41:54 +0000 (14:41 +0000)]
Set irg birg.

[r26541]

14 years ago- Bigger refactoring and cleanup in backend:
Matthias Braun [Thu, 17 Sep 2009 14:16:20 +0000 (14:16 +0000)]
- Bigger refactoring and cleanup in backend:
* benodes store the out register requirements in backend_info now
  (this is work towards killing the register_requirement callbacks)
* ir_graph has a pointer to beirg now
* Other cleanups

[r26540]

14 years agoexperimental beginning of a binary emitter I had lying around here
Matthias Braun [Thu, 17 Sep 2009 14:12:40 +0000 (14:12 +0000)]
experimental beginning of a binary emitter I had lying around here

[r26539]

14 years agoMoved some ia32 independent code to bemain.
Sebastian Buchwald [Thu, 17 Sep 2009 13:53:35 +0000 (13:53 +0000)]
Moved some ia32 independent code to bemain.

[r26538]

14 years agoStart block isn't a special case anymore (and now get the old node nr).
Sebastian Buchwald [Thu, 17 Sep 2009 12:12:17 +0000 (12:12 +0000)]
Start block isn't a special case anymore (and now get the old node nr).

[r26537]

14 years agoFixed bug that always sets profiled execfreq to zero.
Sebastian Buchwald [Thu, 17 Sep 2009 09:54:55 +0000 (09:54 +0000)]
Fixed bug that always sets profiled execfreq to zero.

[r26536]

14 years agorename benode_t.h to benode.h, remove some unused code
Matthias Braun [Thu, 17 Sep 2009 08:03:27 +0000 (08:03 +0000)]
rename benode_t.h to benode.h, remove some unused code

[r26535]

14 years agounnecessary map
Matthias Braun [Thu, 17 Sep 2009 07:29:13 +0000 (07:29 +0000)]
unnecessary map

[r26534]

14 years agoSet type state to fixed_layout to make beabi happy.
Sebastian Buchwald [Wed, 16 Sep 2009 21:17:54 +0000 (21:17 +0000)]
Set type state to fixed_layout to make beabi happy.

[r26533]

14 years agoConnect profile code to initial Memory.
Sebastian Buchwald [Wed, 16 Sep 2009 20:50:40 +0000 (20:50 +0000)]
Connect profile code to initial Memory.

[r26532]

14 years agosmall optimisation (avoid some arch_irn_consider_in_regalloc
Matthias Braun [Wed, 16 Sep 2009 11:52:53 +0000 (11:52 +0000)]
small optimisation (avoid some arch_irn_consider_in_regalloc

[r26531]

14 years ago- add graph pass for edges_verify()
Michael Beck [Sun, 13 Sep 2009 19:41:49 +0000 (19:41 +0000)]
- add graph pass for edges_verify()

[r26529]

14 years ago- C99 features removed
Michael Beck [Sat, 12 Sep 2009 21:06:33 +0000 (21:06 +0000)]
- C99 features removed
- fixed warning

[r26528]

14 years agoinline arch_get_register_req_out to make the backend slightly faster
Matthias Braun [Fri, 11 Sep 2009 14:28:30 +0000 (14:28 +0000)]
inline arch_get_register_req_out to make the backend slightly faster

[r26526]

14 years agoLC_OPT_ENT_BOOL needs an int
Matthias Braun [Fri, 11 Sep 2009 07:19:23 +0000 (07:19 +0000)]
LC_OPT_ENT_BOOL needs an int

[r26520]

14 years agotypos
Sebastian Buchwald [Thu, 10 Sep 2009 12:41:56 +0000 (12:41 +0000)]
typos

[r26519]

14 years agolibcore wants int, not bool.
Christoph Mallon [Thu, 10 Sep 2009 11:49:39 +0000 (11:49 +0000)]
libcore wants int, not bool.

[r26518]

14 years agowe need last_uses even without preferences
Matthias Braun [Thu, 10 Sep 2009 11:35:56 +0000 (11:35 +0000)]
we need last_uses even without preferences

[r26517]

14 years agosmall bugfix/cleanup of phi preference propagation
Matthias Braun [Thu, 10 Sep 2009 11:24:49 +0000 (11:24 +0000)]
small bugfix/cleanup of phi preference propagation

[r26516]

14 years agoadd commandline options to disable preference, congruence classes and phi register...
Matthias Braun [Thu, 10 Sep 2009 11:24:00 +0000 (11:24 +0000)]
add commandline options to disable preference, congruence classes and phi register propagation

[r26515]

14 years agoCorrect typos.
Christoph Mallon [Thu, 10 Sep 2009 08:17:53 +0000 (08:17 +0000)]
Correct typos.

[r26514]

14 years agoFixed codegen/wrong_execfreq.c from r26508.
Sebastian Buchwald [Wed, 9 Sep 2009 23:15:27 +0000 (23:15 +0000)]
Fixed codegen/wrong_execfreq.c from r26508.

[r26513]

14 years agodon't classify Proj nodes
Matthias Braun [Wed, 9 Sep 2009 14:28:18 +0000 (14:28 +0000)]
don't classify Proj nodes

[r26507]

14 years agomulti level optimistic split
Matthias Braun [Wed, 9 Sep 2009 12:56:32 +0000 (12:56 +0000)]
multi level optimistic split

[r26505]

14 years agoCorrect wrong DBG_OPT_ALGSIM classification.
Christoph Mallon [Wed, 9 Sep 2009 10:55:50 +0000 (10:55 +0000)]
Correct wrong DBG_OPT_ALGSIM classification.

[r26504]

14 years agoToday's localopt: a * (1 << x) -> a << x.
Christoph Mallon [Wed, 9 Sep 2009 10:52:13 +0000 (10:52 +0000)]
Today's localopt: a * (1 << x) -> a << x.

[r26503]

14 years agoreturn 0 for number of outputs for nodes without backend info
Matthias Braun [Mon, 7 Sep 2009 14:28:40 +0000 (14:28 +0000)]
return 0 for number of outputs for nodes without backend info

[r26502]

14 years agogive fewer penalties to neighbors of uses with multiple allowed registers
Matthias Braun [Mon, 7 Sep 2009 14:00:04 +0000 (14:00 +0000)]
give fewer penalties to neighbors of uses with multiple allowed registers

[r26501]

14 years agoAdded missing declaration.
Sebastian Buchwald [Mon, 7 Sep 2009 07:37:04 +0000 (07:37 +0000)]
Added missing declaration.

[r26500]

14 years agoUse module mechanism to register copy minimization algorithms.
Sebastian Buchwald [Sun, 6 Sep 2009 21:31:36 +0000 (21:31 +0000)]
Use module mechanism to register copy minimization algorithms.

[r26498]