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