From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 55974 invoked by alias); 7 Apr 2017 00:00:04 -0000 Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org Received: (qmail 55881 invoked by uid 89); 7 Apr 2017 00:00:02 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.3 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,SPF_PASS autolearn=ham version=3.3.2 spammy=H*c:sk:f403045, that!, ceil, H*i:sk:a61586e X-HELO: mail-wr0-f193.google.com Received: from mail-wr0-f193.google.com (HELO mail-wr0-f193.google.com) (209.85.128.193) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 07 Apr 2017 00:00:00 +0000 Received: by mail-wr0-f193.google.com with SMTP id u18so7516980wrc.1 for ; Thu, 06 Apr 2017 17:00:01 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=OGntg+ty6jkdnfUcv/5XG8k71PcdJkdGoUgUj1Jqmb4=; b=s0tyIff52r6qdbCmNLB7bjRQXTkCqgV590Ss9qe1dMZkuabLfoxWuQXSvQcseD68Ct VwiGYw+UHsX4aqMcEvnCGXXZN4VHXh4yqDrG8338Um7A/bzn72zijwznviW/HlhhqV/J uxIGFXZSWlQVW3qzoyaYqYpAPb06IT4Blium4h5nIwnydMc9+y4I7iIEWERoInZj3J7p n/JgeuBM6HYfBI2t03J4NBst749oM9V8WY3Yf9/O7O/EeIG3IEfTq2zDIQBI7gSLWpmf FgX2J3n1YzV/vs+zjBXE2LZhTz6GuovRx2qWhg8eXRmIGwiid092YwVK73JOLaiW4T5I 9E3Q== X-Gm-Message-State: AFeK/H0ql4AEjG10cEbPwmGs6Tc0/k7XjiG9IuJOuNXzAAhGSw0mSogkWEBXVsnxUY4frMTbTrWusLGjKBzfYw== X-Received: by 10.223.177.145 with SMTP id q17mr31549779wra.13.1491523200094; Thu, 06 Apr 2017 17:00:00 -0700 (PDT) MIME-Version: 1.0 Received: by 10.80.195.15 with HTTP; Thu, 6 Apr 2017 16:59:19 -0700 (PDT) In-Reply-To: References: From: Pip Cet Date: Fri, 07 Apr 2017 00:00:00 -0000 Message-ID: Subject: Re: [PATCH] [WebAssembly] Disassembler support To: Simon Marchi Cc: binutils@sourceware.org, nickc@redhat.com Content-Type: multipart/mixed; boundary=f403045ebe2684bb0c054c884e4a X-IsSubscribed: yes X-SW-Source: 2017-04/txt/msg00066.txt.bz2 --f403045ebe2684bb0c054c884e4a Content-Type: text/plain; charset=UTF-8 Content-length: 2340 Hello Simon, thanks for catching that! It certainly wasn't my intention to introduce any new C language requirements, and in this case it's also not quite the right thing to do to begin with: we want to print IEEE 754 floats with the right precision, no matter what our host floating-point format is. Unfortunately, I can't find a way to do that, thus the DECIMAL_DIG usage. I'm attaching a patch to use a fixed value of 17, which is the right thing to do for a 52-bit mantissa. It still won't do the right thing on hosts whose double type is insufficient to represent IEEE 754 doubles. Suggested change log entry: opcodes/: 2017-04-06 Pip Cet * wasm32-dis.c (print_insn_wasm32): Use a fixed value (valid for IEEE 754 doubles) instead of DECIMAL_DIG. diff --git a/opcodes/wasm32-dis.c b/opcodes/wasm32-dis.c index 80e4ffe81a..f150163a80 100644 --- a/opcodes/wasm32-dis.c +++ b/opcodes/wasm32-dis.c @@ -23,13 +23,22 @@ #include "opintl.h" #include "safe-ctype.h" #include "floatformat.h" -#include #include "libiberty.h" #include "elf-bfd.h" #include "elf/internal.h" #include "elf/wasm32.h" #include +/* Number of decimal digits, n, such that any floating-point number in the + widest supported floating type with pmax radix b digits can be rounded + to a floating-point number with n decimal digits and back again without + change to the value, + + pmax * log10(b) if b is a power of 10 + ceil(1 + pmax * log10(b)) otherwise +*/ +#define DECIMAL_DIG_IEEE754 17 + /* Type names for blocks and signatures. */ #define BLOCK_TYPE_NONE 0x40 #define BLOCK_TYPE_I32 0x7f @@ -405,7 +414,7 @@ print_insn_wasm32 (bfd_vma pc, struct disassemble_info *info) if (ret < 0) return -1; len += ret; - prin (stream, " %.*g", DECIMAL_DIG, fconstant); + prin (stream, " %.*g", DECIMAL_DIG_IEEE754, fconstant); break; case wasm_constant_f64: @@ -413,7 +422,7 @@ print_insn_wasm32 (bfd_vma pc, struct disassemble_info *info) if (ret < 0) return -1; len += ret; - prin (stream, " %.*g", DECIMAL_DIG, fconstant); + prin (stream, " %.*g", DECIMAL_DIG_IEEE754, fconstant); break; case wasm_call: --f403045ebe2684bb0c054c884e4a Content-Type: text/plain; charset=US-ASCII; name="binutils-wasm-009.diff" Content-Disposition: attachment; filename="binutils-wasm-009.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j172c2pt0 Content-length: 2091 ZGlmZiAtLWdpdCBhL29wY29kZXMvd2FzbTMyLWRpcy5jIGIvb3Bjb2Rlcy93 YXNtMzItZGlzLmMKaW5kZXggODBlNGZmZTgxYS4uZjE1MDE2M2E4MCAxMDA2 NDQKLS0tIGEvb3Bjb2Rlcy93YXNtMzItZGlzLmMKKysrIGIvb3Bjb2Rlcy93 YXNtMzItZGlzLmMKQEAgLTIzLDEzICsyMywyMiBAQAogI2luY2x1ZGUgIm9w aW50bC5oIgogI2luY2x1ZGUgInNhZmUtY3R5cGUuaCIKICNpbmNsdWRlICJm bG9hdGZvcm1hdC5oIgotI2luY2x1ZGUgPGZsb2F0Lmg+CiAjaW5jbHVkZSAi bGliaWJlcnR5LmgiCiAjaW5jbHVkZSAiZWxmLWJmZC5oIgogI2luY2x1ZGUg ImVsZi9pbnRlcm5hbC5oIgogI2luY2x1ZGUgImVsZi93YXNtMzIuaCIKICNp bmNsdWRlIDxzdGRpbnQuaD4KIAorLyogTnVtYmVyIG9mIGRlY2ltYWwgZGln aXRzLCBuLCBzdWNoIHRoYXQgYW55IGZsb2F0aW5nLXBvaW50IG51bWJlciBp biB0aGUKKyAgIHdpZGVzdCBzdXBwb3J0ZWQgZmxvYXRpbmcgdHlwZSB3aXRo IHBtYXggcmFkaXggYiBkaWdpdHMgY2FuIGJlIHJvdW5kZWQKKyAgIHRvIGEg ZmxvYXRpbmctcG9pbnQgbnVtYmVyIHdpdGggbiBkZWNpbWFsIGRpZ2l0cyBh bmQgYmFjayBhZ2FpbiB3aXRob3V0CisgICBjaGFuZ2UgdG8gdGhlIHZhbHVl LAorCisJcG1heCAqIGxvZzEwKGIpCQkJaWYgYiBpcyBhIHBvd2VyIG9mIDEw CisJY2VpbCgxICsgcG1heCAqIGxvZzEwKGIpKQlvdGhlcndpc2UKKyovCisj ZGVmaW5lIERFQ0lNQUxfRElHX0lFRUU3NTQgMTcKKwogLyogVHlwZSBuYW1l cyBmb3IgYmxvY2tzIGFuZCBzaWduYXR1cmVzLiAgKi8KICNkZWZpbmUgQkxP Q0tfVFlQRV9OT05FICAgICAgICAgICAgICAweDQwCiAjZGVmaW5lIEJMT0NL X1RZUEVfSTMyICAgICAgICAgICAgICAgMHg3ZgpAQCAtNDA1LDcgKzQxNCw3 IEBAIHByaW50X2luc25fd2FzbTMyIChiZmRfdm1hIHBjLCBzdHJ1Y3QgZGlz YXNzZW1ibGVfaW5mbyAqaW5mbykKICAgICAgICAgICBpZiAocmV0IDwgMCkK ICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgICBsZW4gKz0gcmV0 OwotICAgICAgICAgIHByaW4gKHN0cmVhbSwgIiAlLipnIiwgREVDSU1BTF9E SUcsIGZjb25zdGFudCk7CisgICAgICAgICAgcHJpbiAoc3RyZWFtLCAiICUu KmciLCBERUNJTUFMX0RJR19JRUVFNzU0LCBmY29uc3RhbnQpOwogICAgICAg ICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2Ugd2FzbV9jb25zdGFudF9mNjQ6 CkBAIC00MTMsNyArNDIyLDcgQEAgcHJpbnRfaW5zbl93YXNtMzIgKGJmZF92 bWEgcGMsIHN0cnVjdCBkaXNhc3NlbWJsZV9pbmZvICppbmZvKQogICAgICAg ICAgIGlmIChyZXQgPCAwKQogICAgICAgICAgICAgcmV0dXJuIC0xOwogICAg ICAgICAgIGxlbiArPSByZXQ7Ci0gICAgICAgICAgcHJpbiAoc3RyZWFtLCAi ICUuKmciLCBERUNJTUFMX0RJRywgZmNvbnN0YW50KTsKKyAgICAgICAgICBw cmluIChzdHJlYW0sICIgJS4qZyIsIERFQ0lNQUxfRElHX0lFRUU3NTQsIGZj b25zdGFudCk7CiAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSB3 YXNtX2NhbGw6Cg== --f403045ebe2684bb0c054c884e4a--