code wiki / (root) / _lens0_probe.nx

_lens0_probe.nx source

↩ module page · 28 lines · 1056 B

1import "nx_syscalls.nx" 2func _p(v: i64) -> i64 { 3 let b: *u8 = sys_mmap(28); var n: i64 = v; var neg: i64 = 0 4 if n < 0 { neg = 1; n = 0 - n } 5 let t2: *u8 = sys_mmap(28); var t: i64 = 0 6 if n == 0 { t2[0] = 48; t = 1 } 7 while n > 0 { t2[t] = 48 + (n % 10); n = n / 10; t = t + 1 } 8 var o: i64 = 0 9 if neg == 1 { b[0] = 45; o = 1 } 10 var i: i64 = 0; while i < t { b[o+i] = t2[t-1-i]; i = i + 1 } 11 b[o+t] = 32; sys_write(1, b, o+t+1); return 0 12} 13func _nl() -> i64 { let z: *u8 = sys_mmap(2); z[0]=10; sys_write(1,z,1); return 0 } 14func main() -> i64 { 15 var mism: i64 = 0 16 let imin: i64 = 0 - 9223372036854775807 - 1 17 let imax: i64 = 9223372036854775807 18 if (imin * 8) != (imin << 3) { mism = mism + 1 } 19 if (imax * 8) != (imax << 3) { mism = mism + 1 } 20 let hv: i64 = 1152921504606846976 21 if (hv * 8) != (hv << 3) { mism = mism + 1 } 22 _p(imin * 8); _p(imin << 3); _nl() 23 _p(hv * 8); _p(hv << 3); _nl() 24 _p(mism); _nl() 25 let x: i64 = 7 26 _p(x << 64); _p(x << 65); _nl() 27 sys_exit(0); return 0 28}