Commit Graph

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