aboutsummaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorReinUsesLisp <[email protected]>2018-11-11 21:06:01 -0300
committerGitHub <[email protected]>2018-11-11 21:06:01 -0300
commitbdf538bd64d5c45e825f52d8734de020a1461faf (patch)
tree017e30157cac13189704073aadc3ef48c7a34dc0 /include
parent9a02f915a758d4d139926c701c2b06a2d8339960 (diff)
parentaa3d1adbbd1c07765cdfbf74a5b273f330952779 (diff)
downloadsirit-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.h20
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.