FreeBSD Bugzilla – Attachment 209239 Details for
Bug 242067
libc: r354823 riscv64 has a fault in printf() where IEEE754-2008 fp128 data is output wrong
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
Log of compile and output of assembly and check of fp128 data.
rv64imafdc_printf.txt (text/plain), 16.37 KB, created by
Dennis Clarke
on 2019-11-19 03:15:06 UTC
(
hide
)
Description:
Log of compile and output of assembly and check of fp128 data.
Filename:
MIME Type:
Creator:
Dennis Clarke
Created:
2019-11-19 03:15:06 UTC
Size:
16.37 KB
patch
obsolete
> >rv64g$ CC=/usr/local/bin/gcc >rv64g$ export CC > >rv64g$ CFLAGS='-std=iso9899:1999 -O0 -fno-builtin -march=rv64imafdc -mabi=lp64d -L/lib -L/usr/lib -Wl,-rpath=/lib -Wl,-rpath=/usr/lib -mpreferred-stack-boundary=4 -mstrict-align -mexplicit-relocs' >rv64g$ export CFLAGS > >rv64g$ CPPFLAGS='-D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTIC -D_LARGEFILE64_SOURCE -D_XOPEN_SOURCE=600' >rv64g$ export CPPFLAGS >rv64g$ >rv64g$ >rv64g$ $CC $CFLAGS $CPPFLAGS -S -o hex_hack.s hex_hack.c >rv64g$ cat hex_hack.s > .file "hex_hack.c" > .option nopic > .text > .align 1 > .type uname, @function >uname: > addi sp,sp,-32 > sd ra,24(sp) > sd s0,16(sp) > addi s0,sp,32 > sd a0,-24(s0) > ld a1,-24(s0) > li a0,256 > call __xuname > mv a5,a0 > mv a0,a5 > ld ra,24(sp) > ld s0,16(sp) > addi sp,sp,32 > jr ra > .size uname, .-uname > .section .rodata > .align 3 >.LC6: > .string "C" > .align 3 >.LC7: > .string "WARNING : Could not attain system uname data.\n" > .align 3 >.LC8: > .string "uname" > .align 3 >.LC9: > .string "-------------------------------" > .align 3 >.LC10: > .string "------------------------------\n" > .align 3 >.LC11: > .string " system name = %s\n" > .align 3 >.LC12: > .string " node name = %s\n" > .align 3 >.LC13: > .string " release = %s\n" > .align 3 >.LC14: > .string " version = %s\n" > .align 3 >.LC15: > .string " machine = %s\n" > .align 3 >.LC16: > .string "------------------------------" > .align 3 >.LC17: > .string "\n" > .align 3 >.LC18: > .string "x86_fp80[16]\n" > .align 3 >.LC19: > .string " 0x35, 0xc2, 0x68, 0x21, 0xa2, 0xda, 0x0f, 0xc9,\n" > .align 3 >.LC20: > .string " 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00\n" > .align 3 >.LC21: > .string "out " > .align 3 >.LC22: > .string "0x%02x " > .align 3 >.LC23: > .string " x86_fp80 may be %38.34Le\n" > .align 3 >.LC24: > .string " x86_fp80 or be %18.14g\n" > .align 3 >.LC25: > .string "-------------------------------------------------\n" > .align 3 >.LC26: > .string "pi_fp64le[16]\n" > .align 3 >.LC27: > .string " 0x18, 0x2d, 0x44, 0x54, 0xfb, 0x21, 0x09, 0x40,\n" > .align 3 >.LC28: > .string " 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00\n" > .align 3 >.LC29: > .string " pi_fp64le may be %38.34Le\n" > .align 3 >.LC30: > .string " pi_fp64le or be %18.14g\n" > .align 3 >.LC31: > .string "pi_fp64be[16]\n" > .align 3 >.LC32: > .string " 0x40, 0x09, 0x21, 0xfb, 0x54, 0x44, 0x2d, 0x18,\n" > .align 3 >.LC33: > .string " pi_fp64be may be %38.34Le\n" > .align 3 >.LC34: > .string " pi_fp64be or be %18.14g\n" > .align 3 >.LC35: > .string "pi_fp128le[16]\n" > .align 3 >.LC36: > .string " 0xb8, 0x01, 0x17, 0xc5, 0x8c, 0x89, 0x69, 0x84,\n" > .align 3 >.LC37: > .string " 0xd1, 0x42, 0x44, 0xb5, 0x1f, 0x92, 0x00, 0x40\n" > .align 3 >.LC38: > .string " pi_fp128le may be %38.34Le\n" > .align 3 >.LC39: > .string " pi_fp128le or be %18.14g\n" > .align 3 >.LC40: > .string "pi_fp128be[16]\n" > .align 3 >.LC41: > .string " 0x40, 0x00, 0x92, 0x1f, 0xb5, 0x44, 0x42, 0xd1,\n" > .align 3 >.LC42: > .string " 0x84, 0x69, 0x89, 0x8c, 0xc5, 0x17, 0x01, 0xb8\n" > .align 3 >.LC43: > .string " pi_fp128be may be %38.34Le\n" > .align 3 >.LC44: > .string " pi_fp128be or be %18.14g\n" > .align 3 >.LC45: > .string "%02x " > .align 3 >.LC46: > .string "pi may be %38.34Le\n" > .align 3 >.LC0: > .byte 53 > .byte -62 > .byte 104 > .byte 33 > .byte -94 > .byte -38 > .byte 15 > .byte -55 > .byte 0 > .byte 64 > .byte 0 > .byte 0 > .byte 0 > .byte 0 > .byte 0 > .byte 0 > .align 3 >.LC1: > .byte 24 > .byte 45 > .byte 68 > .byte 84 > .byte -5 > .byte 33 > .byte 9 > .byte 64 > .byte 0 > .byte 0 > .byte 0 > .byte 0 > .byte 0 > .byte 0 > .byte 0 > .byte 0 > .align 3 >.LC2: > .byte 64 > .byte 9 > .byte 33 > .byte -5 > .byte 84 > .byte 68 > .byte 45 > .byte 24 > .byte 0 > .byte 0 > .byte 0 > .byte 0 > .byte 0 > .byte 0 > .byte 0 > .byte 0 > .align 3 >.LC3: > .byte -72 > .byte 1 > .byte 23 > .byte -59 > .byte -116 > .byte -119 > .byte 105 > .byte -124 > .byte -47 > .byte 66 > .byte 68 > .byte -75 > .byte 31 > .byte -110 > .byte 0 > .byte 64 > .align 3 >.LC4: > .byte 64 > .byte 0 > .byte -110 > .byte 31 > .byte -75 > .byte 68 > .byte 66 > .byte -47 > .byte -124 > .byte 105 > .byte -119 > .byte -116 > .byte -59 > .byte 23 > .byte 1 > .byte -72 > .text > .align 1 > .globl main > .type main, @function >main: > addi sp,sp,-1424 > sd ra,1416(sp) > sd s0,1408(sp) > addi s0,sp,1424 > mv a5,a0 > sd a1,-1424(s0) > sw a5,-1412(s0) > lui a5,%hi(.LC5) > ld a4,%lo(.LC5)(a5) > sd a4,-48(s0) > ld a5,%lo(.LC5+8)(a5) > sd a5,-40(s0) > lui a5,%hi(.LC6) > addi a1,a5,%lo(.LC6) > li a0,6 > call setlocale > addi a5,s0,-1328 > mv a0,a5 > call uname > mv a5,a0 > bgez a5,.L4 > lui a5,%hi(__stderrp) > ld a4,%lo(__stderrp)(a5) > lui a5,%hi(.LC7) > addi a1,a5,%lo(.LC7) > mv a0,a4 > call fprintf > lui a5,%hi(.LC8) > addi a0,a5,%lo(.LC8) > call perror > j .L5 >.L4: > lui a5,%hi(.LC9) > addi a0,a5,%lo(.LC9) > call printf > lui a5,%hi(.LC10) > addi a0,a5,%lo(.LC10) > call printf > addi a5,s0,-1328 > mv a1,a5 > lui a5,%hi(.LC11) > addi a0,a5,%lo(.LC11) > call printf > addi a5,s0,-1328 > addi a5,a5,256 > mv a1,a5 > lui a5,%hi(.LC12) > addi a0,a5,%lo(.LC12) > call printf > addi a5,s0,-1328 > addi a5,a5,512 > mv a1,a5 > lui a5,%hi(.LC13) > addi a0,a5,%lo(.LC13) > call printf > addi a5,s0,-1328 > addi a5,a5,768 > mv a1,a5 > lui a5,%hi(.LC14) > addi a0,a5,%lo(.LC14) > call printf > addi a5,s0,-1328 > addi a5,a5,1024 > mv a1,a5 > lui a5,%hi(.LC15) > addi a0,a5,%lo(.LC15) > call printf > lui a5,%hi(.LC9) > addi a0,a5,%lo(.LC9) > call printf > lui a5,%hi(.LC16) > addi a0,a5,%lo(.LC16) > call printf >.L5: > lui a5,%hi(.LC17) > addi a0,a5,%lo(.LC17) > call printf > lui a5,%hi(.LC0) > ld a4,%lo(.LC0)(a5) > sd a4,-1344(s0) > addi a5,a5,%lo(.LC0) > ld a5,8(a5) > sd a5,-1336(s0) > lui a5,%hi(.LC18) > addi a0,a5,%lo(.LC18) > call printf > lui a5,%hi(.LC19) > addi a0,a5,%lo(.LC19) > call printf > lui a5,%hi(.LC20) > addi a0,a5,%lo(.LC20) > call printf > lui a5,%hi(.LC21) > addi a0,a5,%lo(.LC21) > call printf > sw zero,-20(s0) > j .L6 >.L7: > lw a5,-20(s0) > addi a4,s0,-1344 > add a5,a4,a5 > lbu a5,0(a5) > sext.w a5,a5 > mv a1,a5 > lui a5,%hi(.LC22) > addi a0,a5,%lo(.LC22) > call printf > lw a5,-20(s0) > addiw a5,a5,1 > sw a5,-20(s0) >.L6: > lw a5,-20(s0) > sext.w a4,a5 > li a5,15 > ble a4,a5,.L7 > lui a5,%hi(.LC17) > addi a0,a5,%lo(.LC17) > call printf > addi a4,s0,-1344 > ld a5,0(a4) > ld a6,8(a4) > mv a2,a5 > mv a3,a6 > lui a5,%hi(.LC23) > addi a0,a5,%lo(.LC23) > call printf > addi a5,s0,-1344 > fld fa5,0(a5) > fmv.x.d a1,fa5 > lui a5,%hi(.LC24) > addi a0,a5,%lo(.LC24) > call printf > lui a5,%hi(.LC25) > addi a0,a5,%lo(.LC25) > call printf > lui a5,%hi(.LC1) > ld a4,%lo(.LC1)(a5) > sd a4,-1360(s0) > addi a5,a5,%lo(.LC1) > ld a5,8(a5) > sd a5,-1352(s0) > lui a5,%hi(.LC26) > addi a0,a5,%lo(.LC26) > call printf > lui a5,%hi(.LC27) > addi a0,a5,%lo(.LC27) > call printf > lui a5,%hi(.LC28) > addi a0,a5,%lo(.LC28) > call printf > lui a5,%hi(.LC21) > addi a0,a5,%lo(.LC21) > call printf > sw zero,-20(s0) > j .L8 >.L9: > lw a5,-20(s0) > addi a4,s0,-1360 > add a5,a4,a5 > lbu a5,0(a5) > sext.w a5,a5 > mv a1,a5 > lui a5,%hi(.LC22) > addi a0,a5,%lo(.LC22) > call printf > lw a5,-20(s0) > addiw a5,a5,1 > sw a5,-20(s0) >.L8: > lw a5,-20(s0) > sext.w a4,a5 > li a5,15 > ble a4,a5,.L9 > lui a5,%hi(.LC17) > addi a0,a5,%lo(.LC17) > call printf > addi a4,s0,-1360 > ld a5,0(a4) > ld a6,8(a4) > mv a2,a5 > mv a3,a6 > lui a5,%hi(.LC29) > addi a0,a5,%lo(.LC29) > call printf > addi a5,s0,-1360 > fld fa5,0(a5) > fmv.x.d a1,fa5 > lui a5,%hi(.LC30) > addi a0,a5,%lo(.LC30) > call printf > lui a5,%hi(.LC25) > addi a0,a5,%lo(.LC25) > call printf > lui a5,%hi(.LC2) > ld a4,%lo(.LC2)(a5) > sd a4,-1376(s0) > addi a5,a5,%lo(.LC2) > ld a5,8(a5) > sd a5,-1368(s0) > lui a5,%hi(.LC31) > addi a0,a5,%lo(.LC31) > call printf > lui a5,%hi(.LC32) > addi a0,a5,%lo(.LC32) > call printf > lui a5,%hi(.LC28) > addi a0,a5,%lo(.LC28) > call printf > lui a5,%hi(.LC21) > addi a0,a5,%lo(.LC21) > call printf > sw zero,-20(s0) > j .L10 >.L11: > lw a5,-20(s0) > addi a4,s0,-1376 > add a5,a4,a5 > lbu a5,0(a5) > sext.w a5,a5 > mv a1,a5 > lui a5,%hi(.LC22) > addi a0,a5,%lo(.LC22) > call printf > lw a5,-20(s0) > addiw a5,a5,1 > sw a5,-20(s0) >.L10: > lw a5,-20(s0) > sext.w a4,a5 > li a5,15 > ble a4,a5,.L11 > lui a5,%hi(.LC17) > addi a0,a5,%lo(.LC17) > call printf > addi a4,s0,-1376 > ld a5,0(a4) > ld a6,8(a4) > mv a2,a5 > mv a3,a6 > lui a5,%hi(.LC33) > addi a0,a5,%lo(.LC33) > call printf > addi a5,s0,-1376 > fld fa5,0(a5) > fmv.x.d a1,fa5 > lui a5,%hi(.LC34) > addi a0,a5,%lo(.LC34) > call printf > lui a5,%hi(.LC25) > addi a0,a5,%lo(.LC25) > call printf > lui a5,%hi(.LC3) > ld a4,%lo(.LC3)(a5) > sd a4,-1392(s0) > addi a5,a5,%lo(.LC3) > ld a5,8(a5) > sd a5,-1384(s0) > lui a5,%hi(.LC35) > addi a0,a5,%lo(.LC35) > call printf > lui a5,%hi(.LC36) > addi a0,a5,%lo(.LC36) > call printf > lui a5,%hi(.LC37) > addi a0,a5,%lo(.LC37) > call printf > lui a5,%hi(.LC21) > addi a0,a5,%lo(.LC21) > call printf > sw zero,-20(s0) > j .L12 >.L13: > lw a5,-20(s0) > addi a4,s0,-1392 > add a5,a4,a5 > lbu a5,0(a5) > sext.w a5,a5 > mv a1,a5 > lui a5,%hi(.LC22) > addi a0,a5,%lo(.LC22) > call printf > lw a5,-20(s0) > addiw a5,a5,1 > sw a5,-20(s0) >.L12: > lw a5,-20(s0) > sext.w a4,a5 > li a5,15 > ble a4,a5,.L13 > lui a5,%hi(.LC17) > addi a0,a5,%lo(.LC17) > call printf > addi a4,s0,-1392 > ld a5,0(a4) > ld a6,8(a4) > mv a2,a5 > mv a3,a6 > lui a5,%hi(.LC38) > addi a0,a5,%lo(.LC38) > call printf > addi a5,s0,-1392 > fld fa5,0(a5) > fmv.x.d a1,fa5 > lui a5,%hi(.LC39) > addi a0,a5,%lo(.LC39) > call printf > lui a5,%hi(.LC25) > addi a0,a5,%lo(.LC25) > call printf > lui a5,%hi(.LC4) > ld a4,%lo(.LC4)(a5) > sd a4,-1408(s0) > addi a5,a5,%lo(.LC4) > ld a5,8(a5) > sd a5,-1400(s0) > lui a5,%hi(.LC40) > addi a0,a5,%lo(.LC40) > call printf > lui a5,%hi(.LC41) > addi a0,a5,%lo(.LC41) > call printf > lui a5,%hi(.LC42) > addi a0,a5,%lo(.LC42) > call printf > lui a5,%hi(.LC21) > addi a0,a5,%lo(.LC21) > call printf > sw zero,-20(s0) > j .L14 >.L15: > lw a5,-20(s0) > addi a4,s0,-1408 > add a5,a4,a5 > lbu a5,0(a5) > sext.w a5,a5 > mv a1,a5 > lui a5,%hi(.LC22) > addi a0,a5,%lo(.LC22) > call printf > lw a5,-20(s0) > addiw a5,a5,1 > sw a5,-20(s0) >.L14: > lw a5,-20(s0) > sext.w a4,a5 > li a5,15 > ble a4,a5,.L15 > lui a5,%hi(.LC17) > addi a0,a5,%lo(.LC17) > call printf > addi a4,s0,-1408 > ld a5,0(a4) > ld a6,8(a4) > mv a2,a5 > mv a3,a6 > lui a5,%hi(.LC43) > addi a0,a5,%lo(.LC43) > call printf > addi a5,s0,-1408 > fld fa5,0(a5) > fmv.x.d a1,fa5 > lui a5,%hi(.LC44) > addi a0,a5,%lo(.LC44) > call printf > lui a5,%hi(.LC25) > addi a0,a5,%lo(.LC25) > call printf > sw zero,-20(s0) > j .L16 >.L17: > lw a5,-20(s0) > addi a4,s0,-48 > add a5,a4,a5 > lbu a5,0(a5) > sext.w a5,a5 > mv a1,a5 > lui a5,%hi(.LC45) > addi a0,a5,%lo(.LC45) > call printf > lw a5,-20(s0) > addiw a5,a5,1 > sw a5,-20(s0) >.L16: > lw a5,-20(s0) > mv a4,a5 > li a5,15 > bleu a4,a5,.L17 > lui a5,%hi(.LC17) > addi a0,a5,%lo(.LC17) > call printf > ld a5,-48(s0) > ld a6,-40(s0) > mv a2,a5 > mv a3,a6 > lui a5,%hi(.LC46) > addi a0,a5,%lo(.LC46) > call printf > li a5,0 > mv a0,a5 > ld ra,1416(sp) > ld s0,1408(sp) > addi sp,sp,1424 > jr ra > .size main, .-main > .section .rodata > .align 4 >.LC5: > .word 3306619320 > .word 2221509004 > .word 3041149649 > .word 1073779231 > .ident "GCC: (GNU) 8.2.0" >rv64g$ >rv64g$ >rv64g$ echo '16o 1073779231p 3041149649p 2221509004p 3306619320pq' | dc >4000921F >B54442D1 >8469898C >C51701B8 >rv64g$ > > >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 242067
: 209239 |
209240