diff options
author | ReinUsesLisp <[email protected]> | 2018-11-11 21:06:01 -0300 |
---|---|---|
committer | GitHub <[email protected]> | 2018-11-11 21:06:01 -0300 |
commit | bdf538bd64d5c45e825f52d8734de020a1461faf (patch) | |
tree | 017e30157cac13189704073aadc3ef48c7a34dc0 /include | |
parent | 9a02f915a758d4d139926c701c2b06a2d8339960 (diff) | |
parent | aa3d1adbbd1c07765cdfbf74a5b273f330952779 (diff) | |
download | sirit-bdf538bd64d5c45e825f52d8734de020a1461faf.tar.gz sirit-bdf538bd64d5c45e825f52d8734de020a1461faf.zip |
Merge pull request #3 from FernandoS27/bit
Implemented the rest of the bitwise operations
Diffstat (limited to 'include')
-rw-r--r-- | include/sirit/sirit.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/include/sirit/sirit.h b/include/sirit/sirit.h index 770345c..b52c7d9 100644 --- a/include/sirit/sirit.h +++ b/include/sirit/sirit.h @@ -280,10 +280,30 @@ class Module { /// The least-significant bits will be zero filled. Id OpShiftLeftLogical(Id result_type, Id base, Id shift); + /// Does a bitwise Or between operands 1 and 2. + Id OpBitwiseOr(Id result_type, Id operand_1, Id operand_2); + + /// Does a bitwise Xor between operands 1 and 2. + Id OpBitwiseXor(Id result_type, Id operand_1, Id operand_2); + /// Result is 1 if both Operand 1 and Operand 2 are 1. Result is 0 if either /// Operand 1 or Operand 2 are 0. Id OpBitwiseAnd(Id result_type, Id operand_1, Id operand_2); + /// Does a bitwise Not on the operand. + Id OpNot(Id result_type, Id operand); + + Id OpBitFieldInsert(Id result_type, Id base, Id insert, Id offset, + Id count); + + Id OpBitFieldSExtract(Id result_type, Id base, Id offset, Id count); + + Id OpBitFieldUExtract(Id result_type, Id base, Id offset, Id count); + + Id OpBitReverse(Id result_type, Id base); + + Id OpBitCount(Id result_type, Id base); + // Arithmetic /// Floating-point subtract of Operand from zero. |