25 lines
813 B
Nim
25 lines
813 B
Nim
|
# 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
|