Commit Graph

856 Commits

Author SHA1 Message Date
Julian Seward
2c1e2edde0 Make iropt.c compile cleanly with icc in paranoid mode. Along the way,
find and fix what looked like a bug in the folding rule for Iop_32to1.


git-svn-id: svn://svn.valgrind.org/vex/trunk@856
2005-02-07 01:11:31 +00:00
Julian Seward
6d551741ea More 32-bit build cleanups.
git-svn-id: svn://svn.valgrind.org/vex/trunk@855
2005-02-07 00:20:43 +00:00
Julian Seward
2e798a8c20 Get a clean(er) build on amd64. Also a couple of amd64 fe/be fixes.
git-svn-id: svn://svn.valgrind.org/vex/trunk@854
2005-02-07 00:17:12 +00:00
Julian Seward
04149a3b0b Define ULong_to_Ptr / Ptr_to_ULong to help clean up 64/32 bit issues.
git-svn-id: svn://svn.valgrind.org/vex/trunk@853
2005-02-07 00:00:50 +00:00
Julian Seward
c61edd07ae A few more bits and pieces of amd64 instruction support.
git-svn-id: svn://svn.valgrind.org/vex/trunk@852
2005-02-05 18:24:47 +00:00
Julian Seward
c8d75a58e7 Fill in many amd64 assembler cases.
git-svn-id: svn://svn.valgrind.org/vex/trunk@851
2005-02-05 14:34:18 +00:00
Julian Seward
474760698a Even more startup paranoia.
git-svn-id: svn://svn.valgrind.org/vex/trunk@850
2005-02-05 14:32:18 +00:00
Julian Seward
219771799c Add missing commas.
git-svn-id: svn://svn.valgrind.org/vex/trunk@849
2005-02-05 14:13:00 +00:00
Cerion Armour-Brown
5d533616a0 Small correction to getReg_CR()
git-svn-id: svn://svn.valgrind.org/vex/trunk@848
2005-02-05 14:01:57 +00:00
Cerion Armour-Brown
23da0b97f2 Cleaned up thunk functions.
Abstracted non-GPR register access - safer & cleaner.



git-svn-id: svn://svn.valgrind.org/vex/trunk@847
2005-02-05 13:45:57 +00:00
Julian Seward
52df8ca399 Fill in some more amd64 assembler cases.
git-svn-id: svn://svn.valgrind.org/vex/trunk@846
2005-02-05 12:00:14 +00:00
Julian Seward
8c2cdf9d3a Allow easy switching of guest-host arch pairs using ifdefs.
git-svn-id: svn://svn.valgrind.org/vex/trunk@845
2005-02-04 21:18:55 +00:00
Julian Seward
2094d61f0a A couple of debugging hacks to allow work to proceed on a front end
without a corresponding working back end.


git-svn-id: svn://svn.valgrind.org/vex/trunk@844
2005-02-04 21:18:16 +00:00
Julian Seward
354ef43965 Make a start on the amd64 assembler. Bleh.
git-svn-id: svn://svn.valgrind.org/vex/trunk@843
2005-02-04 21:16:48 +00:00
Julian Seward
379421ad05 'movabsq' instruction definitions.
git-svn-id: svn://svn.valgrind.org/vex/trunk@842
2005-02-04 21:15:39 +00:00
Julian Seward
e0154ca0a1 Fix bogus assertion. (How long has that been there?)
git-svn-id: svn://svn.valgrind.org/vex/trunk@841
2005-02-04 21:14:52 +00:00
Julian Seward
05c23f7afc A few more amd64 isel cases.
git-svn-id: svn://svn.valgrind.org/vex/trunk@840
2005-02-04 21:13:55 +00:00
Cerion Armour-Brown
c70920e120 Yay! return.orig gets totally chomped!
- Implemented sc, lwarx, stwcrx.
- Plus a couple of corrections



git-svn-id: svn://svn.valgrind.org/vex/trunk@839
2005-02-04 18:29:05 +00:00
Cerion Armour-Brown
42114e95ed Support host-ppc32...
git-svn-id: svn://svn.valgrind.org/vex/trunk@838
2005-02-04 16:28:19 +00:00
Cerion Armour-Brown
b9345ff768 Get the PPC32 back-end show on the road.
git-svn-id: svn://svn.valgrind.org/vex/trunk@837
2005-02-04 16:17:07 +00:00
Cerion Armour-Brown
01e7da0fab Represent floats in guest_ppc32
git-svn-id: svn://svn.valgrind.org/vex/trunk@836
2005-02-04 16:13:58 +00:00
Cerion Armour-Brown
057c15a99a Fixed 'branch op to read pc', plus cleaned up a little
git-svn-id: svn://svn.valgrind.org/vex/trunk@835
2005-02-04 16:03:09 +00:00
Julian Seward
fcfc2250c4 A simpler .orig file, which (1) has no Altivec insns, and (2) is
simply the result of compiling and running

   int main ( void ) { return 0; }

which turns out to be a lot simpler than running /bin/date.



git-svn-id: svn://svn.valgrind.org/vex/trunk@834
2005-02-04 11:58:47 +00:00
Julian Seward
9c1c692db2 Fix many instruction selection cases, including function calls.
git-svn-id: svn://svn.valgrind.org/vex/trunk@833
2005-02-04 01:44:33 +00:00
Julian Seward
00784909bc Record some shortcomings (comment-only change).
git-svn-id: svn://svn.valgrind.org/vex/trunk@832
2005-02-04 01:40:54 +00:00
Julian Seward
5ce63674dd Fix wrong comment.
git-svn-id: svn://svn.valgrind.org/vex/trunk@831
2005-02-04 01:40:03 +00:00
Cerion Armour-Brown
13fa26ca53 Reworked dis_branch to be somewhat simpler (optimiser can now simplify the IR well).
Extended dis_proc_ctl() a little.
Updated printfs with '\n' on the end of each (duh!).





git-svn-id: svn://svn.valgrind.org/vex/trunk@830
2005-02-03 18:20:22 +00:00
Cerion Armour-Brown
e19bab0f85 Using new IR div ops
git-svn-id: svn://svn.valgrind.org/vex/trunk@829
2005-02-03 14:00:32 +00:00
Cerion Armour-Brown
f479082422 Added new ir ops Iop_DivU32, Iop_DivS32
git-svn-id: svn://svn.valgrind.org/vex/trunk@828
2005-02-03 13:59:46 +00:00
Cerion Armour-Brown
2342dad1b6 tiny correction to guest-arm branch op
git-svn-id: svn://svn.valgrind.org/vex/trunk@827
2005-02-03 13:43:16 +00:00
Cerion Armour-Brown
8697ffc9c0 Undoing mistaken commit of r825.
git-svn-id: svn://svn.valgrind.org/vex/trunk@826
2005-02-03 13:40:49 +00:00
Cerion Armour-Brown
11891638bc tiny correction to guest-arm branch
git-svn-id: svn://svn.valgrind.org/vex/trunk@825
2005-02-03 13:27:19 +00:00
Cerion Armour-Brown
2c9794bc17 Fixed nand, and added pass-through for a couple of rather strange instructions...
git-svn-id: svn://svn.valgrind.org/vex/trunk@824
2005-02-03 11:56:40 +00:00
Cerion Armour-Brown
c4dcc02217 - Added lots of printfs on decode failures.
- Added printf_binary function (handy for theInstr)
- Added first level floating point instr decode - just to allow them to pass
through, for the mo.




git-svn-id: svn://svn.valgrind.org/vex/trunk@823
2005-02-03 11:03:31 +00:00
Julian Seward
0e441a31a9 Fix enough stuff so that the first bb goes through, up to and
including register allocation.



git-svn-id: svn://svn.valgrind.org/vex/trunk@822
2005-02-03 03:53:52 +00:00
Julian Seward
8f1c38012d Make the guest-state-size 64-bit aligned, else some assertion or other
throws a wobbly.



git-svn-id: svn://svn.valgrind.org/vex/trunk@821
2005-02-03 03:52:21 +00:00
Julian Seward
17d9c791a8 Fix out-of-date comment.
git-svn-id: svn://svn.valgrind.org/vex/trunk@820
2005-02-03 03:50:06 +00:00
Julian Seward
6a105519f5 Make the x86 back end happy to chew through IR from the ppc32 front
end, so we can now translate integer ppc32 code into x86 (!)



git-svn-id: svn://svn.valgrind.org/vex/trunk@819
2005-02-02 17:52:37 +00:00
Cerion Armour-Brown
2c94c58e3f Lots of cleanup
Couple of new ops - lswx, memsync stuff



git-svn-id: svn://svn.valgrind.org/vex/trunk@818
2005-02-02 17:13:28 +00:00
Julian Seward
e5d545bd8c Do a bunch more basic integer instruction selection cases.
git-svn-id: svn://svn.valgrind.org/vex/trunk@817
2005-02-02 03:11:24 +00:00
Julian Seward
e056508444 It seems we never generate x86 rotate insns, so get rid of these.
git-svn-id: svn://svn.valgrind.org/vex/trunk@816
2005-02-02 03:10:01 +00:00
Julian Seward
0058d99134 My first AMD64 instruction. Ga. Goo. (etc)
git-svn-id: svn://svn.valgrind.org/vex/trunk@815
2005-02-02 02:16:03 +00:00
Julian Seward
4a01a0cc9e Remove trivial CSE.
git-svn-id: svn://svn.valgrind.org/vex/trunk@814
2005-02-02 02:15:10 +00:00
Cerion Armour-Brown
16ae4f3449 a lonely eqv op...
git-svn-id: svn://svn.valgrind.org/vex/trunk@813
2005-02-01 21:35:25 +00:00
Cerion Armour-Brown
42878f8918 Cleaned up clean-helper functions
Added various vasserts around the place.



git-svn-id: svn://svn.valgrind.org/vex/trunk@812
2005-02-01 21:29:39 +00:00
Julian Seward
ff30a41cfb Deal with undecodable instructions by generating code to yield with
Ijk_NoDecode, so that clients of the library can act as they wish.



git-svn-id: svn://svn.valgrind.org/vex/trunk@811
2005-02-01 20:46:00 +00:00
Julian Seward
e7a93c45b1 Get the AMD64 back-end show on the road.
git-svn-id: svn://svn.valgrind.org/vex/trunk@810
2005-02-01 20:30:00 +00:00
Julian Seward
fecf8f93c9 Fix comment error.
git-svn-id: svn://svn.valgrind.org/vex/trunk@809
2005-02-01 20:27:57 +00:00
Cerion Armour-Brown
c9f1effbc1 Still more ops...
stores/loads, moves to/from spr's

Plus fixed 'calculate_cr0' stuff somewhat.




git-svn-id: svn://svn.valgrind.org/vex/trunk@808
2005-02-01 19:06:15 +00:00
Julian Seward
a55aa39193 Get rid of debug printing.
git-svn-id: svn://svn.valgrind.org/vex/trunk@807
2005-02-01 16:08:06 +00:00