Thomas Bersch [Thu, 1 Oct 2009 10:11:40 +0000 (10:11 +0000)]
Restricted nodes are now correctly inserted before not restricted Nodes in reverse perfect elimination order
[r26671]
Thomas Bersch [Thu, 1 Oct 2009 10:09:31 +0000 (10:09 +0000)]
property name in _pbqp_co_t structure changed
[r26670]
Christoph Mallon [Tue, 29 Sep 2009 13:15:20 +0000 (13:15 +0000)]
Correct binary emission of TLS entities.
[r26663]
Christoph Mallon [Tue, 29 Sep 2009 13:04:37 +0000 (13:04 +0000)]
Simplify relative binary emission of entities.
[r26662]
Thomas Bersch [Tue, 29 Sep 2009 12:36:41 +0000 (12:36 +0000)]
New ordering in reverse perfect elimination order
[r26661]
Thomas Bersch [Tue, 29 Sep 2009 12:33:11 +0000 (12:33 +0000)]
Bitset added to pbqp_co_t data structure.
Bitset contain's information if node has register constraints or not
[r26660]
Christoph Mallon [Tue, 29 Sep 2009 12:17:37 +0000 (12:17 +0000)]
Implement binary emitter for Minus64Bit.
[r26659]
Christoph Mallon [Tue, 29 Sep 2009 11:21:56 +0000 (11:21 +0000)]
get_mode_size_bits() returns the size in bits, not bytes.
[r26658]
Christoph Mallon [Tue, 29 Sep 2009 11:15:10 +0000 (11:15 +0000)]
Implement semi-binary emitter for SwitchJmp.
[r26657]
Christoph Mallon [Tue, 29 Sep 2009 10:05:30 +0000 (10:05 +0000)]
Correct typo in comment.
[r26656]
Christoph Mallon [Fri, 25 Sep 2009 15:05:37 +0000 (15:05 +0000)]
Correct error in bemit_ldtls(): the register index must be mapped to the machine index.
[r26652]
Matthias Braun [Thu, 24 Sep 2009 13:41:56 +0000 (13:41 +0000)]
- bring arm backend back to shape: cleanup and fix lots of stuff
disabled some broken transformers. (Queens, Quicksort and several other stuff from the
testsuite work, but still lots of stuff broken)
[r26649]
Matthias Braun [Thu, 24 Sep 2009 13:39:53 +0000 (13:39 +0000)]
jumps have a special irn flag now so beirgmod can identify them
[r26648]
Matthias Braun [Thu, 24 Sep 2009 13:38:34 +0000 (13:38 +0000)]
.word has different size on different architecutres, use .short
[r26647]
Matthias Braun [Thu, 24 Sep 2009 13:37:19 +0000 (13:37 +0000)]
spill preparation needs liveness
[r26646]
Matthias Braun [Thu, 24 Sep 2009 13:36:55 +0000 (13:36 +0000)]
fix register constraints for MemPerm nodes
[r26645]
Christoph Mallon [Wed, 23 Sep 2009 17:10:08 +0000 (17:10 +0000)]
Remove one unnecessary malloc() when emitting switches.
[r26643]
Christoph Mallon [Wed, 23 Sep 2009 14:36:41 +0000 (14:36 +0000)]
Implement binary emitter for fabs.
[r26642]
Christoph Mallon [Wed, 23 Sep 2009 14:30:28 +0000 (14:30 +0000)]
Implement binary emitter for Leave.
[r26641]
Christoph Mallon [Wed, 23 Sep 2009 14:23:05 +0000 (14:23 +0000)]
Implement binary emitters for Fucomi and Fucomip.
[r26640]
Christoph Mallon [Wed, 23 Sep 2009 14:22:24 +0000 (14:22 +0000)]
bemit_cmp() must handle 16bit compares.
[r26639]
Christoph Mallon [Wed, 23 Sep 2009 11:50:42 +0000 (11:50 +0000)]
Implement binary emitter for Test8Bit.
[r26638]
Christoph Mallon [Wed, 23 Sep 2009 11:37:44 +0000 (11:37 +0000)]
Consistently use the source AM form for register-register copies.
[r26637]
Christoph Mallon [Wed, 23 Sep 2009 11:05:27 +0000 (11:05 +0000)]
Implement binary emitter for CMov.
[r26636]
Sebastian Buchwald [Wed, 23 Sep 2009 10:19:47 +0000 (10:19 +0000)]
Fixed r26620.
[r26635]
Christoph Mallon [Wed, 23 Sep 2009 08:40:52 +0000 (08:40 +0000)]
Implement binary emitters for ShlD and ShrD.
[r26634]
Christoph Mallon [Wed, 23 Sep 2009 08:17:57 +0000 (08:17 +0000)]
Implement binary emitter for LdTls.
[r26633]
Christoph Mallon [Wed, 23 Sep 2009 07:59:51 +0000 (07:59 +0000)]
Correct typo in bemit_fist().
[r26632]
Christoph Mallon [Wed, 23 Sep 2009 07:45:36 +0000 (07:45 +0000)]
Implement binary emitter for fdivr.
[r26631]
Christoph Mallon [Wed, 23 Sep 2009 07:43:03 +0000 (07:43 +0000)]
Implement binary emitter for fsubrp.
[r26630]
Christoph Mallon [Wed, 23 Sep 2009 07:41:28 +0000 (07:41 +0000)]
Implement binary emitter for fsub.
[r26629]
Christoph Mallon [Wed, 23 Sep 2009 07:31:36 +0000 (07:31 +0000)]
Implement binary emitter for fpush.
[r26628]
Christoph Mallon [Wed, 23 Sep 2009 07:28:56 +0000 (07:28 +0000)]
Implement binary emitters for fdiv, fdivp and fdivrp.
[r26627]
Christoph Mallon [Wed, 23 Sep 2009 07:15:58 +0000 (07:15 +0000)]
Implement binary emitter for fist.
[r26626]
Christoph Mallon [Wed, 23 Sep 2009 07:03:51 +0000 (07:03 +0000)]
Implement binary emitters for FldCW, FnstCW and fistp.
[r26625]
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]
Christoph Mallon [Wed, 23 Sep 2009 06:19:21 +0000 (06:19 +0000)]
Implement binary emitters for FucomFnstsw, fchs and fpushCopy.
[r26623]
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]
Matthias Braun [Tue, 22 Sep 2009 22:11:11 +0000 (22:11 +0000)]
fix verifier crash in case of no register assigned errors
[r26621]
Matthias Braun [Tue, 22 Sep 2009 22:04:05 +0000 (22:04 +0000)]
cleanup template backend a bit
[r26620]
Christoph Mallon [Tue, 22 Sep 2009 19:22:21 +0000 (19:22 +0000)]
Implement binary emitter for CopyBi.
[r26618]
Christoph Mallon [Tue, 22 Sep 2009 19:10:39 +0000 (19:10 +0000)]
Implement binary emitter for SubSP.
[r26617]
Christoph Mallon [Tue, 22 Sep 2009 18:45:29 +0000 (18:45 +0000)]
8bit immediates of Push are signed.
[r26616]
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]
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]
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]
Christoph Mallon [Tue, 22 Sep 2009 17:20:39 +0000 (17:20 +0000)]
Handle 8Bit locations for RolMem, RorMem, SarMem, ShlMem and ShrMem.
[r26612]
Christoph Mallon [Tue, 22 Sep 2009 17:14:54 +0000 (17:14 +0000)]
Implement binary emitters for RolMem, RorMem, SarMem, ShlMem and ShrMem.
[r26611]
Christoph Mallon [Tue, 22 Sep 2009 17:04:52 +0000 (17:04 +0000)]
Handle 16bit memory locations for xxxMem.
[r26610]
Christoph Mallon [Tue, 22 Sep 2009 16:55:43 +0000 (16:55 +0000)]
Implement binary emitters for AddMem8Bit, AndMem8Bit, OrMem8Bit, SubMem8Bit and XorMem8Bit.
[r26609]
Christoph Mallon [Tue, 22 Sep 2009 15:52:40 +0000 (15:52 +0000)]
Implement binary emitters for AddMem, AndMem, OrMem, SubMem and XorMem.
[r26608]
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]
Christoph Mallon [Tue, 22 Sep 2009 14:40:34 +0000 (14:40 +0000)]
Correctly implement binary emitter for Cmp8Bit.
[r26606]
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]
Christoph Mallon [Tue, 22 Sep 2009 12:26:37 +0000 (12:26 +0000)]
Make bemit_store() work for 8 and 16 bit, too.
[r26604]
Christoph Mallon [Tue, 22 Sep 2009 11:57:27 +0000 (11:57 +0000)]
Implement binary emitter for Cmp8Bit.
[r26603]
Christoph Mallon [Tue, 22 Sep 2009 11:47:55 +0000 (11:47 +0000)]
Implement binary emitter for DecMem, IncMem, NegMem and NotMem.
[r26602]
Thomas Bersch [Tue, 22 Sep 2009 11:42:32 +0000 (11:42 +0000)]
some unnecessary comments removed
[r26601]
Christoph Mallon [Tue, 22 Sep 2009 11:19:59 +0000 (11:19 +0000)]
Implement binary emitter for Perm.
[r26600]
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]
Thomas Bersch [Tue, 22 Sep 2009 11:09:50 +0000 (11:09 +0000)]
IFG Data-Structure to PBQP CopyOpt Data-Structure added
[r26597]
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]
Christoph Mallon [Tue, 22 Sep 2009 10:34:41 +0000 (10:34 +0000)]
Implement binary emitter for Set.
[r26595]
Christoph Mallon [Tue, 22 Sep 2009 08:45:45 +0000 (08:45 +0000)]
Implement binary emitter for Store8Bit.
[r26594]
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]
Christoph Mallon [Tue, 22 Sep 2009 08:09:39 +0000 (08:09 +0000)]
Implement binary emitter for IMul.
[r26592]
Christoph Mallon [Tue, 22 Sep 2009 07:30:12 +0000 (07:30 +0000)]
Implement binary emitter for Cwtl.
[r26591]
Christoph Mallon [Tue, 22 Sep 2009 07:27:06 +0000 (07:27 +0000)]
Implement binary emitter for Conv_I2I{,8Bit}.
[r26590]
Christoph Mallon [Tue, 22 Sep 2009 07:02:07 +0000 (07:02 +0000)]
Use bemit_unop() to implement bemit_call().
[r26589]
Christoph Mallon [Tue, 22 Sep 2009 06:57:47 +0000 (06:57 +0000)]
Correct AM test in bemit_unop().
[r26588]
Christoph Mallon [Tue, 22 Sep 2009 06:35:53 +0000 (06:35 +0000)]
ia32_IJmp needs the no-out-requirements hack, too.
[r26587]
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]
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]
Matthias Braun [Mon, 21 Sep 2009 21:50:01 +0000 (21:50 +0000)]
fix emitting jne, now queens works :)
[r26584]
Matthias Braun [Mon, 21 Sep 2009 21:33:15 +0000 (21:33 +0000)]
implement PopMem, PopEbp, fix push register, fix some unops
[r26583]
Matthias Braun [Mon, 21 Sep 2009 20:31:57 +0000 (20:31 +0000)]
fix binary emitter for cmp with addressmode and immediate
[r26581]
Christoph Mallon [Mon, 21 Sep 2009 19:38:13 +0000 (19:38 +0000)]
Add missing \n.
[r26579]
Christoph Mallon [Mon, 21 Sep 2009 19:33:28 +0000 (19:33 +0000)]
Implement binary emitter for test.
[r26578]
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]
Christoph Mallon [Mon, 21 Sep 2009 17:52:15 +0000 (17:52 +0000)]
Implement binary emitters for inc and dec.
[r26573]
Christoph Mallon [Mon, 21 Sep 2009 17:42:40 +0000 (17:42 +0000)]
Implement binary emitters for shifts and rotates.
[r26572]
Matthias Braun [Mon, 21 Sep 2009 16:55:44 +0000 (16:55 +0000)]
added jump emitters (only far jump at the moment)
[r26571]
Christoph Mallon [Mon, 21 Sep 2009 15:11:05 +0000 (15:11 +0000)]
Implement bemit_call() with AM.
[r26570]
Matthias Braun [Mon, 21 Sep 2009 14:42:13 +0000 (14:42 +0000)]
fix strange bug introduced in refactoring (a half-written if)
[r26569]
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]
Matthias Braun [Mon, 21 Sep 2009 14:03:49 +0000 (14:03 +0000)]
fix cltd
[r26567]
Matthias Braun [Mon, 21 Sep 2009 13:58:21 +0000 (13:58 +0000)]
fix relative entity emitter
[r26566]
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]
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]
Matthias Braun [Mon, 21 Sep 2009 10:52:28 +0000 (10:52 +0000)]
do creation and merge of affinity classes in 1 pass
[r26560]
Matthias Braun [Mon, 21 Sep 2009 10:51:56 +0000 (10:51 +0000)]
emit statev times in usec
[r26559]
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]
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]
Christoph Mallon [Mon, 21 Sep 2009 08:55:30 +0000 (08:55 +0000)]
s#/*fallthrough*/#/* FALLTHROUGH */# so lint is happy.
[r26556]
Sebastian Buchwald [Mon, 21 Sep 2009 08:05:26 +0000 (08:05 +0000)]
Connect Projs and their predecessors by nearedges instead of edges.
[r26555]
Michael Beck [Sun, 20 Sep 2009 10:01:38 +0000 (10:01 +0000)]
More opcodes.
[r26553]
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]
Michael Beck [Sat, 19 Sep 2009 09:21:59 +0000 (09:21 +0000)]
- removed C99 features
[r26551]
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]
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]