From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1FTe8w-0000HA-PD for qemu-devel@nongnu.org; Wed, 12 Apr 2006 08:08:21 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1FTe8k-00005C-0n for qemu-devel@nongnu.org; Wed, 12 Apr 2006 08:08:07 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1FTe8i-00004x-8z for qemu-devel@nongnu.org; Wed, 12 Apr 2006 08:08:04 -0400 Received: from [81.103.221.47] (helo=mtaout01-winn.ispmail.ntl.com) by monty-python.gnu.org with esmtp (Exim 4.52) id 1FTeDm-0004rd-Uf for qemu-devel@nongnu.org; Wed, 12 Apr 2006 08:13:19 -0400 Received: from aamtaout04-winn.ispmail.ntl.com ([81.103.221.35]) by mtaout01-winn.ispmail.ntl.com with ESMTP id <20060412120802.JDRM29343.mtaout01-winn.ispmail.ntl.com@aamtaout04-winn.ispmail.ntl.com> for ; Wed, 12 Apr 2006 13:08:02 +0100 Received: from suse10.valgrind.org ([82.21.96.252]) by aamtaout04-winn.ispmail.ntl.com with ESMTP id <20060412120801.WTFL16086.aamtaout04-winn.ispmail.ntl.com@suse10.valgrind.org> for ; Wed, 12 Apr 2006 13:08:01 +0100 From: Julian Seward Date: Wed, 12 Apr 2006 13:08:00 +0100 MIME-Version: 1.0 Content-Type: Multipart/Mixed; boundary="Boundary-00=_g2OPExme42OVB0H" Message-Id: <200604121308.00848.jseward@acm.org> Subject: [Qemu-devel] Emulation differences, qemu-system-x86_64 vs Athlon64 Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org --Boundary-00=_g2OPExme42OVB0H Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Recently I've been playing with CVS qemu-system (softmmu) on amd64 and had some stability problems. I decided to run Valgrind's amd64 instruction-set tests (derived from qemu's) to see if they picked up anything. Resulting diffs are attached. There are a bunch of differences for the C flag for rotates (rol/ror) by multiples of the word size. I don't think these are significant, but who knows. Perhaps more worryingly are the 20 or so lines at the bottom of the diff. These I believe are for double-to-int/short conversions for a value which is out of range for an int/short; the hardware produces 0x80000000/0x8000 respectively, which is the "integer indefinite"; QEMU produces zero. I can imagine some obscure routine somewhere checking for integer indefinite after conversion and being confused as a result. J --Boundary-00=_g2OPExme42OVB0H Content-Type: application/x-bzip2; name="diffs-qemu-vs-Athlon64.txt.bz2" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="diffs-qemu-vs-Athlon64.txt.bz2" QlpoOTFBWSZTWel3Gz4ADtlfgH64QG9/9zxvVgC/5//wYFN8AAAAAVUFVVCB6AAAL5gAAAADoAAA AAAO7pVKfCh4AAAwRABCDHwDTgAADTkSJEiJEiJBvYwo4QMAAAABBRR3GGgBvAJG8IIgVzgA4AAA 6KCBxDeatDhDoSMeAAAMeICIHExPYtXQHAAAAADOUUUYB886nADhqn5T0h+qqSGp6npqMEaAAaAA NAGglVVP3+9VTVKZPURgATAAAABMAAaqn+/UVUyKgDQAAADQDQAAAlP1SiD1RIpsp6TNQeoAADIA 9QABKEqeyCnpiJptEGJpoGnqaADRpkwgVU8kIUoiNNIZA0ANDQAABoPsqrPzKq++2+oyzKqr8fq7 +7zX5fvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADaqqvHPvOgAaNABo0A GjQAaNABo0AGjQAaNABo0AGjQAaNABo0AGjQAaNABo0AGjQAaNABo0AGjQAaNABo0AGjQAaNABo0 AGjQAaNABo0AGjQAaNABo0AGjQAaNABo0AGjQAaNABo0AGjQAaNABo0AGjQAaNABo0AGjQAaNABo 0AGjQAaNABo0AHrNqqrLiuvz+OvfsAAAAD14874353ve5ZZZZZZZZZZ8r5v5N958oAAAAAAc5znk AAAABznO+c5znOc5wAAAAAJ3k1NyyyyyyyyyyyyzPYAAAAHjz53xvne973ve973uWWWWWWY+77vv AAAAAAAAMjbbbbbbbbbbbbbbYBgHQAAAAAAAneTU3LLLLLLLLLLLLNWzUsssssssssssss3rdNnA AAAAAAAJ3k1NyyyyyyyyyyyyzmuXmzgAc5znOc5znOc5znOcegAAAAPNdmTsssssssssssss2zfN nAAAOc5znOc5znOc49AAAAAc5oAdAAAAAAACd5NTcssssssu973ve973vngAAAAHjz53xvmWWWWW WWWWWWWDN92cAAAAADnOc5znrsAAAADnOuc555znAAAAAAAJ3k1NyyyyyyyyyyyyzVs1LLLLLLLL LLLLLN63TZwAAAAAAACd5NTcssssssssssss5rl5s4AAAAAAAB1L5UvVjY2222NGgA6qq606ABo0 AHVVXWnQANGgA6qq606ABo0AHVVWdadAA0aADqqrrToAGjQAdVVdadAA0aADqqrrToAGjQAdVVJL O7Y5tT8rHStNGiXDHUoAAXEEQQAE937mNfz/jfbJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ JJJJJJJJJJJJJJJJJJJJJJJJJJLKqkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk kkkkkkkkkkkkkkkkksqqSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS SSSSSSSSyqpJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKo A0RUb5G28za5ywO8FBQsALESnb/OM+NkzyvXSG/5p0AH9cA/tgEAIAQAgBACAFAKvy/h937nf7SI hSkpYIiFKSlgiIUpKWCIhSkpYIiFKSlgiIUpKWCIhSkpYIiFKSlgiIUpKWCIhSkpYIiFKSlgiIUp KWCIhSkpYIiFKSlgiIUpKWCIhSkpYIiFKSlgiIUpKWCIhSkpYIiFKSlgiIUpKWCIhSkpYIiFKSlg iIUpKWCIhSkpYIiFKSlgiIUpKWCIhSkpYIiFKSlgiIUpKWCIhSkpYIiFKSlgiIUpKWCIhSkpYIiF KSlgiIUpKWCIhSkpYIiFKSlgiIUpKWCIhSkpYIiFKSlgiIUpKWCIhSkpYIiFKSlgiIUpKWCIhSkp YIiFKSlgiIUpKWCIhSkpYIiFKSlgiIUpKWCIhSkpYIiFKSlgiIUpKWCIhSkpYIiFKSlgiIUpKWCI hSkpYIiFKSlgiIUpKWCIhSkpYIiFKSlgiIUpKWCNNptpNJppNeP3fTrX4ffPO8nvfV8/s92L/ef6 +b7S3/T6p9Pu+Pnv8PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqs07+uSDtrqnVDrdcSco BjxUgGC7YWHOMYRjMM2ratq2ratq2ratq2ratq/VaX21V862hcXyIQhCEIQhCEIQhfQh8+fPnz5X rxWK6ratq2ratq2ratq2ratq2rxjxt46+ePx8+fIQhCEIQhCEIQhCEIQourii0rqtq2ratq2ratq 2ratq2qqi4tLiq4toXEIQhCEIQhCEIQ+fPnz58+fPlevFYrqtq2ratq2ratq2ratq2ravGPG3jr5 4+QhCEIQhCEIQhCEIQhCEKputv6BoGv6DQNfuH7/3f5vfz9AHSAD+B+x/ZVVVVVVVVVVVVUiIiIi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIlVVVVVVVVVVVVVV YCSek0nzPmevh5F7r3jKUqa910tZBm7r3as1utZsd2oq9ay9t3Z2Vgy9tRXV0TzERERERERERERE REREREREREW2222222223q7qqr8n6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABJJJ3Oqqqr1VVEeqA1rVm/4bk73y38 8q5e5vzwA9qP0bbAa1qeeYAf5AGmmZvZprVh5Bo4AzMBq2gwBpmYBrANaMZmt/dkk5+fjkm/J6Br Xo01YchN/mMzinx76AAAAAAAAAAAAAAAAAAAAAKqvi33qWeSbArN1u3JjPfZ3ye+znH4BEAaiARA CQCQBIBIB99QHuoBNoo0to1LQNb3QNYgG1ibYBiAIgGPPuO7evEkmlc52d26dcbettuuusVEibNq xImK35ze5OFb3zjckPQnTClRIlIqRKqSTnuzbbe8yTTZSlR8DXnv3Hm5nnVvI9t9zPOgj5Qa37Qc 6nhznANcNokkiJJNoVgNefcwG3BG984BrbhESSbRrfMxbk7sW5O3PY9Z79vfgu/busrCiu1dc2vb LOgAAAAAAAAAAAAAAAAAAAAFVXfRtVW3juXnN/bksySLlZbkzxhw22jOXLcyuZ1e/cucV953qvga 79vAfPwBvfOBrXIGnAF1QakBQFo1rXYNGAK+oCwDX47J2Tmvvbfz3b0DW+fnPwDr7d+W5jYGLLrS 31nny8eZJJPSeO8qUrx1qijuutZetYpU17qNRUGKVsDDtlbrVXrWXth3b4yekknp6Lq8eSSSSSSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS SSSSSSSSSSSSSSS7tm0VtjGMS52KxtjGMS5qKxjJLOujbO1pdSSXbOu1pdSSTrmuXLkklnO1rq6k knXOHbs8dwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8fQAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAA9/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABz84AAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB5vpd230tl1bL1d23SqrDbFbVtEYiNsVtW2Mfq+yqq ru96AAAAAAAAAAH8lu7bu27tu7buwggggggggggggggggggggggggm7tugAAAAAAAAAAAAAAAAAA AAG27tu7bu26gggggggggggggggggggggggghtu7bu26AAAAAAAAAAAAAAAAAAAAAbbu27sIIIII IIIIIIIIIIIIIIIIIIIJu7bu27tu7boAAAAAAAAAAAAAAAAAAAABtuoIIIIIIIIIIIIIIIIIIIII IIIbbu27tu7bu27tugAAAAAAAAAAAAAAAAAAAAdyCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCHd3d3 d3d3d3d3cAAAAAAAAAAAAAAAAHd3d3cgggggggggggggggggggggggggggggggh3d3d3d3d3AAAA AAAAAAAAAAAAB3d3d3d3d3IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIId3d3dwAAAAAAAAAAAAAAAA AAAG27tu7bu27tu7bu27sIIIIIIIIIIIIIIIIIIIIIIIIdwAAAAAAAAABtu7bu27t6rxL4+euvq6 677931dAAAAAAAAAAAAAAAAAAAAAd30ur5vV4vN5t63rd669Wev28vvsmZme/st+iffnK+Vt+Nvx oAZLJIo9JyKeja36ejbfp4TqKuKc4hd5EsSJ79+3v29ez3s3bZbut3zXx47AAAAAAAAAAAAAAAAA AAkkkkkk4+McdfPXz02bPVVmZhczHSIkTaKkSJfOvblXne4t75izPc2fja/esLmDCERIniKkSFpV jVKpUW1NWrEht9k+ke+HnwHfHd7PBnu3nOc1W1K72tkS0eERJJF8VgzM1rEhYuokVVSSXJ55PPPP 1AO+mIkkhaLrUSNaNAe4otrUp16x49dGIeCSCSefSSSX17vceLaKLbR3a291HePb29nxl7buzsrd arq7tazIM6u2UV1UXuvbKUqa910tZBm7r3as1vp9WyyxETp09YiJ6vfyvXmJ3d+vl7c/MzjenI8k SabRZNueTu9b835I47vm+pH8ZHWtSNGp9Q1IEAnnfPufst+gCQCX1bTAJAEjGPH49fo6NJBqakTt K0LGta4AdAIAgCAIAgBACAIAgKVVSxYsWJJKUkpSSSSxYsWJJKUkpSSSSxYsWJJKUkpSSSSxYsWJ JKUkpSSSSxYsWJJKUkpSSSSxYsWJJKUkpSSSSxYsWJJKUkpSSSSxYsWJJKUkpSSSSxYsWJJKUkpS SSSxYsWJJKUkpSSSSxYsWJJKUkpSSSSxYsWJJKUkpSSSSxYsWJJKUkpSSSSxYsWJJKUkpSSSSxYs WJJKUkpSSSSxYsWJJKUkpSSSSxYsWJJKUkpSSSSxYsWJJKUkpSSSSxYsWJJKUkpSSSSxYsWJJKUk pSSSSxYsWJJKUkpSSSSxYsWJJKUkpSSSSxYsWJJKUkpSSSSxYsWJJKUkpSSSSxYsWJJKUkpSSSSx YsWJJKUkpSSSSxYsWJJKUkpSSSSxYsWJJKUkpSSSSxYsWJJKUkpSSSSxYsWJJKUkpSSSSxYsWJJK UkpSSSSxYsWJJKUkpSSSXddNa03njGjT8OQkakSHOcwa40vK0yEjUiQsGrCaWJBiuc3ezLub/Pn2 scdeyrfsQ0kBJpqIGkgakiNa1qRJ8rU2rAMzCVuTnycvr354vfnz364AxVVczWmsjTRWLrrrOvYG yVZdLVWN29dW2ZmtSJYoEee79nPJ77Nx6WqbAqpFAWUmtNJGtJEbqlrbEesfPXz56euta1qRIia1 pr9wADKyud736izM7776s7WxN2rVFliJBISCFhIJrX4TE057bn1XL+Zvzv5tfvl3j9oBHjbr6Sak 3IABbZr0aW0C17g1b+ckk/POPZLx3z0xsQ34KdDvONkbbb8nH3r7zuG5k9+tVetZe2HdrWYpUGdX dhLWKVutUUd11rL1rFKmvdRvPr6+vd6ju9baB3XW3uttF9p68eq+VtjG2MVtWI22xVVioxUbbViq rHX4ALzklnklFTQZcmDWWzOWSTwW0eOvxt88dPHVNObpbRUHu83NjLub5eNWxeNNLtXpK0Sd1o3y yd2S1S4pzdnvbSWZuc2a1fLpbR+wzOrbZqfp+mt+z85I3+k39JJyevJPx5vnD1NJztzSWZjVRczC BZk82W1hISGkTWvO+d73qQ0kJmW4XVmiTSUACtVF8ySzcnUeusbc7eyzJnLJJJjWtNz7rv27779b lvf29evlaNfntBbVTWXJjCJbM8smGBVZbu1lyZpzL4ndfn3sknPxe/PH33+jg5yStW1b24W1ENeT M8nPJ+0A5vvLWtay5M0ETVtW2cpbZJJJZpJuyR+jbx+jx413yra1Ed3mFude70nTvT4/nu9gB3eb b3Ua2ij5U8XfeG8qSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS7nf37u13O3Z1DFK2O7UUMzW61l7butZe27s7K3Wq6u 7WsyDOrtlF11dXdJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJcpdWuWta7Xa4qqwGu3l+ic/Or5+N2T3 gPyvHz3PHst3p0UUUWZzO/Hm89uehzPft3WVhRXSnXrqvlV6Vx4AAAAAAAAAAAAAAAAAAAEkkkk8 VG8uWZlKaSZfmAuS5DU1vc99nvvnjp7pnt2lmY8Rtt6eHQxxdA5mYaPyGt7u/TGhr3MW57izO5t7 +fl59vHQeJEiI3zMtzPlNaxNaG8zGW5X3JJM5NvpOSea9+t8+8NGirpXFV4eAAAAAAAAAAAAAAAA AAAAAHUY+AAkemIeb88zveiZl8ABxxlsmkVFavJ4xsxvezaJJLVSSVCrHAAYKztYsY9eNuNuKiSS Ikk1kUtFJr4lcVZJ7nW20kmmb3s2saptjDE1rf15fbncz3yTf1uW/nz51fOd+kze8FaIiRFJEZW0 zMlees6654Lxz0HjPe186473HHLZbVidmZyd7Pvs9vtyZl7blVNe6jUVBilbAw7ZW61V61l7Yd2t ZilQZ1d2HgXVy75JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJLO7ta6upJJ13a5cuSSWc5pcuSSXOOuddbbS6uSST nNcuXJJLnHLlrkklzjly1ySS6zhtvz5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHj4 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO/kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAA9/aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbeb4tvNttt1X0urW1bRG IjbFbVtjG2MVtWI3d3zfPVLLErLCysL5+AAAAAAAAAAAAAAAAAAACSSSST1h168eOufrixrP17nr nvy37lXeuvPffvPi5dXrMsTMsKxgefHfLx4ey56c8B37Z1bz3e+eusRXry9enjy9ekGXi6dW7t79 gAAAAAAAAAAAAAAAAAAAAbLqvF5vV4PJJtxBpe+rvq7x13k+t9vmu7qDVlOyTgAFbZrz2THknjvk 93rfsy87vFtQa1E1rQkSVLvfeSaSNrVMct4XMxSQkHWz511xo7EgkJFRrXpiLlyTWZvetyQtKVCn uPGzaakm9t42sskIxisa557a9hbaO73tvdQB3ayeff2ezq7ve1mKUXuvbKgws1Zu6zVk17rpaxSt ju1FDM1utZe2YxiIxVVtVVzPbfu+Xe1379OzxWPeefOG972bTUk1NSTxSvMrBGZzG1ipqSYrWbzG ZmD7skm587J54n1c716731h6h9a+ABGsyiI1btu3RXvnOPXHPfv21rAVZbKs750R1vPKuLa2sXUI Qs7NuPT14djcab7NhJqTfeaU2RR3ur6ef8i9S2sXq9NNyxto9U07Mmcaa1UNNZpvMaLc/O67z9JJ PPfHJN8d8Mb86oCDm1E9RuZG/G5qacetLnHrU85O+bO77JcKi5mLcndtW0w6RERYuptF0m20RWd9 6WXahqRMzJjx1xx1114Rqprdq2604jncwtybk+AA4Yj3jfdt2TnK8vt7bnu9jOd5OMu5vZAARE12 0tukTVtW3LJ772Sea72eckb8m/ZHJPbzTzPPludevRXcs8+PN9vXz58PBSoM6u7CWsUrdaoo7rrW XrWKVNe6jUVBilbAwtvdbb3Xbbuw7tbb3bbYdfM8z3ie0Szp82xVVioxUbbViqrDbFbVtEYq5JeW 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 JKlWBd9Qf4u5IpwoSHS7jZ8A --Boundary-00=_g2OPExme42OVB0H--