Revision: 139
Author:
timu...@google.com
Date: Thu Nov 29 03:19:09 2012
Log: Simplify and refine the diff with the upstream VEX
http://code.google.com/p/valgrind-variant/source/detail?r=139
Modified:
/trunk/valgrind/VEX/priv/host_amd64_defs.c
/trunk/valgrind/VEX/priv/ir_defs.c
/trunk/valgrind/VEX/pub/libvex_ir.h
/trunk/valgrind/VEX/useful/cpuid.c
=======================================
--- /trunk/valgrind/VEX/priv/host_amd64_defs.c Thu Nov 22 04:55:39 2012
+++ /trunk/valgrind/VEX/priv/host_amd64_defs.c Thu Nov 29 03:19:09 2012
@@ -2782,7 +2782,6 @@
*p++ = toUChar(0x70 + (0xF & (i->Ain.XIndir.cond ^ 1)));
ptmp = p; /* fill in this bit later */
*p++ = 0; /* # of bytes to jump over; don't know how many yet. */
-
}
/* movq dstGA(a reg), amRIP -- copied from Alu64M MOV case */
=======================================
--- /trunk/valgrind/VEX/priv/ir_defs.c Thu Nov 22 04:55:39 2012
+++ /trunk/valgrind/VEX/priv/ir_defs.c Thu Nov 29 03:19:09 2012
@@ -1227,7 +1227,7 @@
case Ijk_Yield: vex_printf("Yield"); break;
// eugenis:
// see
https://code.google.com/p/valgrind-variant/source/detail?r=59
- case Ijk_YieldNoRedir: vex_printf("YieldNoRedir"); break;
+ case Ijk_YieldNoRedir: vex_printf("YieldNoRedir"); break;
case Ijk_EmWarn: vex_printf("EmWarn"); break;
case Ijk_EmFail: vex_printf("EmFail"); break;
case Ijk_NoDecode: vex_printf("NoDecode"); break;
=======================================
--- /trunk/valgrind/VEX/pub/libvex_ir.h Thu Nov 22 04:55:39 2012
+++ /trunk/valgrind/VEX/pub/libvex_ir.h Thu Nov 29 03:19:09 2012
@@ -1871,6 +1871,8 @@
Ijk_Ret, /* guest is doing a return */
Ijk_ClientReq, /* do guest client req before continuing */
Ijk_Yield, /* client is yielding to thread scheduler */
+ // eugenis:
+ // see
https://code.google.com/p/valgrind-variant/source/detail?r=59
Ijk_YieldNoRedir, /* client is yielding to thread scheduler AND
jump to
un-redirected guest addr */
Ijk_EmWarn, /* report emulation warning before continuing */
@@ -1891,7 +1893,7 @@
Ijk_Sys_int128, /* amd64/x86 'int $0x80' */
Ijk_Sys_int129, /* amd64/x86 'int $0x81' */
Ijk_Sys_int130, /* amd64/x86 'int $0x82' */
- Ijk_Sys_sysenter /* x86 'sysenter'. guest_EIP becomes
+ Ijk_Sys_sysenter /* x86 'sysenter'. guest_EIP becomes
invalid at the point this happens. */
}
IRJumpKind;
=======================================
--- /trunk/valgrind/VEX/useful/cpuid.c Thu Nov 22 04:55:39 2012
+++ /trunk/valgrind/VEX/useful/cpuid.c Thu Nov 29 03:19:09 2012
@@ -60,75 +60,3 @@
return 0;
}
-
-#include <stdio.h>
-
-typedef unsigned int UInt;
-typedef unsigned long long int ULong;
-
-void cpuid ( UInt* eax, UInt* ebx, UInt* ecx, UInt* edx,
- UInt index, UInt ecx_in )
-{
- UInt a,b,c,d;
- asm volatile ("cpuid"
- : "=a" (a), "=b" (b), "=c" (c), "=d" (d) \
- : "0" (index), "2"(ecx_in) );
- *eax = a; *ebx = b; *ecx = c; *edx = d;
- printf("%08x %08x -> %08x %08x %08x %08x\n",
- index,ecx_in, a,b,c,d );
-}
-
-int main ( void )
-{
- UInt eax, ebx, ecx, edx;
- UInt maxidx, maxextidx, i,ecx_in;
-
- printf("\n");
- cpuid(&eax,&ebx,&ecx,&edx, 0,0);
- maxidx = eax;
- for (i = 1; i <= maxidx +2; i++) {
-
- cpuid(&eax,&ebx,&ecx,&edx, i,0);
-
- if (i == 4) {
- printf("\n");
- for (ecx_in = 1; ecx_in < 10; ecx_in++) {
- cpuid(&eax,&ebx,&ecx,&edx, i,ecx_in);
- }
- printf("\n");
- }
-
- if (i == 0xb) {
- printf("\n");
- for (ecx_in = 1; ecx_in < 10; ecx_in++) {
- cpuid(&eax,&ebx,&ecx,&edx, i,ecx_in);
- }
- printf("\n");
- }
-
- if (i == 0xd) {
- printf("\n");
- for (ecx_in = 1; ecx_in < 5; ecx_in++) {
- cpuid(&eax,&ebx,&ecx,&edx, i,ecx_in);
- }
- printf("\n");
- }
-
-
- }
-
- printf("\n");
-
- cpuid(&eax,&ebx,&ecx,&edx, 0x80000000,0);
- maxextidx = eax;
- for (i = 0x80000001; i <= maxextidx +2; i++) {
- cpuid(&eax,&ebx,&ecx,&edx, i,0);
- }
-
- printf("invalid\n");
- cpuid(&eax,&ebx,&ecx,&edx, 1234,0);
- cpuid(&eax,&ebx,&ecx,&edx, 0x800004d3,0);
-
-
- return 0;
-}