https://github.com/akkartik/mu/blob/main/baremetal/408float.mu
1
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 }