File tree 4 files changed +92
-0
lines changed
4 files changed +92
-0
lines changed Original file line number Diff line number Diff line change
1
+ #[ no_mangle]
2
+ pub extern fn subi32 ( a : i32 , b : i32 ) ->i32 { a-b}
3
+ #[ no_mangle]
4
+ pub extern fn muli32 ( a : i32 , b : i32 ) ->i32 { a* b}
5
+ //#[no_mangle]
6
+ //pub extern fn divi32(a:i32,b:i32)->i32{a/b}
7
+ //#[no_mangle]
8
+ //pub extern fn remi32(a:i32,b:i32)->i32{a%b}
9
+ #[ no_mangle]
10
+ pub extern fn shli32 ( a : i32 , b : i32 ) ->i32 { a<<b}
11
+ #[ no_mangle]
12
+ pub extern fn shri32 ( a : i32 , b : i32 ) ->i32 { a>>b}
13
+
14
+ #[ no_mangle]
15
+ pub extern fn eq ( a : i32 , b : i32 ) ->bool { a == b}
16
+
17
+ //More complex tests
18
+ #[ no_mangle]
19
+ pub extern fn sqr_mag ( ax : i32 , ay : i32 ) ->i32 { ax* ax + ay* ay}
20
+ #[ no_mangle]
21
+ pub extern fn pow2 ( power : i32 ) ->i32 { 1 <<power}
Original file line number Diff line number Diff line change
1
+
2
+ #[ no_mangle]
3
+ pub extern fn seven_if_even ( input : i32 ) ->i8 {
4
+ if input % 2 == 0 {
5
+ 7
6
+ }
7
+ else {
8
+ 0
9
+ }
10
+ }
11
+ #[ no_mangle]
12
+ pub extern fn test_match ( pi_digit : i8 ) ->i8 {
13
+ match pi_digit{
14
+ 0 =>3 ,
15
+ 1 =>1 ,
16
+ 2 =>4 ,
17
+ 3 =>1 ,
18
+ 4 =>5 ,
19
+ 5 =>9 ,
20
+ 6 =>2 ,
21
+ 7 =>6 ,
22
+ 8 =>5 ,
23
+ 9 =>3 ,
24
+ 10 =>5 ,
25
+ _=>9 ,
26
+ }
27
+ }
Original file line number Diff line number Diff line change
1
+ #[ no_mangle]
2
+ pub extern fn cast_f32_to_i32 ( a : f32 ) ->i32 { a as i32 }
3
+ #[ no_mangle]
4
+ pub extern fn cast_i8_to_i32 ( a : i8 ) ->i32 { a as i32 }
5
+ #[ no_mangle]
6
+ pub extern fn cast_f32_to_i8 ( a : f32 ) ->i8 { a as i8 }
7
+ #[ no_mangle]
8
+ pub extern fn cast_i64_to_i32 ( a : i64 ) ->i32 { a as i32 }
9
+
10
+ #[ no_mangle]
11
+ pub extern fn casti32tof32 ( a : i32 ) ->f32 { a as f32 }
Original file line number Diff line number Diff line change
1
+ #[ no_mangle]
2
+ pub extern fn addisize ( a : isize , b : isize ) ->isize { a+b}
3
+ #[ no_mangle]
4
+ pub extern fn addi128 ( a : i128 , b : i128 ) ->i128 { a+b}
5
+ #[ no_mangle]
6
+ pub extern fn addi64 ( a : i64 , b : i64 ) ->i64 { a+b}
7
+ #[ no_mangle]
8
+ pub extern fn addi32 ( a : i32 , b : i32 ) ->i32 { a+b}
9
+ #[ no_mangle]
10
+ pub extern fn addi16 ( a : i16 , b : i16 ) ->i16 { a+b}
11
+ #[ no_mangle]
12
+ pub extern fn addi8 ( a : i8 , b : i8 ) ->i8 { a+b}
13
+
14
+ #[ no_mangle]
15
+ pub extern fn addusize ( a : usize , b : usize ) ->usize { a+b}
16
+ #[ no_mangle]
17
+ pub extern fn addu128 ( a : u128 , b : u128 ) ->u128 { a+b}
18
+ #[ no_mangle]
19
+ pub extern fn addu64 ( a : u64 , b : u64 ) ->u64 { a+b}
20
+ #[ no_mangle]
21
+ pub extern fn addu32 ( a : u32 , b : u32 ) ->u32 { a+b}
22
+ #[ no_mangle]
23
+ pub extern fn addu16 ( a : u16 , b : u16 ) ->u16 { a+b}
24
+ #[ no_mangle]
25
+ pub extern fn addu8 ( a : u8 , b : u8 ) ->u8 { a+b}
26
+
27
+ #[ no_mangle]
28
+ pub extern fn addf32 ( a : f32 , b : f32 ) ->f32 { a+b}
29
+ #[ no_mangle]
30
+ pub extern fn addf64 ( a : f64 , b : f64 ) ->f64 { a+b}
31
+ #[ no_mangle]
32
+ pub extern fn boolident ( a : bool ) ->bool { a}
33
+
You can’t perform that action at this time.
0 commit comments