diff options
Diffstat (limited to 'results/classifier/deepseek-2-tmp/output/mistranslation/1843651')
| -rw-r--r-- | results/classifier/deepseek-2-tmp/output/mistranslation/1843651 | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/results/classifier/deepseek-2-tmp/output/mistranslation/1843651 b/results/classifier/deepseek-2-tmp/output/mistranslation/1843651 deleted file mode 100644 index 689a82ff..00000000 --- a/results/classifier/deepseek-2-tmp/output/mistranslation/1843651 +++ /dev/null @@ -1,81 +0,0 @@ - -m68k fpu bug - -On gcc123 cfarm machine, -I was testing m68k executables generated by Free Pascal Compiler. - -muller@gcc123:~/pas/check$ cat inf.pp -function get_double(x : double):double; - begin - get_double:=x; - end; - - -var - y : double; - py : pbyte; - i : byte; -begin - y:=1.0/0.0; - py:=@y; -{$ifdef ENDIAN_LITTLE} - write('little endian y='); - for i:=7 downto 0 do -{$else not ENDIAN_LITTLE} - write('big endian y='); - for i:=0 to 7 do -{$endif} - write(hexstr(py[i],2)); - writeln; - y:=get_double(y)+1; -{$ifdef ENDIAN_LITTLE} - write('little endian y='); - for i:=7 downto 0 do -{$else not ENDIAN_LITTLE} - write('big endian y='); - for i:=0 to 7 do -{$endif} - write(hexstr(py[i],2)); - writeln; -end. -muller@gcc123:~/pas/check$ ppc68k inf -Free Pascal Compiler version 3.3.1-r20:42973M [2019/09/11] for m68k -Copyright (c) 1993-2019 by Florian Klaempfl and others -Target OS: Linux for m68k -Compiling inf.pp -Assembling program -Linking inf -33 lines compiled, 0.1 sec -muller@gcc123:~/pas/check$ ./inf -big endian y=7FF0000000000000 -big endian y=7FFFFFFFFFFFFFFF -muller@gcc123:~/pas/check$ qemu-m68k ./inf -big endian y=7FF0000000000000 -big endian y=7FFFFFFFFFFFFFFF -muller@gcc123:~/pas/check$ ~/sys-root/bin/qemu-m68k ./inf -qemu-m68k qemu-m68k-fixed -muller@gcc123:~/pas/check$ ~/sys-root/bin/qemu-m68k-fixed ./inf -big endian y=7FF0000000000000 -big endian y=7FF0000000000000 - -~/sys-root/bin/qemu-m68k is 4.1.0 release, -~/sys-root/bin/qemu-m68k-fixed is the same source with a unique change: - -gnu/qemu/qemu-4.1.0/fpu/softfloat-specialize.h:214:#if defined(TARGET_M68K) -gnu/qemu/qemu-4.1.0/fpu/softfloat-specialize.h-215-#define floatx80_infinity_low LIT64(0x0000000000000000) -gnu/qemu/qemu-4.1.0/fpu/softfloat-specialize.h-216-#else -gnu/qemu/qemu-4.1.0/fpu/softfloat-specialize.h-217-#define floatx80_infinity_low LIT64(0x8000000000000000) -gnu/qemu/qemu-4.1.0/fpu/softfloat-specialize.h-218-#endif - -the M68K branch value is set to the same value as the other branch. - -The problem of the M68K specific floatx86_infinity_low values -is that is enters in conflict with -muller@gcc123:~/pas/check$ grep -nA6 invalid_enc /home/muller/gnu/qemu/qemu-4.1.0/include/fpu/softfloat.h -752:static inline bool floatx80_invalid_encoding(floatx80 a) -753-{ -754- return (a.low & (1ULL << 63)) == 0 && (a.high & 0x7FFF) != 0; -755-} - -And thus the m68k variant of floatx80 representing +Infinity is -considered as an invalid encoding, and thus converted into a NaN 7FFFFFFFFFFFFFFF \ No newline at end of file |