|
@@ -24,118 +24,27 @@
|
|
*/
|
|
*/
|
|
package haxe;
|
|
package haxe;
|
|
|
|
|
|
-#if doc_gen
|
|
|
|
-
|
|
|
|
-class Int32 {
|
|
|
|
-
|
|
|
|
- public static inline function make( a : Int, b : Int ) : Int32 {
|
|
|
|
- return cast ((a << 16) | b);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public static inline function ofInt( x : Int ) : Int32 {
|
|
|
|
- return clamp(cast x);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- static inline function clamp( x : Int32 ) : Int32 {
|
|
|
|
- #if (js || flash8)
|
|
|
|
- return cast ((cast x) | 0); // force to-int convertion
|
|
|
|
- #else
|
|
|
|
- return x;
|
|
|
|
- #end
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public static inline function toInt( x : Int32 ) : Int {
|
|
|
|
- if( (((cast x) >> 30) & 1) != ((cast x) >>> 31) ) throw "Overflow " + x;
|
|
|
|
- #if php
|
|
|
|
- return (cast x) & 0xFFFFFFFF;
|
|
|
|
- #else
|
|
|
|
- return cast x;
|
|
|
|
- #end
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public static inline function toNativeInt( x : Int32 ) : Int {
|
|
|
|
- return cast x;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public static inline function add( a : Int32, b : Int32 ) : Int32 {
|
|
|
|
- return clamp(cast ((cast a) + (cast b)));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public static inline function sub( a : Int32, b : Int32 ) : Int32 {
|
|
|
|
- return clamp(cast ((cast a) - (cast b)));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public static inline function mul( a : Int32, b : Int32 ) : Int32 {
|
|
|
|
- return clamp(cast ((cast a) * (cast b)));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public static inline function div( a : Int32, b : Int32 ) : Int32 {
|
|
|
|
- return cast Std.int(cast(a) / cast(b));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public static inline function mod( a : Int32, b : Int32 ) : Int32 {
|
|
|
|
- return cast (cast(a) % cast(b));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public static inline function shl( a : Int32, b : Int ) : Int32 {
|
|
|
|
- return cast ((cast a) << b);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public static inline function shr( a : Int32, b : Int ) : Int32 {
|
|
|
|
- return cast ((cast a) >> b);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public static inline function ushr( a : Int32, b : Int ) : Int32 {
|
|
|
|
- return cast ((cast a) >>> b);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public static inline function and( a : Int32, b : Int32 ) : Int32 {
|
|
|
|
- return cast ((cast a) & (cast b));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public static inline function or( a : Int32, b : Int32 ) : Int32 {
|
|
|
|
- return cast ((cast a) | (cast b));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public static inline function xor( a : Int32, b : Int32 ) : Int32 {
|
|
|
|
- return cast ((cast a) ^ (cast b));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public static inline function neg( a : Int32 ) : Int32 {
|
|
|
|
- return cast -(cast a);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public static inline function isNeg( a : Int32 ) : Bool {
|
|
|
|
- return (cast a) < 0;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public static inline function isZero( a : Int32 ) : Bool {
|
|
|
|
- return (cast a) == 0;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public static inline function complement( a : Int32 ) : Int32 {
|
|
|
|
- return cast ~(cast a);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public static inline function compare( a : Int32, b : Int32 ) : Int {
|
|
|
|
- #if neko
|
|
|
|
- return untyped __i32__compare(a,b);
|
|
|
|
- #else
|
|
|
|
- return untyped a - b;
|
|
|
|
- #end
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- Compare two Int32 in unsigned mode.
|
|
|
|
- **/
|
|
|
|
- public static function ucompare( a : Int32, b : Int32 ) : Int {
|
|
|
|
- if( isNeg(a) )
|
|
|
|
- return isNeg(b) ? compare(complement(b),complement(a)) : 1;
|
|
|
|
- return isNeg(b) ? -1 : compare(a,b);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
+@:native("cpp.CppInt32__") extern class Int32 {
|
|
|
|
+ public static function make( a : Int, b : Int ) : Int32;
|
|
|
|
+ public static function ofInt( x : Int ) : Int32;
|
|
|
|
+ public static function toInt( x : Int32 ) : Int;
|
|
|
|
+ public static function add( a : Int32, b : Int32 ) : Int32;
|
|
|
|
+ public static function sub( a : Int32, b : Int32 ) : Int32;
|
|
|
|
+ public static function mul( a : Int32, b : Int32 ) : Int32;
|
|
|
|
+ public static function div( a : Int32, b : Int32 ) : Int32;
|
|
|
|
+ public static function mod( a : Int32, b : Int32 ) : Int32;
|
|
|
|
+ public static function shl( a : Int32, b : Int ) : Int32;
|
|
|
|
+ public static function shr( a : Int32, b : Int ) : Int32;
|
|
|
|
+ public static function ushr( a : Int32, b : Int ) : Int32;
|
|
|
|
+ public static function and( a : Int32, b : Int32 ) : Int32;
|
|
|
|
+ public static function or( a : Int32, b : Int32 ) : Int32;
|
|
|
|
+ public static function xor( a : Int32, b : Int32 ) : Int32;
|
|
|
|
+ public static function neg( a : Int32 ) : Int32;
|
|
|
|
+ public static function complement( a : Int32 ) : Int32;
|
|
|
|
+ public static function compare( a : Int32, b : Int32 ) : Int;
|
|
|
|
+ public static function isNeg( a : Int32 ) : Bool;
|
|
|
|
+ public static function isZero( a : Int32 ) : Bool;
|
|
|
|
+ public static function ucompare( a : Int32, b : Int32 ) : Int;
|
|
|
|
+ public static function toNativeInt(a:Int32) : Int;
|
|
}
|
|
}
|
|
|
|
|
|
-#else
|
|
|
|
-typedef Int32 = cpp.CppInt32__;
|
|
|
|
-#end
|
|
|