Commit Graph

45 Commits

Author SHA1 Message Date
Julian Seward
1065db090a * Take into account register classes when assigning spill slots.
* When doing V-V move coalescing, handle case when src is spilt.


git-svn-id: svn://svn.valgrind.org/vex/trunk@45
2004-07-03 19:44:54 +00:00
Julian Seward
87180d0510 * Move the x86 genSpill/genRestore functions to the right place.
* Allow HInstrArray to record the number of vregs in the instrs
  in the array.


git-svn-id: svn://svn.valgrind.org/vex/trunk@44
2004-07-03 19:08:18 +00:00
Julian Seward
ab0fd50714 Test for x86 code generation of shifts, and for vreg coalescing
in reg-alloc.


git-svn-id: svn://svn.valgrind.org/vex/trunk@43
2004-07-03 14:52:19 +00:00
Julian Seward
5bf98b642c Add prototype for isMove_X86Instr.
git-svn-id: svn://svn.valgrind.org/vex/trunk@42
2004-07-03 14:51:44 +00:00
Julian Seward
25bd4ccb0a Implement vreg-vreg move coalescing.
git-svn-id: svn://svn.valgrind.org/vex/trunk@41
2004-07-03 14:50:33 +00:00
Julian Seward
399c7c3b8b Add an isMove function for X86 (integer only).
Fix regUsage claim for "ret".


git-svn-id: svn://svn.valgrind.org/vex/trunk@40
2004-07-03 14:49:41 +00:00
Julian Seward
3139baf6dd Do Shl32.
git-svn-id: svn://svn.valgrind.org/vex/trunk@39
2004-07-03 14:48:24 +00:00
Julian Seward
f11b3e0c6c Make reg allocator work, to a first approximation at least.
git-svn-id: svn://svn.valgrind.org/vex/trunk@38
2004-07-03 13:30:00 +00:00
Julian Seward
748f90ca82 Fix computation of live ranges, and add lots of debug printing. Still
doesn't work, though.



git-svn-id: svn://svn.valgrind.org/vex/trunk@37
2004-07-02 17:30:07 +00:00
Julian Seward
6bf777008d Handle case of assignment to IRTemp.
git-svn-id: svn://svn.valgrind.org/vex/trunk@36
2004-07-02 17:29:14 +00:00
Julian Seward
853453b46a Tie everything together enough so the reg-allocator can be test-run.
git-svn-id: svn://svn.valgrind.org/vex/trunk@35
2004-07-02 15:20:40 +00:00
Julian Seward
54fd67ade9 Add getRegUsage and mapRegs functions for X86 instructions. Tedious.
git-svn-id: svn://svn.valgrind.org/vex/trunk@34
2004-07-02 13:45:17 +00:00
Julian Seward
169a39ad1f Allow different gcc's to be used.
git-svn-id: svn://svn.valgrind.org/vex/trunk@33
2004-07-02 13:44:36 +00:00
Julian Seward
1a166d65f3 Complete reg-alloc output storage, and misc other stuff to make it
compile and link.


git-svn-id: svn://svn.valgrind.org/vex/trunk@32
2004-07-02 07:09:23 +00:00
Julian Seward
a5cbbe556f Get the register allocator a lot closer to compiling.
git-svn-id: svn://svn.valgrind.org/vex/trunk@31
2004-07-01 23:14:42 +00:00
Julian Seward
baae05cea5 Mostly finish the register allocator.
git-svn-id: svn://svn.valgrind.org/vex/trunk@30
2004-07-01 21:00:22 +00:00
Julian Seward
87bb2a9a35 A register allocator (unfinished).
git-svn-id: svn://svn.valgrind.org/vex/trunk@29
2004-07-01 18:30:56 +00:00
Julian Seward
29a240becb Support stuff for register allocation.
git-svn-id: svn://svn.valgrind.org/vex/trunk@28
2004-07-01 18:30:32 +00:00
Julian Seward
ce9eeea10a Try to get x86 instruction representation to something sane, and fix
up the selector accordingly.



git-svn-id: svn://svn.valgrind.org/vex/trunk@27
2004-06-30 16:37:16 +00:00
Julian Seward
a8fcb7fa02 First draft of tree-based instruction selector.
git-svn-id: svn://svn.valgrind.org/vex/trunk@26
2004-06-30 09:28:04 +00:00
Julian Seward
8b1698d21e Redo IR data structures using tagged unions.
git-svn-id: svn://svn.valgrind.org/vex/trunk@25
2004-06-27 10:42:44 +00:00
Julian Seward
39281e4a0c Move some stuff from linker.c to dispatch.c.
git-svn-id: svn://svn.valgrind.org/vex/trunk@24
2004-06-27 10:41:58 +00:00
Julian Seward
037810b0d2 Re-home.
git-svn-id: svn://svn.valgrind.org/vex/trunk@23
2004-06-27 01:06:55 +00:00
Julian Seward
d9692d86e5 Move to a new home.
git-svn-id: svn://svn.valgrind.org/vex/trunk@22
2004-06-27 01:04:30 +00:00
Julian Seward
9a5dffab77 Convert to tagged unions.
git-svn-id: svn://svn.valgrind.org/vex/trunk@21
2004-06-27 01:03:57 +00:00
Julian Seward
65e80c8a06 Add basic storage management.
git-svn-id: svn://svn.valgrind.org/vex/trunk@20
2004-06-26 20:10:35 +00:00
Julian Seward
8f74db416e Get rid of Haskell stuff
git-svn-id: svn://svn.valgrind.org/vex/trunk@19
2004-06-26 18:46:47 +00:00
Julian Seward
5b1c45424d Reinstate top-level C control.
git-svn-id: svn://svn.valgrind.org/vex/trunk@18
2004-06-26 18:44:08 +00:00
Julian Seward
f3da3fef16 Deleted.
git-svn-id: svn://svn.valgrind.org/vex/trunk@17
2004-06-26 18:43:34 +00:00
Julian Seward
f03d8c538e Deleted.
This line, and those below, will be ignored--

D    Linker.hs


git-svn-id: svn://svn.valgrind.org/vex/trunk@16
2004-06-26 14:27:22 +00:00
Julian Seward
df54a81a9e Add copyright.
git-svn-id: svn://svn.valgrind.org/vex/trunk@15
2004-06-20 12:27:19 +00:00
Julian Seward
94e2cf1497 Add new files, for defining the IR.
git-svn-id: svn://svn.valgrind.org/vex/trunk@14
2004-06-20 12:26:53 +00:00
Julian Seward
91e37de43d New file.
-wThis line, and those below, will be ignored--

A    backend
A    backend/basictypes.h


git-svn-id: svn://svn.valgrind.org/vex/trunk@13
2004-06-20 11:25:49 +00:00
Julian Seward
d7b9c63d5a Merged into linker.c
git-svn-id: svn://svn.valgrind.org/vex/trunk@12
2004-04-04 23:47:43 +00:00
Julian Seward
5c5a198399 Add JIT stuff from runner.c.
git-svn-id: svn://svn.valgrind.org/vex/trunk@11
2004-04-04 23:46:44 +00:00
Julian Seward
3b29fd50ce Rudimentary support for translation table, run-time despatcher, etc.
git-svn-id: svn://svn.valgrind.org/vex/trunk@10
2004-04-04 21:02:11 +00:00
Julian Seward
433b25688e Another test commit.
git-svn-id: svn://svn.valgrind.org/vex/trunk@9
2004-04-01 21:46:34 +00:00
Julian Seward
b65bfa791f Test commit.
git-svn-id: svn://svn.valgrind.org/vex/trunk@8
2004-04-01 21:14:52 +00:00
Julian Seward
0fd53aa5ad Make FFI stuff work well enough to get the C linker to load and
link some object modules.



git-svn-id: svn://svn.valgrind.org/vex/trunk@7
2004-03-31 23:25:47 +00:00
Julian Seward
7813c480f1 Add Makefile, in which to record hugs FFI magic incantations
git-svn-id: svn://svn.valgrind.org/vex/trunk@6
2004-03-31 22:08:37 +00:00
Julian Seward
b64b3097d2 Hooks for the stuff in linker.c
git-svn-id: svn://svn.valgrind.org/vex/trunk@5
2004-03-31 21:52:09 +00:00
Julian Seward
a6fe332d91 Make most functions static.
git-svn-id: svn://svn.valgrind.org/vex/trunk@4
2004-03-31 21:42:30 +00:00
Julian Seward
e47bd540a9 Import some very small tests.
git-svn-id: svn://svn.valgrind.org/vex/trunk@3
2004-03-31 20:31:07 +00:00
Julian Seward
90e26bd095 Initial import of ELF .o linker.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2
2004-03-31 20:26:15 +00:00
Julian Seward
52b6082f84 Initial repository layout
git-svn-id: svn://svn.valgrind.org/vex/trunk@1
2004-03-30 21:10:56 +00:00