fix operators containing percent for VM usage (#13536)
* fixes #13513 * merge tarithmetics in tarithm
This commit is contained in:
parent
e64f1c7ee4
commit
2f557652d4
11 changed files with 165 additions and 137 deletions
|
|
@ -161,16 +161,37 @@ proc `<`*(x, y: int16): bool {.magic: "LtI", noSideEffect.}
|
|||
proc `<`*(x, y: int32): bool {.magic: "LtI", noSideEffect.}
|
||||
proc `<`*(x, y: int64): bool {.magic: "LtI", noSideEffect.}
|
||||
|
||||
proc `<=`*(x, y: uint): bool {.magic: "LeU", noSideEffect.}
|
||||
## Returns true if ``x <= y``.
|
||||
proc `<=`*(x, y: uint8): bool {.magic: "LeU", noSideEffect.}
|
||||
proc `<=`*(x, y: uint16): bool {.magic: "LeU", noSideEffect.}
|
||||
proc `<=`*(x, y: uint32): bool {.magic: "LeU", noSideEffect.}
|
||||
proc `<=`*(x, y: uint64): bool {.magic: "LeU", noSideEffect.}
|
||||
|
||||
proc `<=%`*(x, y: IntMax32): bool {.magic: "LeU", noSideEffect.}
|
||||
proc `<=%`*(x, y: int64): bool {.magic: "LeU64", noSideEffect.}
|
||||
proc `<`*(x, y: uint): bool {.magic: "LtU", noSideEffect.}
|
||||
## Returns true if ``x < y``.
|
||||
proc `<`*(x, y: uint8): bool {.magic: "LtU", noSideEffect.}
|
||||
proc `<`*(x, y: uint16): bool {.magic: "LtU", noSideEffect.}
|
||||
proc `<`*(x, y: uint32): bool {.magic: "LtU", noSideEffect.}
|
||||
proc `<`*(x, y: uint64): bool {.magic: "LtU", noSideEffect.}
|
||||
|
||||
proc `<=%`*(x, y: int): bool {.inline.} =
|
||||
## Treats `x` and `y` as unsigned and compares them.
|
||||
## Returns true if ``unsigned(x) <= unsigned(y)``.
|
||||
cast[uint](x) <= cast[uint](y)
|
||||
proc `<=%`*(x, y: int8): bool {.inline.} = cast[uint8](x) <= cast[uint8](y)
|
||||
proc `<=%`*(x, y: int16): bool {.inline.} = cast[uint16](x) <= cast[uint16](y)
|
||||
proc `<=%`*(x, y: int32): bool {.inline.} = cast[uint32](x) <= cast[uint32](y)
|
||||
proc `<=%`*(x, y: int64): bool {.inline.} = cast[uint64](x) <= cast[uint64](y)
|
||||
|
||||
proc `<%`*(x, y: IntMax32): bool {.magic: "LtU", noSideEffect.}
|
||||
proc `<%`*(x, y: int64): bool {.magic: "LtU64", noSideEffect.}
|
||||
proc `<%`*(x, y: int): bool {.inline.} =
|
||||
## Treats `x` and `y` as unsigned and compares them.
|
||||
## Returns true if ``unsigned(x) < unsigned(y)``.
|
||||
cast[uint](x) < cast[uint](y)
|
||||
proc `<%`*(x, y: int8): bool {.inline.} = cast[uint8](x) < cast[uint8](y)
|
||||
proc `<%`*(x, y: int16): bool {.inline.} = cast[uint16](x) < cast[uint16](y)
|
||||
proc `<%`*(x, y: int32): bool {.inline.} = cast[uint32](x) < cast[uint32](y)
|
||||
proc `<%`*(x, y: int64): bool {.inline.} = cast[uint64](x) < cast[uint64](y)
|
||||
|
||||
template `>=%`*(x, y: untyped): untyped = y <=% x
|
||||
## Treats `x` and `y` as unsigned and compares them.
|
||||
|
|
@ -180,7 +201,6 @@ template `>%`*(x, y: untyped): untyped = y <% x
|
|||
## Treats `x` and `y` as unsigned and compares them.
|
||||
## Returns true if ``unsigned(x) > unsigned(y)``.
|
||||
|
||||
|
||||
proc `==`*(x, y: uint): bool {.magic: "EqI", noSideEffect.}
|
||||
## Compares two unsigned integers for equality.
|
||||
proc `==`*(x, y: uint8): bool {.magic: "EqI", noSideEffect.}
|
||||
|
|
@ -189,21 +209,6 @@ proc `==`*(x, y: uint32): bool {.magic: "EqI", noSideEffect.}
|
|||
proc `==`*(x, y: uint64): bool {.magic: "EqI", noSideEffect.}
|
||||
|
||||
|
||||
proc `<=`*(x, y: uint): bool {.magic: "LeU", noSideEffect.}
|
||||
## Returns true if ``x <= y``.
|
||||
proc `<=`*(x, y: uint8): bool {.magic: "LeU", noSideEffect.}
|
||||
proc `<=`*(x, y: uint16): bool {.magic: "LeU", noSideEffect.}
|
||||
proc `<=`*(x, y: uint32): bool {.magic: "LeU", noSideEffect.}
|
||||
proc `<=`*(x, y: uint64): bool {.magic: "LeU", noSideEffect.}
|
||||
|
||||
proc `<`*(x, y: uint): bool {.magic: "LtU", noSideEffect.}
|
||||
## Returns true if ``unsigned(x) < unsigned(y)``.
|
||||
proc `<`*(x, y: uint8): bool {.magic: "LtU", noSideEffect.}
|
||||
proc `<`*(x, y: uint16): bool {.magic: "LtU", noSideEffect.}
|
||||
proc `<`*(x, y: uint32): bool {.magic: "LtU", noSideEffect.}
|
||||
proc `<`*(x, y: uint64): bool {.magic: "LtU", noSideEffect.}
|
||||
|
||||
|
||||
{.push stackTrace: off.}
|
||||
|
||||
proc min*(x, y: int): int {.magic: "MinI", noSideEffect.} =
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue