Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/809329/?format=api
{ "id": 809329, "url": "http://patchwork.ozlabs.org/api/patches/809329/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20170903163130.14288-1-n54@gmx.com/", "project": { "id": 14, "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api", "name": "QEMU Development", "link_name": "qemu-devel", "list_id": "qemu-devel.nongnu.org", "list_email": "qemu-devel@nongnu.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20170903163130.14288-1-n54@gmx.com>", "list_archive_url": null, "date": "2017-09-03T16:31:30", "name": "target/m68k: Change fpu_rom from const static array to switch", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "aa1a8467255d9068b9f6153119c64997ea729ac7", "submitter": { "id": 11273, "url": "http://patchwork.ozlabs.org/api/people/11273/?format=api", "name": "Kamil Rytarowski", "email": "n54@gmx.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20170903163130.14288-1-n54@gmx.com/mbox/", "series": [ { "id": 1255, "url": "http://patchwork.ozlabs.org/api/series/1255/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=1255", "date": "2017-09-03T16:31:30", "name": "target/m68k: Change fpu_rom from const static array to switch", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/1255/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/809329/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/809329/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org", "Authentication-Results": "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)", "Received": [ "from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xlf2V6lrqz9t2f\n\tfor <incoming@patchwork.ozlabs.org>;\n\tMon, 4 Sep 2017 02:44:18 +1000 (AEST)", "from localhost ([::1]:59541 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1doY0P-0000SV-1s\n\tfor incoming@patchwork.ozlabs.org; Sun, 03 Sep 2017 12:44:17 -0400", "from eggs.gnu.org ([2001:4830:134:3::10]:42511)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from <n54@gmx.com>)\n\tid 1doXzy-0000Nf-Ql\n\tfor qemu-devel@nongnu.org; Sun, 03 Sep 2017 12:43:55 -0400", "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <n54@gmx.com>) id 1doXzt-0008Vt-O5\n\tfor qemu-devel@nongnu.org; Sun, 03 Sep 2017 12:43:50 -0400", "from mout.gmx.net ([212.227.17.22]:49533)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16)\n\t(Exim 4.71) (envelope-from <n54@gmx.com>) id 1doXzt-0008VC-DV\n\tfor qemu-devel@nongnu.org; Sun, 03 Sep 2017 12:43:45 -0400", "from localhost.localdomain ([185.58.161.191]) by mail.gmx.com\n\t(mrgmx101 [212.227.17.174]) with ESMTPSA (Nemesis) id\n\t0MfAog-1e8xUN3yZ8-00OmJg; Sun, 03 Sep 2017 18:43:42 +0200" ], "From": "Kamil Rytarowski <n54@gmx.com>", "To": "laurent@vivier.eu", "Date": "Sun, 3 Sep 2017 18:31:30 +0200", "Message-Id": "<20170903163130.14288-1-n54@gmx.com>", "X-Mailer": "git-send-email 2.14.1", "X-Provags-ID": "V03:K0:5DXUvPsNP8jwy/6Oq2x4gvBI5X5nhj10Q+RTD/PeWMslovmmnPy\n\tJ3weEWG5oyC4ntf6yuQlnrRosm9lEINquaFY7jysqVtTpykm8Yxzw+xutzuXpR6kGfXmKeZ\n\t244g0Ok/I+I1dFwRpUIucuGaxw+yj3bbSJnZO+L2OdKbmzB7dihViH7m4D7qOVdLrDare7N\n\tb81DXpaTX2Lms4ltPjd4Q==", "X-UI-Out-Filterresults": "notjunk:1; V01:K0:DCRjWXiWUGI=:4zi1L9RK8uFC3rBu2IiqFR\n\t3H3+RmS2/LG6pWSxjLgsarf1ZfSa+twsBunJQf+UVvU5/32ctvWzE78hX+2crq/L9t/PtaY4L\n\trUC9p3Nuk1+IlZ6mds9fNZvMxPUDfoc0o+rm/NuS2Nzz5doUkHKQvsRg4iN4d726DaO04dp/3\n\t0K7dHXv4n3XdAKy99fM/Zoq4/VXGa3H+FnWg+cOnq2WfclaW8ZNlAG7GgcU6b+Rbbt8aYeEfX\n\tbwr9RoyTBOkFu61PkqtRXoxzK6lv5ns7OMAxpgMyIll3uJ+NBW6tzRapmuNdzPZeiZfVlFWiZ\n\tezq560zzkUE3dfVJTUrAaryV253+hiGwL3EMxJiXXilwQaiibrhV5Vj+Yw54k4ZLZSzOwTIom\n\tzZrDxg3FyKE5ra0Acjek9Zj2WyB+Grb86g+6RY8XTx3UXPWIa+MCoyZD73o8DtXwPsaGtZQG6\n\tCxiNwc38k2VxnoY5Wd15uduf6GOSYyQx1Y8WDPurOg59eZI9X94P+xIpXbzARWRRv4Zc7dXr2\n\tzT/kXAbaBL19UV61VQg+YdWpG93p0MiHpVT3+KKbMTi1dHz6YZ9uR2JQVsVQkSa++OyLW1jGm\n\tWbu5coZN94lSAl1El6GAjG/JaezYgo7CW0vAuyDgHk894HgWlV5yGCSIx9VNKKbSc4Dl6xE0a\n\tyk1HtM6bUVr8iEW6mgZ+wA7o7mEdakxKDuyv+KydXnNXCEKLL9i88cGSB+5tfReMkiEUGsuFE\n\tqOkLCnLuh9GTU9Uag4UZ00KVg8065W9fMMAPklrnxLsU5EsLjT/0yAzgNLSZbzNa1h6etIYP1\n\tEcYbaj0zTl5SkHUHVNDY996KhY6IA==", "X-detected-operating-system": "by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]", "X-Received-From": "212.227.17.22", "Subject": "[Qemu-devel] [PATCH] target/m68k: Change fpu_rom from const static\n\tarray to switch", "X-BeenThere": "qemu-devel@nongnu.org", "X-Mailman-Version": "2.1.21", "Precedence": "list", "List-Id": "<qemu-devel.nongnu.org>", "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>", "List-Archive": "<http://lists.nongnu.org/archive/html/qemu-devel/>", "List-Post": "<mailto:qemu-devel@nongnu.org>", "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>", "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>", "Cc": "Kamil Rytarowski <n54@gmx.com>, qemu-devel@nongnu.org", "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org", "Sender": "\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>" }, "content": "GCC 4.7.2 on SunOS reports that the values assigned to array members are not\nreal constants:\n\ntarget/m68k/fpu_helper.c:32:5: error: initializer element is not constant\ntarget/m68k/fpu_helper.c:32:5: error: (near initialization for 'fpu_rom[0]')\nrules.mak:66: recipe for target 'target/m68k/fpu_helper.o' failed\n\nConvert the array to switch() to workaround the issue.\n\nThis fixes build on SmartOS (Joyent).\n\nSigned-off-by: Kamil Rytarowski <n54@gmx.com>\n---\n target/m68k/fpu_helper.c | 108 ++++++++++++++++++++++++++++++++++-------------\n 1 file changed, 78 insertions(+), 30 deletions(-)", "diff": "diff --git a/target/m68k/fpu_helper.c b/target/m68k/fpu_helper.c\nindex bdfc537c68..13ce40db06 100644\n--- a/target/m68k/fpu_helper.c\n+++ b/target/m68k/fpu_helper.c\n@@ -24,35 +24,6 @@\n #include \"exec/exec-all.h\"\n #include \"exec/cpu_ldst.h\"\n \n-/* Undefined offsets may be different on various FPU.\n- * On 68040 they return 0.0 (floatx80_zero)\n- */\n-\n-static const floatx80 fpu_rom[128] = {\n- [0x00] = floatx80_pi, /* Pi */\n- [0x0b] = make_floatx80(0x3ffd, 0x9a209a84fbcff798ULL), /* Log10(2) */\n- [0x0c] = make_floatx80(0x4000, 0xadf85458a2bb4a9aULL), /* e */\n- [0x0d] = make_floatx80(0x3fff, 0xb8aa3b295c17f0bcULL), /* Log2(e) */\n- [0x0e] = make_floatx80(0x3ffd, 0xde5bd8a937287195ULL), /* Log10(e) */\n- [0x0f] = floatx80_zero, /* Zero */\n- [0x30] = floatx80_ln2, /* ln(2) */\n- [0x31] = make_floatx80(0x4000, 0x935d8dddaaa8ac17ULL), /* ln(10) */\n- [0x32] = floatx80_one, /* 10^0 */\n- [0x33] = make_floatx80(0x4002, 0xa000000000000000ULL), /* 10^1 */\n- [0x34] = make_floatx80(0x4005, 0xc800000000000000ULL), /* 10^2 */\n- [0x35] = make_floatx80(0x400c, 0x9c40000000000000ULL), /* 10^4 */\n- [0x36] = make_floatx80(0x4019, 0xbebc200000000000ULL), /* 10^8 */\n- [0x37] = make_floatx80(0x4034, 0x8e1bc9bf04000000ULL), /* 10^16 */\n- [0x38] = make_floatx80(0x4069, 0x9dc5ada82b70b59eULL), /* 10^32 */\n- [0x39] = make_floatx80(0x40d3, 0xc2781f49ffcfa6d5ULL), /* 10^64 */\n- [0x3a] = make_floatx80(0x41a8, 0x93ba47c980e98ce0ULL), /* 10^128 */\n- [0x3b] = make_floatx80(0x4351, 0xaa7eebfb9df9de8eULL), /* 10^256 */\n- [0x3c] = make_floatx80(0x46a3, 0xe319a0aea60e91c7ULL), /* 10^512 */\n- [0x3d] = make_floatx80(0x4d48, 0xc976758681750c17ULL), /* 10^1024 */\n- [0x3e] = make_floatx80(0x5a92, 0x9e8b3b5dc53d5de5ULL), /* 10^2048 */\n- [0x3f] = make_floatx80(0x7525, 0xc46052028a20979bULL), /* 10^4096 */\n-};\n-\n int32_t HELPER(reds32)(CPUM68KState *env, FPReg *val)\n {\n return floatx80_to_int32(val->d, &env->fp_status);\n@@ -387,7 +358,84 @@ void HELPER(ftst)(CPUM68KState *env, FPReg *val)\n \n void HELPER(fconst)(CPUM68KState *env, FPReg *val, uint32_t offset)\n {\n- val->d = fpu_rom[offset];\n+ floatx80 tmp;\n+\n+ /* Undefined offsets may be different on various FPU.\n+ * On 68040 they return 0.0 (floatx80_zero)\n+ */\n+ switch (offset) {\n+ case 0x00:\n+ tmp = floatx80_pi; /* Pi */\n+ break;\n+ case 0x0b:\n+ tmp = make_floatx80(0x3ffd, 0x9a209a84fbcff798ULL); /* Log10(2) */\n+ break;\n+ case 0x0c:\n+ tmp = make_floatx80(0x4000, 0xadf85458a2bb4a9aULL); /* e */\n+ break;\n+ case 0x0d:\n+ tmp = make_floatx80(0x3fff, 0xb8aa3b295c17f0bcULL); /* Log2(e) */\n+ break;\n+ case 0x0e:\n+ tmp = make_floatx80(0x3ffd, 0xde5bd8a937287195ULL); /* Log10(e) */\n+ break;\n+ case 0x0f:\n+ tmp = floatx80_zero; /* Zero */\n+ break;\n+ case 0x30:\n+ tmp = floatx80_ln2; /* ln(2) */\n+ break;\n+ case 0x31:\n+ tmp = make_floatx80(0x4000, 0x935d8dddaaa8ac17ULL); /* ln(10) */\n+ break;\n+ case 0x32:\n+ tmp = floatx80_one; /* 10^0 */\n+ break;\n+ case 0x33:\n+ tmp = make_floatx80(0x4002, 0xa000000000000000ULL); /* 10^1 */\n+ break;\n+ case 0x34:\n+ tmp = make_floatx80(0x4005, 0xc800000000000000ULL); /* 10^2 */\n+ break;\n+ case 0x35:\n+ tmp = make_floatx80(0x400c, 0x9c40000000000000ULL); /* 10^4 */\n+ break;\n+ case 0x36:\n+ tmp = make_floatx80(0x4019, 0xbebc200000000000ULL); /* 10^8 */\n+ break;\n+ case 0x37:\n+ tmp = make_floatx80(0x4034, 0x8e1bc9bf04000000ULL); /* 10^16 */\n+ break;\n+ case 0x38:\n+ tmp = make_floatx80(0x4069, 0x9dc5ada82b70b59eULL); /* 10^32 */\n+ break;\n+ case 0x39:\n+ tmp = make_floatx80(0x40d3, 0xc2781f49ffcfa6d5ULL); /* 10^64 */\n+ break;\n+ case 0x3a:\n+ tmp = make_floatx80(0x41a8, 0x93ba47c980e98ce0ULL); /* 10^128 */\n+ break;\n+ case 0x3b:\n+ tmp = make_floatx80(0x4351, 0xaa7eebfb9df9de8eULL); /* 10^256 */\n+ break;\n+ case 0x3c:\n+ tmp = make_floatx80(0x46a3, 0xe319a0aea60e91c7ULL); /* 10^512 */\n+ break;\n+ case 0x3d:\n+ tmp = make_floatx80(0x4d48, 0xc976758681750c17ULL); /* 10^1024 */\n+ break;\n+ case 0x3e:\n+ tmp = make_floatx80(0x5a92, 0x9e8b3b5dc53d5de5ULL); /* 10^2048 */\n+ break;\n+ case 0x3f:\n+ tmp = make_floatx80(0x7525, 0xc46052028a20979bULL); /* 10^4096 */\n+ break;\n+ default:\n+ tmp = floatx80_zero;\n+ break;\n+ }\n+\n+ val->d = tmp;\n }\n \n typedef int (*float_access)(CPUM68KState *env, uint32_t addr, FPReg *fp,\n", "prefixes": [] }