128 bit integers

Kind of works but may be buggy due to LLVM not actually sure
This commit is contained in:
Ginger Bill
2016-11-22 00:13:52 +00:00
parent 24347ced45
commit 36ad9dae43
12 changed files with 568 additions and 221 deletions
+37 -5
View File
@@ -4,16 +4,48 @@
variadic :: proc(args: ..any) {
for i := 0; i < args.count; i++ {
match type a : args[i] {
case int: fmt.println("int", a)
case f32: fmt.println("f32", a)
case f64: fmt.println("f64", a)
case string: fmt.println("string", a)
case u128: fmt.println("u128", a)
case i128: fmt.println("i128", a)
}
}
fmt.println(..args)
}
main :: proc() {
fmt.println("Hellope, everybody!")
variadic(1, 1.0 as f32, 1.0 as f64, "Hellope")
variadic(1 as u128,
1 as i128,
)
x: i128 = 321312321
y: i128 = 123123123
z: i128
x *= x; x *= x
y *= y; y *= y
fmt.println("x =", x)
fmt.println("y =", y)
z = x + y; fmt.println("x + y", z)
z = x - y; fmt.println("x - y", z)
z = x * y; fmt.println("x * y", z)
z = x / y; fmt.println("x / y", z)
z = x % y; fmt.println("x % y", z)
z = x & y; fmt.println("x & y", z)
z = x ~ y; fmt.println("x ~ y", z)
z = x | y; fmt.println("x | y", z)
z = x &~ y; fmt.println("x &~ y", z)
z = -x
z = ~x
b: bool
b = x == y; fmt.println("x == y", b)
b = x != y; fmt.println("x != y", b)
b = x < y; fmt.println("x < y", b)
b = x <= y; fmt.println("x <= y", b)
b = x > y; fmt.println("x > y", b)
b = x >= y; fmt.println("x >= y", b)
}