<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: brucehoult</title><link>https://news.ycombinator.com/user?id=brucehoult</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 17 Aug 2026 09:42:55 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=brucehoult" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by brucehoult in "RISC-V: They Should Have Known Better"]]></title><description><![CDATA[
<p>Also I haven't looked closely but I don't know if you could find space to fit it in the remaining Aarch64 encoding space.<p>The existing a64 conditional branch instructions use a 19 bit field to hold the offset. Add two registers to compare (10 bits) and 3 bits to choose between EQ, NE, LT, LTU, GE, GEU and you're already at 32 bits before having an "opcode" field to choose "RISC-V style conditional branch".<p>Of course you could reduce the branch offset size down to RISC-V's ±4k which only needs 11 bits when you only have 4 byte instructions, but that's still a 24 bit chunk of unused 
opcode space to find.<p>Oh .. looks like 0b10xx is still completely unused. We could grab maybe 1/4 of it<p>So could do ...<p><pre><code>    [31:28] (4 bits):  0b1000 (Fixed primary opcode .. or 0b1001, 0b1010, 0b1011)
    [27:23] (5 bits):  Rs1
    [22:18] (5 bits):  Rs2
    [17:15] (3 bits):  Cond (EQ, NE, LT, GE, LTU, GEU, + possible 2 more)
    [14:4]  (11 bits): Offset (Signed ±4k PC-relative offset)
    [3:0]   (4 bits):  0b0000 (Fixed minor opcode/extension identifier)
</code></pre>
One problem here is this doesn't allow both 32 bit and 64 bit compares. And also the Rs1 and Rs2 are not in the usual places.<p>Maybe...<p><pre><code>    [31:28] (4 bits): 0b1000 (Fixed primary opcode)
    [27:21] (7 bits): Offset[12:6]
    [20:16] (5 bits): Rm
    [15:13] (3 bits): Cond (EQ, NE, LT, GE, LTU, GEU, etc)
    [12:10] (3 bits): Offset[5:3]
    [9:5]   (5 bits): Rn
    [4:2]   (3 bits): Offset[2:0]
    [1]     (1 bit):  sf (Size flag: 0 = 32-bit compare, 1 = 64-bit compare)
    [0]     (1 bit):  0b0 (Fixed)
</code></pre>
I think this fits other instruction formats better .. and gives a ±16k branch range.<p>Some ::coff:: would criticise the split up offset field. Not RISC-V fans of course. And this puts sf in a non-standard place.<p>Some more playing around is needed .. over to you Arm.</p>
]]></description><pubDate>Mon, 17 Aug 2026 04:50:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=49326654</link><dc:creator>brucehoult</dc:creator><comments>https://news.ycombinator.com/item?id=49326654</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49326654</guid></item><item><title><![CDATA[New comment by brucehoult in "RISC-V: They Should Have Known Better"]]></title><description><![CDATA[
<p>SVE2 is compulsory in ARMv9-A, but NEON is optional?</p>
]]></description><pubDate>Sun, 16 Aug 2026 16:17:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=49321377</link><dc:creator>brucehoult</dc:creator><comments>https://news.ycombinator.com/item?id=49321377</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49321377</guid></item><item><title><![CDATA[New comment by brucehoult in "RISC-V: They Should Have Known Better"]]></title><description><![CDATA[
<p>C-Sky and Andes NDS32 were popular enough to be supported by both GCC and the Linux kernel, both switched to RISC-V. ESP32 switched to RISC_V for all new chips.<p>Interestingly Synopsys's ARC's latest version ARC-V is RISC-V.<p>I think all major FPGA vendors now offer fully supported RISC-V soft cores either alongside their older proprietary ISAs or as the latest upgrade. Several (e.g. Microchip and Gowin) have included real RISC-V cores inside FPGAs.</p>
]]></description><pubDate>Sun, 16 Aug 2026 07:58:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=49317876</link><dc:creator>brucehoult</dc:creator><comments>https://news.ycombinator.com/item?id=49317876</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49317876</guid></item><item><title><![CDATA[New comment by brucehoult in "RISC-V: They Should Have Known Better"]]></title><description><![CDATA[
<p>Why? It'll still run fine.<p>Just like Debian still runs on original x86-64-v1 from 1999, not x86-64-v3 (needs AVX2,FMA, BMI1, BMI2, LZCNT) or even x86-64-v3 (needs AVX-512).<p>Similarly, Debian for arm64 still requires only ARMv8.0-A from 2011 not even ARMv8.2-A (everything from A75/A55 to A78/N1/V1) let alone ARMv9-A (A710, A510, X2 and on).<p>Why would they do in the RISC-V world what they totally haven't done in amd64 or arm64?</p>
]]></description><pubDate>Sun, 16 Aug 2026 05:58:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=49317292</link><dc:creator>brucehoult</dc:creator><comments>https://news.ycombinator.com/item?id=49317292</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49317292</guid></item><item><title><![CDATA[New comment by brucehoult in "RISC-V: They Should Have Known Better"]]></title><description><![CDATA[
<p>Not me for sure. I have no idea about you. Of household name companies I've only worked at Mozilla and Samsung R&D. And SiFive if you count people in threads such as this.<p>I could of course be wrong but I think the publicly known history sets the pattern pretty reliably for the speculation.</p>
]]></description><pubDate>Sun, 16 Aug 2026 05:35:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=49317187</link><dc:creator>brucehoult</dc:creator><comments>https://news.ycombinator.com/item?id=49317187</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49317187</guid></item><item><title><![CDATA[New comment by brucehoult in "RISC-V: They Should Have Known Better"]]></title><description><![CDATA[
<p>Such as?<p>There is still plenty of unused 32 bit (30 bit) opcode space.</p>
]]></description><pubDate>Sun, 16 Aug 2026 05:27:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=49317168</link><dc:creator>brucehoult</dc:creator><comments>https://news.ycombinator.com/item?id=49317168</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49317168</guid></item><item><title><![CDATA[New comment by brucehoult in "RISC-V: They Should Have Known Better"]]></title><description><![CDATA[
<p>I specified "popular 64 bit ISA", which comes down to amd64 and arm64. But you can include Elbrus and LoongArch if you want. Or POWER. Or Itanium.<p>> I assembly by hand almost any function that is not too simple I can make it shorter on Cortex-M33 than on RISC-V<p>Not if you use the RISC-V ISA properly.</p>
]]></description><pubDate>Sun, 16 Aug 2026 05:26:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=49317165</link><dc:creator>brucehoult</dc:creator><comments>https://news.ycombinator.com/item?id=49317165</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49317165</guid></item><item><title><![CDATA[New comment by brucehoult in "RISC-V: They Should Have Known Better"]]></title><description><![CDATA[
<p>You can choose Arm in one pair and RISC-V in the other pair if you want.</p>
]]></description><pubDate>Sun, 16 Aug 2026 05:21:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=49317142</link><dc:creator>brucehoult</dc:creator><comments>https://news.ycombinator.com/item?id=49317142</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49317142</guid></item><item><title><![CDATA[New comment by brucehoult in "RISC-V: They Should Have Known Better"]]></title><description><![CDATA[
<p>No, RISC-V code is much more compact than Amd64. This is easily demonstrated on any real application, such as those in your favourite Linux distribution.</p>
]]></description><pubDate>Sun, 16 Aug 2026 05:20:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=49317139</link><dc:creator>brucehoult</dc:creator><comments>https://news.ycombinator.com/item?id=49317139</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49317139</guid></item><item><title><![CDATA[New comment by brucehoult in "RISC-V: They Should Have Known Better"]]></title><description><![CDATA[
<p>It's not even double, because half of them are RVC-only decoders.</p>
]]></description><pubDate>Sat, 15 Aug 2026 09:18:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=49309038</link><dc:creator>brucehoult</dc:creator><comments>https://news.ycombinator.com/item?id=49309038</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49309038</guid></item><item><title><![CDATA[New comment by brucehoult in "RISC-V: They Should Have Known Better"]]></title><description><![CDATA[
<p>And Arm dropped a T16-like encoding entirely from their 64 bit instruction set.<p>If they did everything exactly the same they would be the same ISA not different ISAs.<p>It's just as easy to point to things that RVC can do that T16 can't.<p>You need to look at a far larger picture to decide on who made the better decisions overall.</p>
]]></description><pubDate>Sat, 15 Aug 2026 05:59:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=49308063</link><dc:creator>brucehoult</dc:creator><comments>https://news.ycombinator.com/item?id=49308063</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49308063</guid></item><item><title><![CDATA[New comment by brucehoult in "RISC-V: They Should Have Known Better"]]></title><description><![CDATA[
<p>There is zero chance that Apple doesn't have MacOS and iOS running on RISC-V in the lab.<p>They did that with x86 and Arm half a decade before any announcement about a switch, not to mention a number of other ISAs that didn't make it to shipping (e.g. M88k) and probably ones that word has never leaked about. IA64, anyone?<p>They're too large and rich and risk-averse to *not* do it.</p>
]]></description><pubDate>Sat, 15 Aug 2026 05:19:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=49307878</link><dc:creator>brucehoult</dc:creator><comments>https://news.ycombinator.com/item?id=49307878</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49307878</guid></item><item><title><![CDATA[New comment by brucehoult in "RISC-V: They Should Have Known Better"]]></title><description><![CDATA[
<p>History is much easier than prediction.<p>I'm with Jim Keller when he says that in time the fastest CPUs will be RISC-V ones.</p>
]]></description><pubDate>Sat, 15 Aug 2026 05:15:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=49307861</link><dc:creator>brucehoult</dc:creator><comments>https://news.ycombinator.com/item?id=49307861</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49307861</guid></item><item><title><![CDATA[New comment by brucehoult in "RISC-V: They Should Have Known Better"]]></title><description><![CDATA[
<p>> you can use the same base trick behind a carry lookahead adder<p>YESSSS.<p>I've been pointing this out for years and years.<p>By the point that you're looking at the same propagation delay as a common 64 bit adder you're decoding 64 chunks of 16 bits per cycle. That's 128 bytes, or a 32-64 instructions wide decoder.<p>That is so much wider than anyone is making or contemplating — or that even makes sense given the size of basic blocks — that it's just a non-issue.</p>
]]></description><pubDate>Sat, 15 Aug 2026 05:12:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=49307842</link><dc:creator>brucehoult</dc:creator><comments>https://news.ycombinator.com/item?id=49307842</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49307842</guid></item><item><title><![CDATA[New comment by brucehoult in "RISC-V: They Should Have Known Better"]]></title><description><![CDATA[
<p>It's not wasted when it makes programs overall smaller, as it does.</p>
]]></description><pubDate>Sat, 15 Aug 2026 05:03:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=49307799</link><dc:creator>brucehoult</dc:creator><comments>https://news.ycombinator.com/item?id=49307799</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49307799</guid></item><item><title><![CDATA[New comment by brucehoult in "RISC-V: They Should Have Known Better"]]></title><description><![CDATA[
<p>Ubuntu 24.04 LTS exists and needs only RV64GC and will be supported and enhanced for many more years.<p>Debian has no plans to require more than RV64GC.<p>RVA23 is a very good thing in certain markets, but nothing forces you to support it for a personal project.</p>
]]></description><pubDate>Sat, 15 Aug 2026 05:00:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=49307782</link><dc:creator>brucehoult</dc:creator><comments>https://news.ycombinator.com/item?id=49307782</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49307782</guid></item><item><title><![CDATA[New comment by brucehoult in "RISC-V: They Should Have Known Better"]]></title><description><![CDATA[
<p>And all modern high performance Arm and x86 cores do more fusion than RISC-V cores that are currently on the market.<p>Intel has being fusing `CMP` and `Bcc` since Core 2 and AMD since Zen 1.<p>This is<p>- already one instruction in RISC-V<p>- an *extremely* common pattern, often occurring once every 5 or 6 instructions.</p>
]]></description><pubDate>Sat, 15 Aug 2026 04:54:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=49307759</link><dc:creator>brucehoult</dc:creator><comments>https://news.ycombinator.com/item?id=49307759</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49307759</guid></item><item><title><![CDATA[New comment by brucehoult in "RISC-V: They Should Have Known Better"]]></title><description><![CDATA[
<p>Performance is subject to debate and quality of implementation and whether such implementations will ever be financed and made ...<p>But *code size* is a demonstrable fact.<p>RISC-V has by far the most compact code of any popular 64 bit ISA, and that was true even of RV64GC. The gap has only widened with RVA23.<p>Just load up your favourite OS (e.g. Ubuntu 26.04) for various ISAs in Docker and compare the `text` size of various binaries, individually or in aggregate.<p>In 32 bit ARMv7-M / ARMv7-A had a small code size lead over RV32IMAC, but this is reversed in modern RISC-V e.g. if you look at RISC-V Hazard3 vs Arm Cortex-M33 in the RP2350 (Raspberry Pi Pico 2) where you can trivially change one option setting in your project and recompile and test.<p>The only exception is that the M33 has a single-precision FPU, which neither the Hazard3 nor the Cortex-M0+ in the RP2040 have.</p>
]]></description><pubDate>Sat, 15 Aug 2026 04:50:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=49307736</link><dc:creator>brucehoult</dc:creator><comments>https://news.ycombinator.com/item?id=49307736</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49307736</guid></item><item><title><![CDATA[New comment by brucehoult in "RISC-V: They Should Have Known Better"]]></title><description><![CDATA[
<p>Luke is too modest. Something in the region of 5 million chips containing his hobby CPU have shipped since launch on August 8, 2024.</p>
]]></description><pubDate>Sat, 15 Aug 2026 04:38:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=49307687</link><dc:creator>brucehoult</dc:creator><comments>https://news.ycombinator.com/item?id=49307687</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49307687</guid></item><item><title><![CDATA[New comment by brucehoult in "Ask HN: Have you used LLMs to reinvigorate you niche programming community?"]]></title><description><![CDATA[
<p>In the distant past (2002-2003) I used two niche languages for the same programs across PowerPC, x86, SPARC, and PA-RISC:<p>- Dylan<p>- Scheme<p>It helped immensely that both Gwydion Dylan and Chicken Scheme compile their respective niche languages to portable C code.<p>Now emitting LLVM IR is an even slightly better technique. Except for PA-RISC. So GCC 15 (or HEAD) and C generation it is ... it's not bad using modern headers with portability defines such as `uint32_t`, ability to return at least a pair of values in registers, or tail calls using all argument registers if you convert to CPS (as e.g. Chicken does)</p>
]]></description><pubDate>Wed, 12 Aug 2026 06:44:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=49268648</link><dc:creator>brucehoult</dc:creator><comments>https://news.ycombinator.com/item?id=49268648</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49268648</guid></item></channel></rss>