Commit Graph

934 Commits

Author SHA1 Message Date
Julian Seward
dd14dfa2ed Add to-do note (comment-only change)
git-svn-id: svn://svn.valgrind.org/vex/trunk@934
2005-02-21 08:22:44 +00:00
Julian Seward
36e8605514 Folding rule for Shr64.
git-svn-id: svn://svn.valgrind.org/vex/trunk@933
2005-02-21 08:20:22 +00:00
Julian Seward
02d57b0810 Fix various front-end anomalies found by the amd64 test program.
git-svn-id: svn://svn.valgrind.org/vex/trunk@932
2005-02-19 22:47:41 +00:00
Julian Seward
86ededc22e Test a few more bits and pieces.
git-svn-id: svn://svn.valgrind.org/vex/trunk@931
2005-02-19 22:46:11 +00:00
Julian Seward
a6e40599a3 Deal correctly with out-of-range shifts/rotates.
git-svn-id: svn://svn.valgrind.org/vex/trunk@930
2005-02-19 18:12:45 +00:00
Julian Seward
ba2e9245e9 Fix many amd64 guest/host cases required to run test/test-amd64.c.
git-svn-id: svn://svn.valgrind.org/vex/trunk@929
2005-02-19 15:22:38 +00:00
Julian Seward
d02735cd65 This is the same as the test-x86*.[ch] but modified for AMD64.
git-svn-id: svn://svn.valgrind.org/vex/trunk@928
2005-02-19 15:20:43 +00:00
Julian Seward
6115012787 Advance ppc32 to the point where we can hope to start the program.
git-svn-id: svn://svn.valgrind.org/vex/trunk@927
2005-02-17 18:07:56 +00:00
Julian Seward
a9dc13f5de Handle some ppc32 relocation types.
git-svn-id: svn://svn.valgrind.org/vex/trunk@926
2005-02-17 17:42:30 +00:00
Cerion Armour-Brown
e2a16a4120 correction to branch instr for ppc hack
git-svn-id: svn://svn.valgrind.org/vex/trunk@925
2005-02-17 16:14:16 +00:00
Cerion Armour-Brown
bd98149439 surely it couldn't be still more ppc hacks...
git-svn-id: svn://svn.valgrind.org/vex/trunk@924
2005-02-17 15:54:44 +00:00
Julian Seward
96547bed9d Even more ppc32 hacks
git-svn-id: svn://svn.valgrind.org/vex/trunk@923
2005-02-17 15:16:08 +00:00
Julian Seward
6215a76506 More ppc hacks
git-svn-id: svn://svn.valgrind.org/vex/trunk@922
2005-02-17 15:02:10 +00:00
Julian Seward
348634bc14 ppc32 hacks
git-svn-id: svn://svn.valgrind.org/vex/trunk@921
2005-02-17 14:35:24 +00:00
Cerion Armour-Brown
7a8b4dc0f4 first ppc32 assembly attempts...
git-svn-id: svn://svn.valgrind.org/vex/trunk@920
2005-02-17 14:17:12 +00:00
Julian Seward
a0b00aa5a6 Fix enough stuff to get through 'hello world' on amd64.
git-svn-id: svn://svn.valgrind.org/vex/trunk@919
2005-02-17 09:28:28 +00:00
Julian Seward
b060b0f143 Tidy up the constant folder and add some more rules.
git-svn-id: svn://svn.valgrind.org/vex/trunk@918
2005-02-17 09:26:05 +00:00
Cerion Armour-Brown
09d35a8b99 Cleaned up a little more
Set Pin_Goto to use GPR3 for the return register (holding next address for dispacher)




git-svn-id: svn://svn.valgrind.org/vex/trunk@917
2005-02-16 18:08:25 +00:00
Cerion Armour-Brown
33fd9d35ce Fixed silly bug (and->add ahem.)
Fixed up some DIPs
Took out bypasses for floating point and a bad instr.



git-svn-id: svn://svn.valgrind.org/vex/trunk@916
2005-02-16 18:05:16 +00:00
Cerion Armour-Brown
8b1bc962b4 Fixed emit_PPC32Instr::Pin_Goto
All other changes are cleanup only.





git-svn-id: svn://svn.valgrind.org/vex/trunk@915
2005-02-16 16:08:17 +00:00
Cerion Armour-Brown
1bc261b8b1 Emitted Div, fixed mul... that's the lot for return0.orig\!
git-svn-id: svn://svn.valgrind.org/vex/trunk@914
2005-02-16 14:43:14 +00:00
Cerion Armour-Brown
cbb6b540ca hdefs
-----
Sorted out Mul
 - removed from Alu32
 - replaced with proper Pin_MulL

More instr emitting
 - cmp32, unary32, mulL, cmov, set32, mfence

isel
----
Added a couple of handy funcs:
 - mk_FitRI16, mk_RItoR
Reworked div, mul, mfence






git-svn-id: svn://svn.valgrind.org/vex/trunk@913
2005-02-16 14:14:49 +00:00
Cerion Armour-Brown
a028fc9dcf More instr emitting:
- most 'forms' done
 - had a go at Pin_Call, Pin_Goto

Changed CondTest & added invertCondTest()

Fixed Div - only takes reg operands

Fixed iselIntExpr_R_wrk: alu32, div, shft - dtrt with large immediates




git-svn-id: svn://svn.valgrind.org/vex/trunk@912
2005-02-16 10:25:26 +00:00
Cerion Armour-Brown
989f120295 ... and forgetful :-)
git-svn-id: svn://svn.valgrind.org/vex/trunk@911
2005-02-16 09:09:46 +00:00
Cerion Armour-Brown
b963063473 I admit it, I'm lazy.
git-svn-id: svn://svn.valgrind.org/vex/trunk@910
2005-02-16 09:08:23 +00:00
Cerion Armour-Brown
2b2549ae53 spacing/comment cleanup only
git-svn-id: svn://svn.valgrind.org/vex/trunk@909
2005-02-16 08:54:33 +00:00
Cerion Armour-Brown
4d2471377a Sorted out the condcode stuff - hopefully correctly...
- (for Call, Goto, Mux0X)

Gave compares their own instr struct (was in alu32)
Took out Pin_Test32 - no such op for ppc32
 - replaced with Pin_Cmp32

Sorted out shifts
 - shift l|r only take reg args, but sar takes imm (groan)

Done isMove_PPC32Instr()

Some work on instr emitting.
 - Pin_Alu32, Pin_Sh32,...




git-svn-id: svn://svn.valgrind.org/vex/trunk@908
2005-02-15 15:46:59 +00:00
Julian Seward
acbe57bc1a un-break compilation on x86
git-svn-id: svn://svn.valgrind.org/vex/trunk@907
2005-02-14 00:22:30 +00:00
Julian Seward
37ec6e8a69 Print stats at exit, and minor changes
git-svn-id: svn://svn.valgrind.org/vex/trunk@906
2005-02-14 00:17:49 +00:00
Julian Seward
e7ac399147 Make this test a bit more demanding.
git-svn-id: svn://svn.valgrind.org/vex/trunk@905
2005-02-14 00:16:50 +00:00
Julian Seward
db90956e58 Fill in enough cases to run switchback/test_bzip2.c on amd64.
git-svn-id: svn://svn.valgrind.org/vex/trunk@904
2005-02-13 14:13:04 +00:00
Julian Seward
f9ef6c2060 sigh; on amd64 do not place common symbols high in the address space
as they cannot be referenced in 32-bit relocations.  This is really
a hack needed to run test_bzip2.o on the switchback simulator.


git-svn-id: svn://svn.valgrind.org/vex/trunk@903
2005-02-13 13:43:57 +00:00
Julian Seward
cc440b54b5 Allow the service function to handle free() as well as malloc().
git-svn-id: svn://svn.valgrind.org/vex/trunk@902
2005-02-13 12:47:56 +00:00
Julian Seward
a922b7a2e9 A self-contained, hacked version of bzip2 which can run on the
switchback simulator.


git-svn-id: svn://svn.valgrind.org/vex/trunk@901
2005-02-13 12:47:03 +00:00
Julian Seward
33f1cd9d63 Fix printf format string.
git-svn-id: svn://svn.valgrind.org/vex/trunk@900
2005-02-13 10:43:41 +00:00
Julian Seward
7431bdb27d Make it easy to print the symbol table.
git-svn-id: svn://svn.valgrind.org/vex/trunk@899
2005-02-13 10:43:16 +00:00
Julian Seward
7f3a53ba86 Fill in many amd64 integer cases.
git-svn-id: svn://svn.valgrind.org/vex/trunk@898
2005-02-13 02:26:41 +00:00
Julian Seward
f431a71d25 Fold Iop_Sub64.
git-svn-id: svn://svn.valgrind.org/vex/trunk@897
2005-02-13 02:24:26 +00:00
Julian Seward
dd06920d1c Don't redefine offsetof if it is already defined.
git-svn-id: svn://svn.valgrind.org/vex/trunk@896
2005-02-13 02:22:41 +00:00
Julian Seward
6bf14161b4 minor changes
git-svn-id: svn://svn.valgrind.org/vex/trunk@895
2005-02-13 00:56:35 +00:00
Julian Seward
90bf1a65f5 Deal with amd64-specific relocations.
git-svn-id: svn://svn.valgrind.org/vex/trunk@894
2005-02-13 00:54:52 +00:00
Julian Seward
b93bbc09f7 Heavily modified emfloat benchmark from bytemark, changed to be
self-contained so that switchback can run it.


git-svn-id: svn://svn.valgrind.org/vex/trunk@893
2005-02-12 19:01:03 +00:00
Julian Seward
322bf368f7 Resuscitate a linker that knows how to do relocations, so we can
actually run real programs.



git-svn-id: svn://svn.valgrind.org/vex/trunk@892
2005-02-12 18:59:31 +00:00
Julian Seward
6414da4f2a Add amd64 support.
git-svn-id: svn://svn.valgrind.org/vex/trunk@891
2005-02-12 13:32:12 +00:00
Julian Seward
367aefe801 Remove file which shouldn't have been added in the first place.
git-svn-id: svn://svn.valgrind.org/vex/trunk@890
2005-02-12 13:03:50 +00:00
Julian Seward
a808d9da5a A very simple dynamic translator built on Vex, for the purpose of
debugging Vex using the binary-search-switchback technique


git-svn-id: svn://svn.valgrind.org/vex/trunk@889
2005-02-12 13:02:24 +00:00
Cerion Armour-Brown
6fd31bc4cb cleaned up guest-ppc32 assembly printouts
git-svn-id: svn://svn.valgrind.org/vex/trunk@888
2005-02-11 14:46:42 +00:00
Cerion Armour-Brown
33c2beb954 and now emit instrs big-endianly... :-)
git-svn-id: svn://svn.valgrind.org/vex/trunk@887
2005-02-11 13:55:41 +00:00
Cerion Armour-Brown
a17cecb0ca increased N_HREG_USAGE for host-ppc32
git-svn-id: svn://svn.valgrind.org/vex/trunk@886
2005-02-11 13:46:13 +00:00
Cerion Armour-Brown
3eefe94930 Added the first instrs (load,store) to emit_PPC32Instr()
Corrected some assembly printouts




git-svn-id: svn://svn.valgrind.org/vex/trunk@885
2005-02-11 13:38:15 +00:00