Stephen Hoffman<p><span class="h-card" translate="no"><a href="https://mstdn.ca/@jfmezei" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>jfmezei</span></a></span> Assembler floating point? Some. </p><p>OpenVMS didn’t have any FP in the kernel when last I checked, and the operating system drivers didn’t have FP.</p><p>Whole lot of integer, though.</p><p>There was more than a little FP code in the distribution kit in user mode, though.</p><p>And in the compilers, obviously.</p><p>I don’t know off-hand what the graphics drivers were doing with FP, if anything.</p><p>There was a fifty-some page design and detail spec created for the Alpha-to-Itanium port, around floating point. Most of the hassles there involved the migration of existing code and data to IEEE floating point, or of using newly-created routines that emulated VAX FP on Itanium. Alpha had both IEEE and VAX FP, so various existing code was not switched. Itanium used IEEE and lacked VAX FP.</p><p>Amusingly, it was possible for a faulty floating point accelerator to cause the VAX/VMS kernel to bugcheck in the lock manager though, as occasionally happened with FP780 on VAX-11/780. This bugcheck even though the lock manager had no floating point, it did have integer multiply, and FP780 also accelerated integer multiply. Hence, boom.</p><p>Ignoring shaders whether Apple Metal or otherwise, and ignoring OpenCL and other such code, and ignoring other GPU-accelerated processing, and ignoring co-processor boards, all which can do their own thing with their own processing, I/O controllers only deal with the *host* instruction set when the host is executing something from the controller firmware store (think “ROM”), whether that’s native instructions or something else like EFI (UEFI) byte code. </p><p><a href="https://developer.apple.com/metal/shader-converter/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">developer.apple.com/metal/shad</span><span class="invisible">er-converter/</span></a></p><p><a href="https://en.wikipedia.org/wiki/OpenCL" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">en.wikipedia.org/wiki/OpenCL</span><span class="invisible"></span></a></p><p><a href="https://uefi.org/specs/UEFI/2.10/22_EFI_Byte_Code_Virtual_Machine.html" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">uefi.org/specs/UEFI/2.10/22_EF</span><span class="invisible">I_Byte_Code_Virtual_Machine.html</span></a></p><p>See also CUDA, Vulkan, DirectX, etc.</p><p>TL;DR: the design of modern computers has shifted substantially from the simplistic scattering-of-boxes conceptual descriptions that were (and still are?) taught in many computing classes. Most (all?) modern computers have numerous different processors and instruction sets, with different data types, with multiple operating systems, etc., all active in parallel.</p><p><a href="https://infosec.exchange/tags/computerarchitecture" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>computerarchitecture</span></a> <a href="https://infosec.exchange/tags/ComputerDesign" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ComputerDesign</span></a> <a href="https://infosec.exchange/tags/vulkan" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>vulkan</span></a> <a href="https://infosec.exchange/tags/cuda" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>cuda</span></a> <a href="https://infosec.exchange/tags/directx" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>directx</span></a> <a href="https://infosec.exchange/tags/efi" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>efi</span></a> <a href="https://infosec.exchange/tags/uefi" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>uefi</span></a> <a href="https://infosec.exchange/tags/vax" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>vax</span></a> <a href="https://infosec.exchange/tags/DigitalEquipmentCorporation" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>DigitalEquipmentCorporation</span></a> <a href="https://infosec.exchange/tags/openvms" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>openvms</span></a> <a href="https://infosec.exchange/tags/apple" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>apple</span></a> <a href="https://infosec.exchange/tags/applemetal" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>applemetal</span></a> <a href="https://infosec.exchange/tags/alpha" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>alpha</span></a> <a href="https://infosec.exchange/tags/itanium" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>itanium</span></a></p>