You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
1
(4) |
2
|
3
(2) |
4
(11) |
5
(3) |
6
(15) |
|
7
(8) |
8
(8) |
9
(9) |
10
(13) |
11
(11) |
12
(2) |
13
(13) |
|
14
(12) |
15
(15) |
16
(15) |
17
(18) |
18
(10) |
19
(2) |
20
(11) |
|
21
(14) |
22
(10) |
23
(2) |
24
(11) |
25
(5) |
26
|
27
|
|
28
(1) |
29
(22) |
30
(7) |
31
(2) |
|
|
|
|
From: <sv...@va...> - 2014-12-31 12:11:27
|
Author: florian
Date: Wed Dec 31 12:11:15 2014
New Revision: 14840
Log:
The definition of type Addr has moved to VEX and
the resteer callback has changed (VEX r3050). Track those changes.
Modified:
trunk/coregrind/m_translate.c
trunk/include/pub_tool_basics.h
Modified: trunk/coregrind/m_translate.c
==============================================================================
--- trunk/coregrind/m_translate.c (original)
+++ trunk/coregrind/m_translate.c Wed Dec 31 12:11:15 2014
@@ -855,9 +855,8 @@
Chasing across them obviously defeats the redirect mechanism, with
bad effects for Memcheck, Helgrind, DRD, Massif, and possibly others.
*/
-static Bool chase_into_ok ( void* closureV, Addr64 addr64 )
+static Bool chase_into_ok ( void* closureV, Addr addr )
{
- Addr addr = (Addr)addr64;
NSegment const* seg = VG_(am_find_nsegment)(addr);
/* Work through a list of possibilities why we might not want to
@@ -872,11 +871,8 @@
goto dontchase;
# if defined(VG_PLAT_USES_PPCTOC) || defined(VGP_ppc64le_linux)
- /* This needs to be at the start of its own block. Don't chase. Re
- ULong_to_Ptr, be careful to ensure we only compare 32 bits on a
- 32-bit target.*/
- if (ULong_to_Ptr(addr64)
- == (void*)&VG_(ppctoc_magic_redirect_return_stub))
+ /* This needs to be at the start of its own block. Don't chase. */
+ if (addr == (Addr)&VG_(ppctoc_magic_redirect_return_stub))
goto dontchase;
# endif
@@ -893,9 +889,9 @@
Chasing into EX increases the number of EX translations from 21 to
102666 causing a 7x runtime increase for "none" and a 3.2x runtime
increase for memcheck. */
- if (((UChar *)ULong_to_Ptr(addr))[0] == 0x44 || /* EX */
- ((UChar *)ULong_to_Ptr(addr))[0] == 0xC6) /* EXRL */
- goto dontchase;
+ if (((UChar *)addr)[0] == 0x44 || /* EX */
+ ((UChar *)addr)[0] == 0xC6) /* EXRL */
+ goto dontchase;
# endif
/* well, ok then. go on and chase. */
Modified: trunk/include/pub_tool_basics.h
==============================================================================
--- trunk/include/pub_tool_basics.h (original)
+++ trunk/include/pub_tool_basics.h Wed Dec 31 12:11:15 2014
@@ -43,7 +43,7 @@
------------------------------------------------------------------ */
// VEX defines Char, UChar, Short, UShort, Int, UInt, Long, ULong, SizeT,
-// Addr32, Addr64, HWord, HChar, Bool, False and True.
+// Addr, Addr32, Addr64, HWord, HChar, Bool, False and True.
#include "libvex_basictypes.h"
// For varargs types
@@ -86,9 +86,6 @@
typedef unsigned long UWord; // 32 64
typedef signed long Word; // 32 64
-// Addr is for holding an address.
-typedef UWord Addr; // 32 64
-
// Our equivalent of POSIX 'ssize_t':
// - ssize_t is "used for a count of bytes or an error indication".
typedef Word SSizeT; // 32 64
|
|
From: <sv...@va...> - 2014-12-31 12:09:48
|
Author: florian
Date: Wed Dec 31 12:09:38 2014
New Revision: 3050
Log:
It has long been assumed that host and guest architectures
are the same - even though the initial design goal was likely
different allowing a cross-valgrind of sorts. But as Julian
put it:
But it's been 12+ years and I've never once heard any mention of
such a thing. So perhaps it's time to give up on that one.
Now let's take advantage of this decision and tighten up the VEX
API using Addr instead of Addr64. As a first step move the definition
of Addr into VEX proper and change the chase_into_ok callback
accordingly.
Modified:
trunk/priv/guest_amd64_defs.h
trunk/priv/guest_amd64_toIR.c
trunk/priv/guest_arm64_defs.h
trunk/priv/guest_arm64_toIR.c
trunk/priv/guest_arm_defs.h
trunk/priv/guest_arm_toIR.c
trunk/priv/guest_generic_bb_to_IR.c
trunk/priv/guest_generic_bb_to_IR.h
trunk/priv/guest_mips_defs.h
trunk/priv/guest_mips_toIR.c
trunk/priv/guest_ppc_defs.h
trunk/priv/guest_ppc_toIR.c
trunk/priv/guest_s390_defs.h
trunk/priv/guest_s390_toIR.c
trunk/priv/guest_x86_defs.h
trunk/priv/guest_x86_toIR.c
trunk/priv/main_main.c
trunk/pub/libvex.h
trunk/pub/libvex_basictypes.h
Modified: trunk/priv/guest_amd64_defs.h
==============================================================================
--- trunk/priv/guest_amd64_defs.h (original)
+++ trunk/priv/guest_amd64_defs.h Wed Dec 31 12:09:38 2014
@@ -51,7 +51,7 @@
bb_to_IR.h. */
extern
DisResult disInstr_AMD64 ( IRSB* irbb,
- Bool (*resteerOkFn) ( void*, Addr64 ),
+ Bool (*resteerOkFn) ( void*, Addr ),
Bool resteerCisOk,
void* callback_opaque,
const UChar* guest_code,
Modified: trunk/priv/guest_amd64_toIR.c
==============================================================================
--- trunk/priv/guest_amd64_toIR.c (original)
+++ trunk/priv/guest_amd64_toIR.c Wed Dec 31 12:09:38 2014
@@ -19329,7 +19329,7 @@
Long dis_ESC_NONE (
/*MB_OUT*/DisResult* dres,
/*MB_OUT*/Bool* expect_CAS,
- Bool (*resteerOkFn) ( /*opaque*/void*, Addr64 ),
+ Bool (*resteerOkFn) ( /*opaque*/void*, Addr ),
Bool resteerCisOk,
void* callback_opaque,
const VexArchInfo* archinfo,
@@ -19745,7 +19745,7 @@
&& vex_control.guest_chase_cond
&& (Addr64)d64 != (Addr64)guest_RIP_bbstart
&& jmpDelta < 0
- && resteerOkFn( callback_opaque, d64) ) {
+ && resteerOkFn( callback_opaque, (Addr64)d64) ) {
/* Speculation: assume this backward branch is taken. So we
need to emit a side-exit to the insn following this one,
on the negation of the condition, and continue at the
@@ -20834,7 +20834,7 @@
if (haveF2(pfx)) DIP("bnd ; "); /* MPX bnd prefix. */
d64 = (guest_RIP_bbstart+delta+sz) + getSDisp(sz,delta);
delta += sz;
- if (resteerOkFn(callback_opaque,d64)) {
+ if (resteerOkFn(callback_opaque, (Addr64)d64)) {
dres->whatNext = Dis_ResteerU;
dres->continueAt = d64;
} else {
@@ -20851,7 +20851,7 @@
if (haveF2(pfx)) DIP("bnd ; "); /* MPX bnd prefix. */
d64 = (guest_RIP_bbstart+delta+1) + getSDisp8(delta);
delta++;
- if (resteerOkFn(callback_opaque,d64)) {
+ if (resteerOkFn(callback_opaque, (Addr64)d64)) {
dres->whatNext = Dis_ResteerU;
dres->continueAt = d64;
} else {
@@ -21040,7 +21040,7 @@
Long dis_ESC_0F (
/*MB_OUT*/DisResult* dres,
/*MB_OUT*/Bool* expect_CAS,
- Bool (*resteerOkFn) ( /*opaque*/void*, Addr64 ),
+ Bool (*resteerOkFn) ( /*opaque*/void*, Addr ),
Bool resteerCisOk,
void* callback_opaque,
const VexArchInfo* archinfo,
@@ -21287,7 +21287,7 @@
&& vex_control.guest_chase_cond
&& (Addr64)d64 != (Addr64)guest_RIP_bbstart
&& jmpDelta < 0
- && resteerOkFn( callback_opaque, d64) ) {
+ && resteerOkFn( callback_opaque, (Addr64)d64) ) {
/* Speculation: assume this backward branch is taken. So
we need to emit a side-exit to the insn following this
one, on the negation of the condition, and continue at
@@ -22006,7 +22006,7 @@
static
Long dis_ESC_0F38 (
/*MB_OUT*/DisResult* dres,
- Bool (*resteerOkFn) ( /*opaque*/void*, Addr64 ),
+ Bool (*resteerOkFn) ( /*opaque*/void*, Addr ),
Bool resteerCisOk,
void* callback_opaque,
const VexArchInfo* archinfo,
@@ -22091,7 +22091,7 @@
static
Long dis_ESC_0F3A (
/*MB_OUT*/DisResult* dres,
- Bool (*resteerOkFn) ( /*opaque*/void*, Addr64 ),
+ Bool (*resteerOkFn) ( /*opaque*/void*, Addr ),
Bool resteerCisOk,
void* callback_opaque,
const VexArchInfo* archinfo,
@@ -23394,7 +23394,7 @@
Long dis_ESC_0F__VEX (
/*MB_OUT*/DisResult* dres,
/*OUT*/ Bool* uses_vvvv,
- Bool (*resteerOkFn) ( /*opaque*/void*, Addr64 ),
+ Bool (*resteerOkFn) ( /*opaque*/void*, Addr ),
Bool resteerCisOk,
void* callback_opaque,
const VexArchInfo* archinfo,
@@ -27396,7 +27396,7 @@
Long dis_ESC_0F38__VEX (
/*MB_OUT*/DisResult* dres,
/*OUT*/ Bool* uses_vvvv,
- Bool (*resteerOkFn) ( /*opaque*/void*, Addr64 ),
+ Bool (*resteerOkFn) ( /*opaque*/void*, Addr ),
Bool resteerCisOk,
void* callback_opaque,
const VexArchInfo* archinfo,
@@ -29557,7 +29557,7 @@
Long dis_ESC_0F3A__VEX (
/*MB_OUT*/DisResult* dres,
/*OUT*/ Bool* uses_vvvv,
- Bool (*resteerOkFn) ( /*opaque*/void*, Addr64 ),
+ Bool (*resteerOkFn) ( /*opaque*/void*, Addr ),
Bool resteerCisOk,
void* callback_opaque,
const VexArchInfo* archinfo,
@@ -31144,7 +31144,7 @@
static
DisResult disInstr_AMD64_WRK (
/*OUT*/Bool* expect_CAS,
- Bool (*resteerOkFn) ( /*opaque*/void*, Addr64 ),
+ Bool (*resteerOkFn) ( /*opaque*/void*, Addr ),
Bool resteerCisOk,
void* callback_opaque,
Long delta64,
@@ -31779,7 +31779,7 @@
is located in host memory at &guest_code[delta]. */
DisResult disInstr_AMD64 ( IRSB* irsb_IN,
- Bool (*resteerOkFn) ( void*, Addr64 ),
+ Bool (*resteerOkFn) ( void*, Addr ),
Bool resteerCisOk,
void* callback_opaque,
const UChar* guest_code_IN,
Modified: trunk/priv/guest_arm64_defs.h
==============================================================================
--- trunk/priv/guest_arm64_defs.h (original)
+++ trunk/priv/guest_arm64_defs.h Wed Dec 31 12:09:38 2014
@@ -41,7 +41,7 @@
bb_to_IR.h. */
extern
DisResult disInstr_ARM64 ( IRSB* irbb,
- Bool (*resteerOkFn) ( void*, Addr64 ),
+ Bool (*resteerOkFn) ( void*, Addr ),
Bool resteerCisOk,
void* callback_opaque,
const UChar* guest_code,
Modified: trunk/priv/guest_arm64_toIR.c
==============================================================================
--- trunk/priv/guest_arm64_toIR.c (original)
+++ trunk/priv/guest_arm64_toIR.c Wed Dec 31 12:09:38 2014
@@ -12787,7 +12787,7 @@
static
Bool disInstr_ARM64_WRK (
/*MB_OUT*/DisResult* dres,
- Bool (*resteerOkFn) ( /*opaque*/void*, Addr64 ),
+ Bool (*resteerOkFn) ( /*opaque*/void*, Addr ),
Bool resteerCisOk,
void* callback_opaque,
const UChar* guest_instr,
@@ -12966,7 +12966,7 @@
is located in host memory at &guest_code[delta]. */
DisResult disInstr_ARM64 ( IRSB* irsb_IN,
- Bool (*resteerOkFn) ( void*, Addr64 ),
+ Bool (*resteerOkFn) ( void*, Addr ),
Bool resteerCisOk,
void* callback_opaque,
const UChar* guest_code_IN,
Modified: trunk/priv/guest_arm_defs.h
==============================================================================
--- trunk/priv/guest_arm_defs.h (original)
+++ trunk/priv/guest_arm_defs.h Wed Dec 31 12:09:38 2014
@@ -43,7 +43,7 @@
bb_to_IR.h. */
extern
DisResult disInstr_ARM ( IRSB* irbb,
- Bool (*resteerOkFn) ( void*, Addr64 ),
+ Bool (*resteerOkFn) ( void*, Addr ),
Bool resteerCisOk,
void* callback_opaque,
const UChar* guest_code,
Modified: trunk/priv/guest_arm_toIR.c
==============================================================================
--- trunk/priv/guest_arm_toIR.c (original)
+++ trunk/priv/guest_arm_toIR.c Wed Dec 31 12:09:38 2014
@@ -14587,7 +14587,7 @@
static
DisResult disInstr_ARM_WRK (
- Bool (*resteerOkFn) ( /*opaque*/void*, Addr64 ),
+ Bool (*resteerOkFn) ( /*opaque*/void*, Addr ),
Bool resteerCisOk,
void* callback_opaque,
const UChar* guest_instr,
@@ -15551,7 +15551,7 @@
if (condT == IRTemp_INVALID) {
/* unconditional transfer to 'dst'. See if we can simply
continue tracing at the destination. */
- if (resteerOkFn( callback_opaque, (Addr64)dst )) {
+ if (resteerOkFn( callback_opaque, dst )) {
/* yes */
dres.whatNext = Dis_ResteerU;
dres.continueAt = (Addr64)dst;
@@ -15574,7 +15574,7 @@
&& resteerCisOk
&& vex_control.guest_chase_cond
&& dst < guest_R15_curr_instr_notENC
- && resteerOkFn( callback_opaque, (Addr64)(Addr32)dst) ) {
+ && resteerOkFn( callback_opaque, dst) ) {
/* Speculation: assume this backward branch is taken. So
we need to emit a side-exit to the insn following this
one, on the negation of the condition, and continue at
@@ -15594,8 +15594,7 @@
&& vex_control.guest_chase_cond
&& dst >= guest_R15_curr_instr_notENC
&& resteerOkFn( callback_opaque,
- (Addr64)(Addr32)
- (guest_R15_curr_instr_notENC+4)) ) {
+ guest_R15_curr_instr_notENC+4) ) {
/* Speculation: assume this forward branch is not taken.
So we need to emit a side-exit to dst (the dest) and
continue disassembling at the insn immediately
@@ -17419,7 +17418,7 @@
static
DisResult disInstr_THUMB_WRK (
- Bool (*resteerOkFn) ( /*opaque*/void*, Addr64 ),
+ Bool (*resteerOkFn) ( /*opaque*/void*, Addr ),
Bool resteerCisOk,
void* callback_opaque,
const UChar* guest_instr,
@@ -22015,7 +22014,7 @@
is located in host memory at &guest_code[delta]. */
DisResult disInstr_ARM ( IRSB* irsb_IN,
- Bool (*resteerOkFn) ( void*, Addr64 ),
+ Bool (*resteerOkFn) ( void*, Addr ),
Bool resteerCisOk,
void* callback_opaque,
const UChar* guest_code_IN,
Modified: trunk/priv/guest_generic_bb_to_IR.c
==============================================================================
--- trunk/priv/guest_generic_bb_to_IR.c (original)
+++ trunk/priv/guest_generic_bb_to_IR.c Wed Dec 31 12:09:38 2014
@@ -97,7 +97,7 @@
static ULong genericg_compute_checksum_8al_12 ( HWord first_w64 );
/* Small helpers */
-static Bool const_False ( void* callback_opaque, Addr64 a ) {
+static Bool const_False ( void* callback_opaque, Addr a ) {
return False;
}
@@ -185,7 +185,7 @@
/*IN*/ DisOneInstrFn dis_instr_fn,
/*IN*/ const UChar* guest_code,
/*IN*/ Addr64 guest_IP_bbstart,
- /*IN*/ Bool (*chase_into_ok)(void*,Addr64),
+ /*IN*/ Bool (*chase_into_ok)(void*,Addr),
/*IN*/ VexEndness host_endness,
/*IN*/ Bool sigill_diag,
/*IN*/ VexArch arch_guest,
@@ -214,7 +214,7 @@
IRConst* guest_IP_bbstart_IRConst = NULL;
Int n_cond_resteers_allowed = 2;
- Bool (*resteerOKfn)(void*,Addr64) = NULL;
+ Bool (*resteerOKfn)(void*,Addr) = NULL;
debug_print = toBool(vex_traceflags & VEX_TRACE_FE);
Modified: trunk/priv/guest_generic_bb_to_IR.h
==============================================================================
--- trunk/priv/guest_generic_bb_to_IR.h (original)
+++ trunk/priv/guest_generic_bb_to_IR.h Wed Dec 31 12:09:38 2014
@@ -124,7 +124,7 @@
/* Return True iff resteering to the given addr is allowed (for
branches/calls to destinations that are known at JIT-time) */
- /*IN*/ Bool (*resteerOkFn) ( /*opaque*/void*, Addr64 ),
+ /*IN*/ Bool (*resteerOkFn) ( /*opaque*/void*, Addr ),
/* Should we speculatively resteer across conditional branches?
(Experimental and not enabled by default). The strategy is
@@ -175,7 +175,7 @@
/*IN*/ DisOneInstrFn dis_instr_fn,
/*IN*/ const UChar* guest_code,
/*IN*/ Addr64 guest_IP_bbstart,
- /*IN*/ Bool (*chase_into_ok)(void*,Addr64),
+ /*IN*/ Bool (*chase_into_ok)(void*,Addr),
/*IN*/ VexEndness host_endness,
/*IN*/ Bool sigill_diag,
/*IN*/ VexArch arch_guest,
Modified: trunk/priv/guest_mips_defs.h
==============================================================================
--- trunk/priv/guest_mips_defs.h (original)
+++ trunk/priv/guest_mips_defs.h Wed Dec 31 12:09:38 2014
@@ -42,7 +42,7 @@
/* Convert one MIPS insn to IR. See the type DisOneInstrFn in bb_to_IR.h. */
extern DisResult disInstr_MIPS ( IRSB* irbb,
- Bool (*resteerOkFn) (void *, Addr64),
+ Bool (*resteerOkFn) (void *, Addr),
Bool resteerCisOk,
void* callback_opaque,
const UChar* guest_code,
Modified: trunk/priv/guest_mips_toIR.c
==============================================================================
--- trunk/priv/guest_mips_toIR.c (original)
+++ trunk/priv/guest_mips_toIR.c Wed Dec 31 12:09:38 2014
@@ -2064,7 +2064,7 @@
/*--- Branch Instructions for mips64 ---*/
/*********************************************************/
static Bool dis_instr_branch ( UInt theInstr, DisResult * dres,
- Bool(*resteerOkFn) (void *, Addr64),
+ Bool(*resteerOkFn) (void *, Addr),
void *callback_opaque, IRStmt ** set )
{
UInt jmpKind = 0;
@@ -12008,7 +12008,7 @@
here. */
static DisResult disInstr_MIPS_WRK ( Bool(*resteerOkFn) (/*opaque */void *,
- Addr64),
+ Addr),
Bool resteerCisOk,
void* callback_opaque,
Long delta64,
@@ -17282,7 +17282,7 @@
/* Disassemble a single instruction into IR. The instruction
is located in host memory at &guest_code[delta]. */
DisResult disInstr_MIPS( IRSB* irsb_IN,
- Bool (*resteerOkFn) ( void *, Addr64 ),
+ Bool (*resteerOkFn) ( void *, Addr ),
Bool resteerCisOk,
void* callback_opaque,
const UChar* guest_code_IN,
Modified: trunk/priv/guest_ppc_defs.h
==============================================================================
--- trunk/priv/guest_ppc_defs.h (original)
+++ trunk/priv/guest_ppc_defs.h Wed Dec 31 12:09:38 2014
@@ -52,7 +52,7 @@
bb_to_IR.h. */
extern
DisResult disInstr_PPC ( IRSB* irbb,
- Bool (*resteerOkFn) ( void*, Addr64 ),
+ Bool (*resteerOkFn) ( void*, Addr ),
Bool resteerCisOk,
void* callback_opaque,
const UChar* guest_code,
Modified: trunk/priv/guest_ppc_toIR.c
==============================================================================
--- trunk/priv/guest_ppc_toIR.c (original)
+++ trunk/priv/guest_ppc_toIR.c Wed Dec 31 12:09:38 2014
@@ -5686,7 +5686,7 @@
static Bool dis_branch ( UInt theInstr,
const VexAbiInfo* vbi,
/*OUT*/DisResult* dres,
- Bool (*resteerOkFn)(void*,Addr64),
+ Bool (*resteerOkFn)(void*,Addr),
void* callback_opaque )
{
UChar opc1 = ifieldOPC(theInstr);
@@ -18298,7 +18298,7 @@
static Bool dis_transactional_memory ( UInt theInstr, UInt nextInstr,
const VexAbiInfo* vbi,
/*OUT*/DisResult* dres,
- Bool (*resteerOkFn)(void*,Addr64),
+ Bool (*resteerOkFn)(void*,Addr),
void* callback_opaque )
{
UInt opc2 = IFIELD( theInstr, 1, 10 );
@@ -18701,7 +18701,7 @@
static
DisResult disInstr_PPC_WRK (
- Bool (*resteerOkFn) ( /*opaque*/void*, Addr64 ),
+ Bool (*resteerOkFn) ( /*opaque*/void*, Addr ),
Bool resteerCisOk,
void* callback_opaque,
Long delta64,
@@ -20182,7 +20182,7 @@
is located in host memory at &guest_code[delta]. */
DisResult disInstr_PPC ( IRSB* irsb_IN,
- Bool (*resteerOkFn) ( void*, Addr64 ),
+ Bool (*resteerOkFn) ( void*, Addr ),
Bool resteerCisOk,
void* callback_opaque,
const UChar* guest_code_IN,
Modified: trunk/priv/guest_s390_defs.h
==============================================================================
--- trunk/priv/guest_s390_defs.h (original)
+++ trunk/priv/guest_s390_defs.h Wed Dec 31 12:09:38 2014
@@ -41,7 +41,7 @@
/* Convert one s390 insn to IR. See the type DisOneInstrFn in
bb_to_IR.h. */
DisResult disInstr_S390 ( IRSB* irbb,
- Bool (*resteerOkFn) ( void*, Addr64 ),
+ Bool (*resteerOkFn) ( void*, Addr ),
Bool resteerCisOk,
void* callback_opaque,
const UChar* guest_code,
Modified: trunk/priv/guest_s390_toIR.c
==============================================================================
--- trunk/priv/guest_s390_toIR.c (original)
+++ trunk/priv/guest_s390_toIR.c Wed Dec 31 12:09:38 2014
@@ -71,7 +71,7 @@
static DisResult *dis_res;
/* Resteer function and callback data */
-static Bool (*resteer_fn)(void *, Addr64);
+static Bool (*resteer_fn)(void *, Addr);
static void *resteer_data;
/* Whether to print diagnostics for illegal instructions. */
@@ -16658,7 +16658,7 @@
DisResult
disInstr_S390(IRSB *irsb_IN,
- Bool (*resteerOkFn)(void *, Addr64),
+ Bool (*resteerOkFn)(void *, Addr),
Bool resteerCisOk,
void *callback_opaque,
const UChar *guest_code,
Modified: trunk/priv/guest_x86_defs.h
==============================================================================
--- trunk/priv/guest_x86_defs.h (original)
+++ trunk/priv/guest_x86_defs.h Wed Dec 31 12:09:38 2014
@@ -51,7 +51,7 @@
bb_to_IR.h. */
extern
DisResult disInstr_X86 ( IRSB* irbb,
- Bool (*resteerOkFn) ( void*, Addr64 ),
+ Bool (*resteerOkFn) ( void*, Addr ),
Bool resteerCisOk,
void* callback_opaque,
const UChar* guest_code,
Modified: trunk/priv/guest_x86_toIR.c
==============================================================================
--- trunk/priv/guest_x86_toIR.c (original)
+++ trunk/priv/guest_x86_toIR.c Wed Dec 31 12:09:38 2014
@@ -8061,7 +8061,7 @@
static
DisResult disInstr_X86_WRK (
/*OUT*/Bool* expect_CAS,
- Bool (*resteerOkFn) ( /*opaque*/void*, Addr64 ),
+ Bool (*resteerOkFn) ( /*opaque*/void*, Addr ),
Bool resteerCisOk,
void* callback_opaque,
Long delta64,
@@ -13078,7 +13078,7 @@
assign(t1, binop(Iop_Sub32, getIReg(4,R_ESP), mkU32(4)));
putIReg(4, R_ESP, mkexpr(t1));
storeLE( mkexpr(t1), mkU32(guest_EIP_bbstart+delta));
- if (resteerOkFn( callback_opaque, (Addr64)(Addr32)d32 )) {
+ if (resteerOkFn( callback_opaque, (Addr32)d32 )) {
/* follow into the call target. */
dres.whatNext = Dis_ResteerU;
dres.continueAt = (Addr64)(Addr32)d32;
@@ -13393,7 +13393,7 @@
case 0xEB: /* Jb (jump, byte offset) */
d32 = (((Addr32)guest_EIP_bbstart)+delta+1) + getSDisp8(delta);
delta++;
- if (resteerOkFn( callback_opaque, (Addr64)(Addr32)d32) ) {
+ if (resteerOkFn( callback_opaque, (Addr32)d32) ) {
dres.whatNext = Dis_ResteerU;
dres.continueAt = (Addr64)(Addr32)d32;
} else {
@@ -13407,7 +13407,7 @@
vassert(sz == 4); /* JRS added 2004 July 11 */
d32 = (((Addr32)guest_EIP_bbstart)+delta+sz) + getSDisp(sz,delta);
delta += sz;
- if (resteerOkFn( callback_opaque, (Addr64)(Addr32)d32) ) {
+ if (resteerOkFn( callback_opaque, (Addr32)d32) ) {
dres.whatNext = Dis_ResteerU;
dres.continueAt = (Addr64)(Addr32)d32;
} else {
@@ -13443,7 +13443,7 @@
&& vex_control.guest_chase_cond
&& (Addr32)d32 != (Addr32)guest_EIP_bbstart
&& jmpDelta < 0
- && resteerOkFn( callback_opaque, (Addr64)(Addr32)d32) ) {
+ && resteerOkFn( callback_opaque, (Addr32)d32) ) {
/* Speculation: assume this backward branch is taken. So we
need to emit a side-exit to the insn following this one,
on the negation of the condition, and continue at the
@@ -13465,7 +13465,7 @@
&& (Addr32)d32 != (Addr32)guest_EIP_bbstart
&& jmpDelta >= 0
&& resteerOkFn( callback_opaque,
- (Addr64)(Addr32)(guest_EIP_bbstart+delta)) ) {
+ (Addr32)(guest_EIP_bbstart+delta)) ) {
/* Speculation: assume this forward branch is not taken. So
we need to emit a side-exit to d32 (the dest) and continue
disassembling at the insn immediately following this
@@ -15007,7 +15007,7 @@
&& vex_control.guest_chase_cond
&& (Addr32)d32 != (Addr32)guest_EIP_bbstart
&& jmpDelta < 0
- && resteerOkFn( callback_opaque, (Addr64)(Addr32)d32) ) {
+ && resteerOkFn( callback_opaque, (Addr32)d32) ) {
/* Speculation: assume this backward branch is taken. So
we need to emit a side-exit to the insn following this
one, on the negation of the condition, and continue at
@@ -15030,7 +15030,7 @@
&& (Addr32)d32 != (Addr32)guest_EIP_bbstart
&& jmpDelta >= 0
&& resteerOkFn( callback_opaque,
- (Addr64)(Addr32)(guest_EIP_bbstart+delta)) ) {
+ (Addr32)(guest_EIP_bbstart+delta)) ) {
/* Speculation: assume this forward branch is not taken.
So we need to emit a side-exit to d32 (the dest) and
continue disassembling at the insn immediately
@@ -15408,7 +15408,7 @@
is located in host memory at &guest_code[delta]. */
DisResult disInstr_X86 ( IRSB* irsb_IN,
- Bool (*resteerOkFn) ( void*, Addr64 ),
+ Bool (*resteerOkFn) ( void*, Addr ),
Bool resteerCisOk,
void* callback_opaque,
const UChar* guest_code_IN,
Modified: trunk/priv/main_main.c
==============================================================================
--- trunk/priv/main_main.c (original)
+++ trunk/priv/main_main.c Wed Dec 31 12:09:38 2014
@@ -167,6 +167,8 @@
vassert(sizeof(void*) == 4 || sizeof(void*) == 8);
vassert(sizeof(void*) == sizeof(int*));
vassert(sizeof(void*) == sizeof(HWord));
+ vassert(sizeof(void*) == sizeof(Addr));
+ vassert(sizeof(unsigned long) == sizeof(SizeT));
vassert(VEX_HOST_WORDSIZE == sizeof(void*));
vassert(VEX_HOST_WORDSIZE == sizeof(HWord));
Modified: trunk/pub/libvex.h
==============================================================================
--- trunk/pub/libvex.h (original)
+++ trunk/pub/libvex.h Wed Dec 31 12:09:38 2014
@@ -609,7 +609,7 @@
/* Is it OK to chase into this guest address? May not be
NULL. */
- Bool (*chase_into_ok) ( /*callback_opaque*/void*, Addr64 );
+ Bool (*chase_into_ok) ( /*callback_opaque*/void*, Addr );
/* OUT: which bits of guest code actually got translated */
VexGuestExtents* guest_extents;
Modified: trunk/pub/libvex_basictypes.h
==============================================================================
--- trunk/pub/libvex_basictypes.h (original)
+++ trunk/pub/libvex_basictypes.h Wed Dec 31 12:09:38 2014
@@ -132,6 +132,10 @@
typedef UInt Addr32;
typedef ULong Addr64;
+/* An address: 32-bit or 64-bit wide depending on host architecture */
+typedef unsigned long Addr;
+
+
/* Something which has the same size as void* on the host. That is,
it is 32 bits on a 32-bit host and 64 bits on a 64-bit host, and so
it can safely be coerced to and from a pointer type on the host
|