https://github.com/akkartik/mu/blob/main/linux/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 }