42 Commits

Author SHA1 Message Date
Florian Krohm
70ce1338ee Change remaining use of Addr64 in the VEX API to Addr. The reduces
the size of VexGuestExtent to 20 bytes on a 32-bit platform. 
Change prototypes of x86g_dirtyhelper_loadF80le and 
x86g_dirtyhelper_storeF80le to give the address in the parameter
list type Addr. Likewise for amd64g_dirtyhelper_loadF80le and
amd64g_dirtyhelper_storeF80le.
Update switchback.c - but not tested.


git-svn-id: svn://svn.valgrind.org/vex/trunk@3056
2015-01-04 17:20:19 +00:00
Florian Krohm
09c8fcb972 Make VexTranslateArgs::guest_bytes_addr an Addr value. Fix ripple.
git-svn-id: svn://svn.valgrind.org/vex/trunk@3052
2015-01-02 11:44:12 +00:00
Florian Krohm
789b7ddb39 Constification part 3.
Constify parameters of instrumentation functions and callbacks from
VexTranslateArgs.


git-svn-id: svn://svn.valgrind.org/vex/trunk@2958
2014-09-24 12:00:49 +00:00
Florian Krohm
ef35bc1491 Remove the valgrind_support parameter from LibVEX_Init. It's unused
and looks like an anachronism. VEX is also cleaner without valgrind things
creeping in.


git-svn-id: svn://svn.valgrind.org/vex/trunk@2955
2014-09-22 21:39:12 +00:00
Julian Seward
5950b7d938 Add support for ARMv8 AArch64 (the 64 bit ARM instruction set):
integer and FP instructions.



git-svn-id: svn://svn.valgrind.org/vex/trunk@2803
2014-01-12 12:49:10 +00:00
Florian Krohm
5422872a91 Rename ppc_cache_line_szB to indicate that this is the size
of the instruction cache.


git-svn-id: svn://svn.valgrind.org/vex/trunk@2735
2013-08-03 19:36:55 +00:00
Julian Seward
c7e328f731 Add translation chaining support for amd64, x86 and ARM (VEX side).
See #296422.



git-svn-id: svn://svn.valgrind.org/vex/branches/TCHAIN@2273
2012-04-02 21:54:49 +00:00
Cerion Armour-Brown
1efe44baeb Changed naming convention from 'PPC32' to 'PPC' for all VEX code common to both PPC32 and PPC64.
And tidied up a fair bit while i was at it.



git-svn-id: svn://svn.valgrind.org/vex/trunk@1504
2005-12-23 00:55:09 +00:00
Cerion Armour-Brown
c036d8fee8 Fix switchback.c to reflect changes to call of LibVEX_Translate()
Fix test_ppc_jm1.c to reflect direct linking
 - main -> __main etc
 - vex_printf -> vexxx_printf etc




git-svn-id: svn://svn.valgrind.org/vex/trunk@1499
2005-12-16 13:49:00 +00:00
Cerion Armour-Brown
e4b0a05930 Switchbacker updates
- no longer using home-grown linker - simply compiling and linking switchback.c with test_xxx.c
 - updated to handle ppc64 (along with it's weirdo function descriptors...)
 - have to be careful not to use exported functions from libvex_arch_linux.a, hence vex_printf -> vexxx_printf in test_xxx.c




git-svn-id: svn://svn.valgrind.org/vex/trunk@1490
2005-12-13 21:30:48 +00:00
Julian Seward
0c73e55f5f Unbreak build.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1421
2005-10-20 11:56:00 +00:00
Julian Seward
736b6278f3 Fix up linking/relocation a bit, and track API changes in r1272.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1274
2005-07-18 11:39:47 +00:00
Julian Seward
3fe5c701f8 Fix build breakage.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1271
2005-07-14 07:00:06 +00:00
Julian Seward
91e0a833b3 Track recent API change (introduction of VexArchInfo).
git-svn-id: svn://svn.valgrind.org/vex/trunk@1240
2005-07-01 10:50:50 +00:00
Cerion Armour-Brown
6481bde2da guest-ppc32
~~~~~~~~~~
- store-with-update instrs: Valgrind pagefault handler expects faulting address >= current stack ptr, so we need to update the stack ptr register _before_ storing the old stack ptr
- branch_ctr_ok (bad calc for 'branch if %ctr zero' case)
- mcrf: scanning bitfields in the wrong direction
- on spotting the magic sequence, delta += 24
- updated DIPs for +ve-only args

host-ppc32
~~~~~~~~~
- fixed CMov reg usage
- fixed Pin_Call in emit_PPC32Instr(): we already know how far we're jumping
- fixed Pin_Goto in emit_PPC32Instr(): vassert right range of jump deltas

other-ppc32
~~~~~~~~~~
- exported OFFSET_ppc32_(various) for valgrind




git-svn-id: svn://svn.valgrind.org/vex/trunk@1211
2005-06-20 12:42:04 +00:00
Julian Seward
84cc004442 Use cpp symbol __x86_64__ rather than __amd64__ on the advice of
Michael Matz.



git-svn-id: svn://svn.valgrind.org/vex/trunk@1111
2005-03-29 21:35:08 +00:00
Cerion Armour-Brown
f8daaea1ec Use ULong instead of Int for stopAfter and n_bbs_done - shouldn't run out of bbs for a while now...
git-svn-id: svn://svn.valgrind.org/vex/trunk@1051
2005-03-17 13:11:06 +00:00
Julian Seward
59d98eae94 Improved method for discarding invalidated translations.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1038
2005-03-15 17:49:46 +00:00
Julian Seward
c263e72fec Brain-dead (but working) support for Vex-directed translation-cache
invalidates.



git-svn-id: svn://svn.valgrind.org/vex/trunk@1036
2005-03-15 16:52:13 +00:00
Cerion Armour-Brown
c8e95f2908 Cleaned up front end a fair bit.
Consolidated spr (non-gpr/fpr) register interface
Brought together separate guest XER flags to single word
 + fixed up switchback (latter slighly broken since r1002)
Few more comments, vasserts etc.
Updated page refs to PPC32 docs



git-svn-id: svn://svn.valgrind.org/vex/trunk@1006
2005-03-04 17:35:29 +00:00
Julian Seward
63cb75b31b Gradually move popular translations towards the start of the
table, so they can be found more quickly on subsequent lookups.


git-svn-id: svn://svn.valgrind.org/vex/trunk@986
2005-02-28 14:26:22 +00:00
Cerion Armour-Brown
fb8daa1014 Fix flags define & printout last run translation after all...
git-svn-id: svn://svn.valgrind.org/vex/trunk@967
2005-02-25 13:40:31 +00:00
Cerion Armour-Brown
4cb4bc2ade Re-arranged switchback::run_simulator a little, so can print translation of current bb (so if test breaks @ N, we can switchback @ N and N gets printed)
git-svn-id: svn://svn.valgrind.org/vex/trunk@964
2005-02-25 12:33:12 +00:00
Cerion Armour-Brown
10387d6109 Fix to run_translation: need to save LR on _caller's_ stack, and leave a hole for a callee to do the same on our stack.
git-svn-id: svn://svn.valgrind.org/vex/trunk@950
2005-02-23 11:20:53 +00:00
Cerion Armour-Brown
ee3dba903c Added new instruction RdWrLR to read/write link register.
The LR is saved in ISelEnv at the start of every bb
The LR is restored before any Goto.
This is needed because LR is a caller-saved register on PPC32, so helper functions may kill it.
(Could save/restore around each helper call, but not efficient)



git-svn-id: svn://svn.valgrind.org/vex/trunk@949
2005-02-22 20:36:49 +00:00
Julian Seward
6361b196ae Make the switchbacker work on ppc32.
git-svn-id: svn://svn.valgrind.org/vex/trunk@947
2005-02-22 15:12:00 +00:00
Cerion Armour-Brown
15076c1759 just turned off some debug printfs
git-svn-id: svn://svn.valgrind.org/vex/trunk@944
2005-02-21 16:44:03 +00:00
Cerion Armour-Brown
aaa0a411ba coupl'a small fixes for ppc32
git-svn-id: svn://svn.valgrind.org/vex/trunk@943
2005-02-21 16:30:45 +00:00
Cerion Armour-Brown
d01f09b852 finished off switchback code for ppc32
git-svn-id: svn://svn.valgrind.org/vex/trunk@940
2005-02-21 13:58:38 +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
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
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
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
6bf14161b4 minor changes
git-svn-id: svn://svn.valgrind.org/vex/trunk@895
2005-02-13 00:56:35 +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
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