Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #if defined _uint_included
- #endinput
- #endif
- #define _uint_included
- #define uint unsigned
- // Assignment: a = b
- stock unsigned: operator = (oper) return unsigned: oper;
- // Addition: a + b
- stock unsigned: operator + (unsigned: oper1, unsigned: oper2) return unsigned: (_: oper1 + _: oper2);
- stock unsigned: operator + (unsigned: oper1, oper2) return unsigned: (_: oper1 + oper2);
- stock unsigned: operator + (oper1, unsigned: oper2) return unsigned: (oper1 + _: oper2);
- // Subtraction: a - b
- stock unsigned: operator - (unsigned: oper1, unsigned: oper2) return unsigned: (_: oper1 - _: oper2);
- stock unsigned: operator - (unsigned: oper1, oper2) return unsigned: (_: oper1 - oper2);
- stock unsigned: operator - (oper1, unsigned: oper2) return unsigned: (oper1 - _: oper2);
- // Multiplication: a * b
- stock unsigned: operator * (unsigned: oper1, unsigned: oper2)
- {
- #emit LOAD.S.pri oper1
- #emit LOAD.S.alt oper2
- #emit UMUL
- #emit RETN
- return unsigned: 0;
- }
- stock unsigned: operator * (unsigned: oper1, oper2)
- {
- #emit LOAD.S.pri oper1
- #emit LOAD.S.alt oper2
- #emit UMUL
- #emit RETN
- return unsigned: 0;
- }
- stock unsigned: operator * (oper1, unsigned:oper2)
- {
- #emit LOAD.S.pri oper1
- #emit LOAD.S.alt oper2
- #emit UMUL
- #emit RETN
- return unsigned: 0;
- }
- // Division: a / b
- stock unsigned: operator / (unsigned: oper1, unsigned: oper2)
- {
- #emit LOAD.S.pri oper1
- #emit LOAD.S.alt oper2
- #emit UDIV
- #emit RETN
- return unsigned: 0;
- }
- stock unsigned: operator / (unsigned: oper1, oper2)
- {
- #emit LOAD.S.pri oper1
- #emit LOAD.S.alt oper2
- #emit UDIV
- #emit RETN
- return unsigned: 0;
- }
- stock unsigned: operator / (oper1, unsigned: oper2)
- {
- #emit LOAD.S.pri oper1
- #emit LOAD.S.alt oper2
- #emit UDIV
- #emit RETN
- return unsigned: 0;
- }
- // Modulo: a % b
- stock unsigned: operator % (unsigned: oper1, unsigned: oper2)
- {
- #emit LOAD.S.pri oper1
- #emit LOAD.S.alt oper2
- #emit UDIV
- #emit MOVE.pri
- #emit RETN
- return unsigned: 0;
- }
- stock unsigned: operator % (oper1, unsigned: oper2)
- {
- #emit LOAD.S.pri oper1
- #emit LOAD.S.alt oper2
- #emit UDIV
- #emit MOVE.pri
- #emit RETN
- return unsigned: 0;
- }
- stock unsigned: operator % (unsigned: oper1, oper2)
- {
- #emit LOAD.S.pri oper1
- #emit LOAD.S.alt oper2
- #emit UDIV
- #emit MOVE.pri
- #emit RETN
- return unsigned: 0;
- }
- // Equal to: a == b
- stock bool: operator == (unsigned: oper1, unsigned: oper2) return bool: (_: oper1 == _: oper2);
- stock bool: operator == (unsigned: oper1, oper2) return bool: (_: oper1 == oper2);
- stock bool: operator == (oper1, unsigned: oper2) return bool: (oper1 == _: oper2);
- // Not equal to: a != b
- stock bool: operator != (unsigned: oper1, unsigned: oper2) return bool: (_: oper1 != _: oper2);
- stock bool: operator != (unsigned: oper1, oper2) return bool: (_: oper1 != oper2);
- stock bool: operator != (oper1, unsigned: oper2) return bool: (oper1 != _: oper2);
- // Larger than: a > b
- stock bool: operator > (unsigned: oper1, unsigned: oper2)
- {
- #emit LOAD.S.pri oper1
- #emit LOAD.S.alt oper2
- #emit GRTR
- #emit RETN
- return false;
- }
- stock bool: operator > (unsigned: oper1, oper2)
- {
- #emit LOAD.S.pri oper1
- #emit LOAD.S.alt oper2
- #emit GRTR
- #emit RETN
- return false;
- }
- stock bool: operator > (oper1, unsigned: oper2)
- {
- #emit LOAD.S.pri oper1
- #emit LOAD.S.alt oper2
- #emit GRTR
- #emit RETN
- return false;
- }
- // Larger than or equal to: a >= b
- stock bool: operator >= (unsigned: oper1, unsigned: oper2)
- {
- #emit LOAD.S.pri oper1
- #emit LOAD.S.alt oper2
- #emit GEQ
- #emit RETN
- return false;
- }
- stock bool: operator >= (unsigned: oper1, oper2)
- {
- #emit LOAD.S.pri oper1
- #emit LOAD.S.alt oper2
- #emit GEQ
- #emit RETN
- return false;
- }
- stock bool: operator >= (oper1, unsigned: oper2)
- {
- #emit LOAD.S.pri oper1
- #emit LOAD.S.alt oper2
- #emit GEQ
- #emit RETN
- return false;
- }
- // Less than: a < b
- stock bool: operator < (unsigned: oper1, unsigned: oper2)
- {
- #emit LOAD.S.pri oper1
- #emit LOAD.S.alt oper2
- #emit LESS
- #emit RETN
- return false;
- }
- stock bool: operator < (unsigned: oper1, oper2)
- {
- #emit LOAD.S.pri oper1
- #emit LOAD.S.alt oper2
- #emit LESS
- #emit RETN
- return false;
- }
- stock bool: operator < (oper1, unsigned: oper2)
- {
- #emit LOAD.S.pri oper1
- #emit LOAD.S.alt oper2
- #emit LESS
- #emit RETN
- return false;
- }
- // Less than or equal to: a <= b
- stock bool: operator <= (unsigned: oper1, unsigned: oper2)
- {
- #emit LOAD.S.pri oper1
- #emit LOAD.S.alt oper2
- #emit LEQ
- #emit RETN
- return false;
- }
- stock bool: operator <= (unsigned: oper1, oper2)
- {
- #emit LOAD.S.pri oper1
- #emit LOAD.S.alt oper2
- #emit LEQ
- #emit RETN
- return false;
- }
- stock bool: operator <= (oper1, unsigned: oper2)
- {
- #emit LOAD.S.pri oper1
- #emit LOAD.S.alt oper2
- #emit LEQ
- #emit RETN
- return false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement