|
@@ -857,6 +857,10 @@ fn main() {
|
|
|
);
|
|
|
|
|
|
// int/shift.rs
|
|
|
+ gen(
|
|
|
+ |(a, b): (MyU32, MyU32)| Some(a.0 << (b.0 % 32)),
|
|
|
+ "builtins::int::shift::__ashlsi3(a, b % 32)",
|
|
|
+ );
|
|
|
gen(
|
|
|
|(a, b): (MyU64, MyU32)| Some(a.0 << (b.0 % 64)),
|
|
|
"builtins::int::shift::__ashldi3(a, b % 64)",
|
|
@@ -865,6 +869,10 @@ fn main() {
|
|
|
|(a, b): (MyU128, MyU32)| Some(a.0 << (b.0 % 128)),
|
|
|
"builtins::int::shift::__ashlti3(a, b % 128)",
|
|
|
);
|
|
|
+ gen(
|
|
|
+ |(a, b): (MyI32, MyU32)| Some(a.0 >> (b.0 % 32)),
|
|
|
+ "builtins::int::shift::__ashrsi3(a, b % 32)",
|
|
|
+ );
|
|
|
gen(
|
|
|
|(a, b): (MyI64, MyU32)| Some(a.0 >> (b.0 % 64)),
|
|
|
"builtins::int::shift::__ashrdi3(a, b % 64)",
|
|
@@ -873,6 +881,10 @@ fn main() {
|
|
|
|(a, b): (MyI128, MyU32)| Some(a.0 >> (b.0 % 128)),
|
|
|
"builtins::int::shift::__ashrti3(a, b % 128)",
|
|
|
);
|
|
|
+ gen(
|
|
|
+ |(a, b): (MyU32, MyU32)| Some(a.0 >> (b.0 % 32)),
|
|
|
+ "builtins::int::shift::__lshrsi3(a, b % 32)",
|
|
|
+ );
|
|
|
gen(
|
|
|
|(a, b): (MyU64, MyU32)| Some(a.0 >> (b.0 % 64)),
|
|
|
"builtins::int::shift::__lshrdi3(a, b % 64)",
|
|
@@ -1285,6 +1297,7 @@ my_integer! {
|
|
|
struct MyI32(i32);
|
|
|
struct MyI64(i64);
|
|
|
struct MyI128(i128);
|
|
|
+ struct MyU16(u16);
|
|
|
struct MyU32(u32);
|
|
|
struct MyU64(u64);
|
|
|
struct MyU128(u128);
|