# Copyright (c) 2018 Status Research & Development GmbH # Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT). import uint_type proc `not`*(x: MpUint): MpUint {.noInit, noSideEffect, inline.}= ## Bitwise complement of unsigned integer x result.lo = not x.lo result.hi = not x.hi proc `or`*(x, y: MpUint): MpUint {.noInit, noSideEffect, inline.}= ## `Bitwise or` of numbers x and y result.lo = x.lo or y.lo result.hi = x.hi or y.hi proc `and`*(x, y: MpUint): MpUint {.noInit, noSideEffect, inline.}= ## `Bitwise and` of numbers x and y result.lo = x.lo and y.lo result.hi = x.hi and y.hi proc `xor`*(x, y: MpUint): MpUint {.noInit, noSideEffect, inline.}= ## `Bitwise xor` of numbers x and y result.lo = x.lo xor y.lo result.hi = x.hi xor y.hi