add basic logical operations
This commit is contained in:
parent
994be7fa61
commit
32efae91ee
|
@ -3,8 +3,10 @@
|
|||
|
||||
import ./uint_type,
|
||||
./uint_init,
|
||||
./uint_bitwise_ops,
|
||||
./uint_binary_ops
|
||||
|
||||
export uint_type,
|
||||
uint_init,
|
||||
uint_bitwise_ops,
|
||||
uint_binary_ops
|
|
@ -0,0 +1,25 @@
|
|||
# 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
|
Loading…
Reference in New Issue