On Wed, 18 Oct 2017, Janne Grunau wrote:

On 2017-10-16 22:38:19 +0300, Martin Storsjö wrote:
The operand shouldn't be stored as is, but stored as 64-scale, in
the opcode, but armasm64 misses to do this.

This might be a big enough bug to report and try to get fixed, but
that requires removing this workaround at that point.

Please report this as bug.

I've reported it at https://connect.microsoft.com/VisualStudio/feedback/details/3142655/armasm64-encodes-incorrect-scale-for-fcvtzs-and-scvtf (seems to require sign-in to see) but apparently they are switching to some other system so I have to re-report it elsewhere.

I'd propose a environment variable or version check for this fixup.

Yeah, I thought about that. At this point within gas-preprocessor, we don't really know the version of armasm (and executing it to find out would be pretty expensive). One possible solution is to enclose the hook-up of the affected functions in x264 with something like this:

#if !defined(_MSC_FULL_VER) || _MSC_FULL_VER >= FIXED_VERSION

That assumes that the assembler is updated in sync with the compiler, which I guess is reasonable.

Alternatively we'd use something like the existing GASPP_FIX_XCODE5 env var, requiring setting GASPP_FIX_ARMASM_FP_SCALE or something such. If the bug report progress shows that it might not ever be fixed, we could remove the need for the env variable of course.

// Martin
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to