summary refs log tree commit diff stats
path: root/results/classifier/105/instruction/796480
diff options
context:
space:
mode:
Diffstat (limited to 'results/classifier/105/instruction/796480')
-rw-r--r--results/classifier/105/instruction/79648063
1 files changed, 63 insertions, 0 deletions
diff --git a/results/classifier/105/instruction/796480 b/results/classifier/105/instruction/796480
new file mode 100644
index 000000000..1cb0d3183
--- /dev/null
+++ b/results/classifier/105/instruction/796480
@@ -0,0 +1,63 @@
+instruction: 0.837
+graphic: 0.704
+device: 0.655
+assembly: 0.454
+mistranslation: 0.398
+semantic: 0.373
+other: 0.354
+vnc: 0.337
+socket: 0.200
+boot: 0.116
+network: 0.110
+KVM: 0.093
+
+Addresses with 4GB differences are consider as one single address in QEMU
+
+THIS IS THE ISSUE OF USER MODE EMULATION
+Information about guest and host
+**********************************
+guest: 64 bit x86 user mode binary
+host: 32 bit Linux OS
+uname -a :Linux KICS-HPCNL-32blue 2.6.33.3-85.fc13.i686.PAE #1 SMP
+architecture: intel64
+Bug Description
+****************
+for memory reference instructions, suppose I have two addresses in guest address space(64 bit)
+0x220000000
+0x320000000
+as lower 32 bit part of both addresses are same, when particular instructions are translated into host code(32 bit)
+in both above cases the value is loaded from same memory and we get same value. where actual behaviour was to get two different values.
+here is the program which i used to test:
+#include <stdio.h>
+#include <stdlib.h>
+#include <limits.h>
+#define SIZE 4294967298 /* 4Gib*/
+
+int main() {
+   char *array;
+   unsigned int i;
+
+   array = malloc(sizeof(char) * SIZE);
+   if(array == NULL)    {
+      fprintf(stderr, "Could not allocate that much memory");
+      return 1;    }
+    array[0] = 'a';
+   array[SIZE-2] = 'z';
+   printf("array[SIZE-2] = %c array[0] = %c\n",array[SIZE-2], array[0]);
+  return 0;
+}
+I have 8 gib RAM
+I compiled this program on 64 bit linux  and run this on 32 bit linux with qemu
+QEMU command line and output
+**********************************
+$x86_64-linux-user/qemu-x86_64 ~/ar_x86 
+output: array[SIZE-1] = z,array[0] = z 
+Release information
+********************
+x86_64 binary is tested with latest release : qemu-0.14.1
+and with current development tree as well( live code of QEMU using git)
+
+Can you still reproduce this problem with the latest version of QEMU (currently version 2.9.0)?
+
+[Expired for QEMU because there has been no activity for 60 days.]
+