Deutsch English Français Italiano |
<v9e9nk$3i0qi$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!2.eu.feeder.erje.net!feeder.erje.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: BGB <cr88192@gmail.com> Newsgroups: comp.arch Subject: Re: My 66000 and High word facility Date: Mon, 12 Aug 2024 19:34:55 -0500 Organization: A noiseless patient Spider Lines: 553 Message-ID: <v9e9nk$3i0qi$1@dont-email.me> References: <v98asi$rulo$1@dont-email.me> <38055f09c5d32ab77b9e3f1c7b979fb4@www.novabbs.org> <v991kh$vu8g$1@dont-email.me> <2024Aug11.163333@mips.complang.tuwien.ac.at> <v9ath5$2qgnb$1@dont-email.me> <2024Aug12.082936@mips.complang.tuwien.ac.at> <130df049c4c97984986767736b5b037a@www.novabbs.org> <v9dnmv$3efnj$1@dont-email.me> <acb76cee233f19672f2ad0380c9cd06e@www.novabbs.org> <v9dt2a$3fdml$1@dont-email.me> <27b9630c6cd23b6ac1251bb3416ce1cf@www.novabbs.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Tue, 13 Aug 2024 02:35:01 +0200 (CEST) Injection-Info: dont-email.me; posting-host="4bbbae8d1cf8f815239b318b20681abd"; logging-data="3736402"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19iYrnVTHGCKU0jL1wxMxtWFapkGmTfKgw=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:Q9aVCdyPHrRsW/QVru8n3qrV1d0= In-Reply-To: <27b9630c6cd23b6ac1251bb3416ce1cf@www.novabbs.org> Content-Language: en-US Bytes: 19217 On 8/12/2024 5:35 PM, MitchAlsup1 wrote: > On Mon, 12 Aug 2024 20:58:45 +0000, BGB wrote: > >> On 8/12/2024 3:12 PM, MitchAlsup1 wrote: > >>> See polpak:: r8_erf() >>> >>> >>> r8_erf: ; @r8_erf >>> ; %bb.0: >>> fabs r2,r1 >>> fcmp r3,r2,#0x3EF00000 >>> bngt r3,.LBB141_5 >>> ; %bb.1: >>> fcmp r3,r2,#4 >>> bngt r3,.LBB141_6 >>> ; %bb.2: >>> fcmp r3,r2,#0x403A8B020C49BA5E >>> bnlt r3,.LBB141_7 >>> ; %bb.3: >>> fmul r3,r1,r1 >>> fdiv r3,#1,r3 >>> mov r4,#0x3F90B4FB18B485C7 >>> fmac r4,r3,r4,#0x3FD38A78B9F065F6 >>> fadd r5,r3,#0x40048C54508800DB >>> fmac r4,r3,r4,#0x3FD70FE40E2425B8 >>> fmac r5,r3,r5,#0x3FFDF79D6855F0AD >>> fmac r4,r3,r4,#0x3FC0199D980A842F >>> fmac r5,r3,r5,#0x3FE0E4993E122C39 >>> fmac r4,r3,r4,#0x3F9078448CD6C5B5 >>> fmac r5,r3,r5,#0x3FAEFC42917D7DE7 >>> fmac r4,r3,r4,#0x3F4595FD0D71E33C >>> fmul r4,r3,r4 >>> fmac r3,r3,r5,#0x3F632147A014BAD1 >>> fdiv r3,r4,r3 >>> fadd r3,#0x3FE20DD750429B6D,-r3 >>> fdiv r3,r3,r2 >>> br .LBB141_4 >>> LBB141_5: >>> fmul r3,r1,r1 >>> fcmp r2,r2,#0x3C9FFE5AB7E8AD5E >>> sra r2,r2,#8,#1 >>> cvtsd r4,#0 >>> mux r2,r2,r3,r4 >>> mov r3,#0x3FC7C7905A31C322 >>> fmac r3,r2,r3,#0x400949FB3ED443E9 >>> fadd r4,r2,#0x403799EE342FB2DE >>> fmac r3,r2,r3,#0x405C774E4D365DA3 >>> fmac r4,r2,r4,#0x406E80C9D57E55B8 >>> fmac r3,r2,r3,#0x407797C38897528B >>> fmac r4,r2,r4,#0x40940A77529CADC8 >>> fmac r3,r2,r3,#0x40A912C1535D121A >>> fmul r1,r3,r1 >>> fmac r2,r2,r4,#0x40A63879423B87AD >>> fdiv r2,r1,r2 >>> mov r1,r2 >>> ret >>> LBB141_6: >>> mov r3,#0x3E571E703C5F5815 >>> fmac r3,r2,r3,#0x3FE20DD508EB103E >>> fadd r4,r2,#0x402F7D66F486DED5 >>> fmac r3,r2,r3,#0x4021C42C35B8BC02 >>> fmac r4,r2,r4,#0x405D6C69B0FFCDE7 >>> fmac r3,r2,r3,#0x405087A0D1C420D0 >>> fmac r4,r2,r4,#0x4080C972E588749E >>> fmac r3,r2,r3,#0x4072AA2986ABA462 >>> fmac r4,r2,r4,#0x4099558EECA29D27 >>> fmac r3,r2,r3,#0x408B8F9E262B9FA3 >>> fmac r4,r2,r4,#0x40A9B599356D1202 >>> fmac r3,r2,r3,#0x409AC030C15DC8D7 >>> fmac r4,r2,r4,#0x40B10A9E7CB10E86 >>> fmac r3,r2,r3,#0x40A0062821236F6B >>> fmac r4,r2,r4,#0x40AADEBC3FC90DBD >>> fmac r3,r2,r3,#0x4093395B7FD2FC8E >>> fmac r4,r2,r4,#0x4093395B7FD35F61 >>> fdiv r3,r3,r4 >>> LBB141_4: >>> fmul r4,r2,#16 >>> fmul r4,r4,#0x3D800000 >>> rnd r4,r4,#5 >>> fadd r5,r2,-r4 >>> fadd r2,r2,r4 >>> fmul r4,r4,-r4 >>> fexp r4,r4 >>> fmul r2,r2,-r5 >>> fexp r2,r2 >>> fmul r2,r4,r2 >>> fadd r2,#0,-r2 >>> fmac r2,r2,r3,#0x3F000000 >>> fadd r2,r2,#0x3F000000 >>> pdlt r1,T >>> fadd r2,#0,-r2 >>> mov r1,r2 >>> ret >>> LBB141_7: >>> fcmp r1,r1,#0 >>> sra r1,r1,#8,#1 >>> cvtsd r2,#-1 >>> cvtsd r3,#1 >>> mux r2,r1,r3,r2 >>> mov r1,r2 >>> ret >>> >>> All of the constants are use once ! >>> >>> RISC-V takes 240 instructions and uses 342 words of >>> memory {.text, .data, .rodata} >>> >>> My 66000 takes 85 instructions and uses 169 words of >>> memory {.text, .data, .rodata} >> >> >> FWIW: >> FADD Rm, Imm64f, Rn //XG2 Only >> FADD Rm, Imm56f, Rn // >> >> And: >> FMUL Rm, Imm64f, Rn //XG2 Only >> FMUL Rm, Imm56f, Rn // >> > > Why don't yuo download polpack, compile it, and state how many > instructions it takes and how many words of storage it takes ?? Found what I assume you are talking about. Needed to add "polpak_test.c" as otherwise BGBCC lacks a main and prunes everything; Also needed to hack over some compiler holes related to "complex _Double" to get it to build; Also needed to stub over some library functions that were added in C99 but missing in my C library. So, initial result (BJX2 XG2): 128K ".text"; 21K ".strtab" (strings) 4K ".data" Instruction Count: ~ 28K This is with a static linked C library, but used one of the lighter-weight ones (that does not include the whole OS kernel linked in). Seems to result in around 41K lines of ASM output, but this includes blank lines, comments, and labels. This seems to be 117K with an x86-64 build (dynamically linked C library). RV64G (riscv64-unknown-elf-gcc -O3): 231K of ".text" Did try "risc64-unknown-linux-gnu-gcc", but it broke due to apparently lacking "complex.h" and similar. As for "r8_erf()": <=== r8_erf: MOV LR, R1 BSR __prolog_0005_00000200FFFF ADD -800, SP MOV.Q RQ4, (SP, 928) LEA.Q (SP, 192), RQ3 MOV.Q RQ3, (SP, 184) ========== REMAINDER OF ARTICLE TRUNCATED ==========