Get the address of this lvalue, as a gccjit.RValue of type T*.
Unary operations are gccjit.RValue instances built using gccjit.Context.new_unary_op() with an operation from one of the following:
Unary Operation | C equivalent |
---|---|
gccjit.UnaryOp.MINUS | -(EXPR) |
gccjit.UnaryOp.BITWISE_NEGATE | ~(EXPR) |
gccjit.UnaryOp.LOGICAL_NEGATE | !(EXPR) |
Unary operations are gccjit.RValue instances built using gccjit.Context.new_binary_op() with an operation from one of the following:
Binary Operation | C equivalent |
---|---|
gccjit.BinaryOp.PLUS | x + y |
gccjit.BinaryOp.MINUS | x - y |
gccjit.BinaryOp.MULT | x * y |
gccjit.BinaryOp.DIVIDE | x / y |
gccjit.BinaryOp.MODULO | x % y |
gccjit.BinaryOp.BITWISE_AND | x & y |
gccjit.BinaryOp.BITWISE_XOR | x ^ y |
gccjit.BinaryOp.BITWISE_OR | x | y |
gccjit.BinaryOp.LOGICAL_AND | x && y |
gccjit.BinaryOp.LOGICAL_OR | x || y |
Addition of arithmetic values; analogous to:
(EXPR_A) + (EXPR_B)
in C.
For pointer addition, use gccjit.Context.new_array_access().
Subtraction of arithmetic values; analogous to:
(EXPR_A) - (EXPR_B)
in C.
Multiplication of a pair of arithmetic values; analogous to:
(EXPR_A) * (EXPR_B)
in C.
Quotient of division of arithmetic values; analogous to:
(EXPR_A) / (EXPR_B)
in C.
The result type affects the kind of division: if the result type is integer-based, then the result is truncated towards zero, whereas a floating-point result type indicates floating-point division.
Remainder of division of arithmetic values; analogous to:
(EXPR_A) % (EXPR_B)
in C.
Bitwise AND; analogous to:
(EXPR_A) & (EXPR_B)
in C.
Bitwise exclusive OR; analogous to:
(EXPR_A) ^ (EXPR_B)
in C.
Bitwise inclusive OR; analogous to:
(EXPR_A) | (EXPR_B)
in C.
Logical AND; analogous to:
(EXPR_A) && (EXPR_B)
in C.
Logical OR; analogous to:
(EXPR_A) || (EXPR_B)
in C.
Comparisons are gccjit.RValue instances of boolean type built using gccjit.Context.new_comparison() with an operation from one of the following:
Comparison | C equivalent |
---|---|
gccjit.Comparison.EQ | x == y |
gccjit.Comparison.NE | x != y |
gccjit.Comparison.LT | x < y |
gccjit.Comparison.LE | x <= y |
gccjit.Comparison.GT | x > y |
gccjit.Comparison.GE | x >= y |