https://github.com/akkartik/mu/blob/main/408float.mu

     1 # Some quick-n-dirty ways to create floats.
     2
     3 fn fill-in-rational _out: (addr float), nr: int, dr: int {
     4   var out/edi: (addr float) <- copy _out
     5   var result/xmm0: float <- convert nr
     6   var divisor/xmm1: float <- convert dr
     7   result <- divide divisor
     8   copy-to *out, result
     9 }
    10
    11 fn fill-in-sqrt _out: (addr float), n: int {
    12   var out/edi: (addr float) <- copy _out
    13   var result/xmm0: float <- convert n
    14   result <- square-root result
    15   copy-to *out, result
    16 }
    17
    18 fn rational nr: int, dr: int -> _/xmm0: float {
    19   var result/xmm0: float <- convert nr
    20   var divisor/xmm1: float <- convert dr
    21   result <- divide divisor
    22   return result
    23 }