Package org.qbicc.runtime.llvm
Class LLVM
java.lang.Object
org.qbicc.runtime.llvm.LLVM
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classstatic final classstatic final classstatic final classstatic final classstatic final classstatic final classstatic final class -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final int -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic doubleabs(double val) static floatabs(float val) static intabs(int val) static longabs(long val) static CNative.ptr<?>static byteaddSaturating(byte a, byte b) static charaddSaturating(char a, char b) static intaddSaturating(int a, int b) static longaddSaturating(long a, long b) static shortaddSaturating(short a, short b) static Stdint.uint32_tstatic Stdint.uint64_tstatic Stdint.uint8_tstatic LLVM.byte_with_overflowaddWithOverflow(byte a, byte b) static LLVM.char_with_overflowaddWithOverflow(char a, char b) static LLVM.int_with_overflowaddWithOverflow(int a, int b) static LLVM.long_with_overflowaddWithOverflow(long a, long b) static LLVM.short_with_overflowaddWithOverflow(short a, short b) static LLVM.uint32_t_with_overflowstatic LLVM.uint64_t_with_overflowstatic LLVM.uint8_t_with_overflowstatic doublearithmeticFence(double val) static floatarithmeticFence(float val) static <T extends CNative.object>
Tasm(Class<T> returnType, String instruction, String operands, int flags, CNative.object... args) static voidassume(boolean value) static bytebitCount(byte val) static charbitCount(char val) static intbitCount(int val) static longbitCount(long val) static shortbitCount(short val) static bytebitReverse(byte val) static charbitReverse(char val) static intbitReverse(int val) static longbitReverse(long val) static shortbitReverse(short val) static charbyteSwap(char val) static intbyteSwap(int val) static longbyteSwap(long val) static shortbyteSwap(short val) static doublecanonicalize(double val) static floatcanonicalize(float val) static doubleceil(double val) static floatceil(float val) static intconvertToInt(double val) static intconvertToInt(float val) static intconvertToIntUnsigned(double val) static intconvertToIntUnsigned(float val) static longconvertToLong(double val) static longconvertToLong(float val) static longconvertToLongUnsigned(double val) static longconvertToLongUnsigned(float val) static doublecopySign(double mag, double sign) static floatcopySign(float mag, float sign) static doublecos(double val) static floatcos(float val) static voidstatic voidstatic doubleexp(double val) static floatexp(float val) static doubleexp2(double val) static floatexp2(float val) static booleanexpect(boolean value, boolean expectedValue) static booleanexpect(boolean value, boolean expectedValue, double probability) static byteexpect(byte value, byte expectedValue) static byteexpect(byte value, byte expectedValue, double probability) static intexpect(int value, int expectedValue) static intexpect(int value, int expectedValue, double probability) static longexpect(long value, long expectedValue) static longexpect(long value, long expectedValue, double probability) static shortexpect(short value, short expectedValue) static shortexpect(short value, short expectedValue, double probability) static doublefloor(double val) static floatfloor(float val) static doublefma(double a, double b, double c) static floatfma(float a, float b, float c) static doublefmuladd(double a, double b, double c) static floatfmuladd(float a, float b, float c) static CNative.ptr<?>frameAddress(Stdint.uint32_t level) static bytefunnelShiftLeft(byte a, byte b, byte c) static charfunnelShiftLeft(char a, char b, char c) static intfunnelShiftLeft(int a, int b, int c) static longfunnelShiftLeft(long a, long b, long c) static shortfunnelShiftLeft(short a, short b, short c) static bytefunnelShiftRight(byte a, byte b, byte c) static charfunnelShiftRight(char a, char b, char c) static intfunnelShiftRight(int a, int b, int c) static longfunnelShiftRight(long a, long b, long c) static shortfunnelShiftRight(short a, short b, short c) static intstatic longllrint(double val) static longllrint(float val) static longllround(double val) static longllround(float val) static doublelog(double val) static floatlog(float val) static doublelog10(double val) static floatlog10(float val) static doublelog2(double val) static floatlog2(float val) static intlrint(double val) static intlrint(float val) static longlrint64(double val) static longlrint64(float val) static intlround(double val) static intlround(float val) static longlround64(double val) static longlround64(float val) static bytemax(byte a, byte b) static charmax(char a, char b) static doublemax(double a, double b) static floatmax(float a, float b) static intmax(int a, int b) static longmax(long a, long b) static shortmax(short a, short b) static Stdint.uint32_tstatic Stdint.uint64_tstatic Stdint.uint8_tmax(Stdint.uint8_t a, Stdint.uint8_t b) static doublemax_libm(double a, double b) static floatmax_libm(float a, float b) static voidmemCopy(CNative.ptr<?> dest, CNative.ptr<?> src, int size, boolean setToFalse) static voidmemCopy(CNative.ptr<?> dest, CNative.ptr<?> src, long size, boolean setToFalse) static voidmemCopyInline(CNative.ptr<?> dest, CNative.ptr<?> src, int size, boolean setToFalse) static voidmemCopyInline(CNative.ptr<?> dest, CNative.ptr<?> src, long size, boolean setToFalse) static voidmemCopyUnordered(CNative.ptr<?> dest, CNative.ptr<?> src, int size, int elementSize) static voidmemCopyUnordered(CNative.ptr<?> dest, CNative.ptr<?> src, int size, long elementSize) static voidmemMove(CNative.ptr<?> dest, CNative.ptr<?> src, int size, boolean setToFalse) static voidmemMove(CNative.ptr<?> dest, CNative.ptr<?> src, long size, boolean setToFalse) static voidmemMoveUnordered(CNative.ptr<?> dest, CNative.ptr<?> src, int size, int elementSize) static voidmemMoveUnordered(CNative.ptr<?> dest, CNative.ptr<?> src, int size, long elementSize) static voidmemSet(CNative.ptr<?> dest, byte val, int size, boolean setToFalse) static voidmemSet(CNative.ptr<?> dest, byte val, long size, boolean setToFalse) static voidmemSetUnordered(CNative.ptr<?> dest, byte val, int size, int elementSize) static voidmemSetUnordered(CNative.ptr<?> dest, byte val, long size, int elementSize) static bytemin(byte a, byte b) static charmin(char a, char b) static doublemin(double a, double b) static floatmin(float a, float b) static intmin(int a, int b) static longmin(long a, long b) static shortmin(short a, short b) static Stdint.uint32_tstatic Stdint.uint64_tstatic Stdint.uint8_tmin(Stdint.uint8_t a, Stdint.uint8_t b) static doublemin_libm(double a, double b) static floatmin_libm(float a, float b) static LLVM.byte_with_overflowmulWithOverflow(byte a, byte b) static LLVM.char_with_overflowmulWithOverflow(char a, char b) static LLVM.int_with_overflowmulWithOverflow(int a, int b) static LLVM.long_with_overflowmulWithOverflow(long a, long b) static LLVM.short_with_overflowmulWithOverflow(short a, short b) static LLVM.uint32_t_with_overflowstatic LLVM.uint64_t_with_overflowstatic LLVM.uint8_t_with_overflowstatic doublenearbyInt(double val) static floatnearbyInt(float val) static bytenumberOfLeadingZeros(byte val) static charnumberOfLeadingZeros(char val) static intnumberOfLeadingZeros(int val) static longnumberOfLeadingZeros(long val) static shortnumberOfLeadingZeros(short val) static bytenumberOfTrailingZeros(byte val) static charnumberOfTrailingZeros(char val) static intnumberOfTrailingZeros(int val) static longnumberOfTrailingZeros(long val) static shortnumberOfTrailingZeros(short val) static doublepow(double val, double power) static floatpow(float val, float power) static doublepowi(double val, int power) static doublepowi(double val, long power) static floatpowi(float val, int power) static floatpowi(float val, long power) static voidprefetch(CNative.ptr<?> address, Stdint.uint32_t rw, Stdint.uint32_t locality, Stdint.uint32_t cacheType) static CNative.ptr<?>ptrMask(CNative.ptr<?> orig, long mask) static CNative.ptr<?>returnAddress(Stdint.uint32_t level) static doubleround(double val) static floatround(float val) static doubleroundEven(double val) static floatroundEven(float val) static doubleroundToInt(double val) static floatroundToInt(float val) static voidsetRoundingMode(int mode) static byteshiftLeftSaturating(byte a, byte b) static charshiftLeftSaturating(char a, char b) static intshiftLeftSaturating(int a, int b) static longshiftLeftSaturating(long a, long b) static shortshiftLeftSaturating(short a, short b) static Stdint.uint32_tstatic Stdint.uint64_tstatic Stdint.uint8_tstatic doublesin(double val) static floatsin(float val) static CNative.ptr<?>static doublesqrt(double val) static floatsqrt(float val) static voidstackRestore(CNative.ptr<?> ptr) static CNative.ptr<?>static bytesubSaturating(byte a, byte b) static charsubSaturating(char a, char b) static intsubSaturating(int a, int b) static longsubSaturating(long a, long b) static shortsubSaturating(short a, short b) static Stdint.uint32_tstatic Stdint.uint64_tstatic Stdint.uint8_tstatic LLVM.byte_with_overflowsubWithOverflow(byte a, byte b) static LLVM.char_with_overflowsubWithOverflow(char a, char b) static LLVM.int_with_overflowsubWithOverflow(int a, int b) static LLVM.long_with_overflowsubWithOverflow(long a, long b) static LLVM.short_with_overflowsubWithOverflow(short a, short b) static LLVM.uint32_t_with_overflowstatic LLVM.uint64_t_with_overflowstatic LLVM.uint8_t_with_overflowstatic CNative.ptr<?>static voidtrap()static doubletrunc(double val) static floattrunc(float val) static voidva_copy(CNative.ptr<Stdarg.va_list> dest_arglist, CNative.ptr<Stdarg.va_list> src_arglist) static voidva_end(CNative.ptr<Stdarg.va_list> arglist) static voidva_start(CNative.ptr<Stdarg.va_list> arglist)
-
Field Details
-
ROUND_TOWARDS_ZERO
public static final int ROUND_TOWARDS_ZERO- See Also:
-
ROUND_NEAREST_TIES_TO_EVEN
public static final int ROUND_NEAREST_TIES_TO_EVEN- See Also:
-
ROUND_TOWARDS_POSITIVE_INFINITY
public static final int ROUND_TOWARDS_POSITIVE_INFINITY- See Also:
-
ROUND_TOWARDS_NEGATIVE_INFINITY
public static final int ROUND_TOWARDS_NEGATIVE_INFINITY- See Also:
-
ROUND_NEAREST_TIES_AWAY_FROM_ZERO
public static final int ROUND_NEAREST_TIES_AWAY_FROM_ZERO- See Also:
-
ASM_FLAG_SIDE_EFFECT
public static final int ASM_FLAG_SIDE_EFFECT- See Also:
-
ASM_FLAG_ALIGN_STACK
public static final int ASM_FLAG_ALIGN_STACK- See Also:
-
ASM_FLAG_INTEL_DIALECT
public static final int ASM_FLAG_INTEL_DIALECT- See Also:
-
ASM_FLAG_UNWIND
public static final int ASM_FLAG_UNWIND- See Also:
-
ASM_FLAG_IMPLICIT_SIDE_EFFECT
public static final int ASM_FLAG_IMPLICIT_SIDE_EFFECT- See Also:
-
ASM_FLAG_NO_RETURN
public static final int ASM_FLAG_NO_RETURN- See Also:
-
-
Constructor Details
-
LLVM
public LLVM()
-
-
Method Details
-
va_start
-
va_end
-
va_copy
@extern @name("llvm.va_copy") public static void va_copy(CNative.ptr<Stdarg.va_list> dest_arglist, CNative.ptr<Stdarg.va_list> src_arglist) -
returnAddress
@extern @name("llvm.returnaddress") public static CNative.ptr<?> returnAddress(Stdint.uint32_t level) -
addressOfReturnAddress
-
spOnEntry
-
frameAddress
-
stackSave
-
stackRestore
-
prefetch
@extern @name("llvm.prefetch") public static void prefetch(CNative.ptr<?> address, Stdint.uint32_t rw, Stdint.uint32_t locality, Stdint.uint32_t cacheType) -
threadPointer
-
abs
-
abs
-
abs
-
abs
-
min
-
min
-
min
-
min
-
min
-
min
@extern @name("llvm.umin.i32") public static Stdint.uint32_t min(Stdint.uint32_t a, Stdint.uint32_t b) -
min
-
min
@extern @name("llvm.umin.i64") public static Stdint.uint64_t min(Stdint.uint64_t a, Stdint.uint64_t b) -
min
-
min_libm
-
min
-
min_libm
-
max
-
max
-
max
-
max
-
max
-
max
@extern @name("llvm.umax.i32") public static Stdint.uint32_t max(Stdint.uint32_t a, Stdint.uint32_t b) -
max
-
max
@extern @name("llvm.umax.i64") public static Stdint.uint64_t max(Stdint.uint64_t a, Stdint.uint64_t b) -
max
-
max_libm
-
max
-
max_libm
-
sqrt
-
sqrt
-
powi
-
powi
-
powi
-
powi
-
sin
-
sin
-
cos
-
cos
-
pow
-
pow
-
exp
-
exp
-
exp2
-
exp2
-
log
-
log
-
log10
-
log10
-
log2
-
log2
-
fma
-
fma
-
fmuladd
-
fmuladd
-
copySign
-
copySign
-
floor
-
floor
-
ceil
-
ceil
-
trunc
-
trunc
-
roundToInt
-
roundToInt
-
nearbyInt
-
nearbyInt
-
round
-
round
-
roundEven
-
roundEven
-
lround
-
lround
-
lround64
-
lround64
-
llround
-
llround
-
lrint
-
lrint
-
lrint64
-
lrint64
-
llrint
-
llrint
-
convertToInt
-
convertToInt
-
convertToIntUnsigned
-
convertToIntUnsigned
-
convertToLong
-
convertToLong
-
convertToLongUnsigned
-
convertToLongUnsigned
-
canonicalize
-
canonicalize
-
bitReverse
-
bitReverse
-
bitReverse
-
bitReverse
-
bitReverse
-
byteSwap
-
byteSwap
-
byteSwap
-
byteSwap
-
bitCount
-
bitCount
-
bitCount
-
bitCount
-
bitCount
-
numberOfLeadingZeros
-
numberOfLeadingZeros
-
numberOfLeadingZeros
-
numberOfLeadingZeros
-
numberOfLeadingZeros
-
numberOfTrailingZeros
-
numberOfTrailingZeros
-
numberOfTrailingZeros
-
numberOfTrailingZeros
-
numberOfTrailingZeros
-
funnelShiftLeft
-
funnelShiftLeft
-
funnelShiftLeft
-
funnelShiftLeft
-
funnelShiftLeft
-
funnelShiftRight
-
funnelShiftRight
-
funnelShiftRight
-
funnelShiftRight
-
funnelShiftRight
-
addWithOverflow
@extern @name("llvm.sadd.with.overflow.i8") public static LLVM.byte_with_overflow addWithOverflow(byte a, byte b) -
addWithOverflow
@extern @name("llvm.uadd.with.overflow.i8") public static LLVM.uint8_t_with_overflow addWithOverflow(Stdint.uint8_t a, Stdint.uint8_t b) -
addWithOverflow
@extern @name("llvm.sadd.with.overflow.i16") public static LLVM.short_with_overflow addWithOverflow(short a, short b) -
addWithOverflow
@extern @name("llvm.uadd.with.overflow.i16") public static LLVM.char_with_overflow addWithOverflow(char a, char b) -
addWithOverflow
@extern @name("llvm.sadd.with.overflow.i32") public static LLVM.int_with_overflow addWithOverflow(int a, int b) -
addWithOverflow
@extern @name("llvm.uadd.with.overflow.i32") public static LLVM.uint32_t_with_overflow addWithOverflow(Stdint.uint32_t a, Stdint.uint32_t b) -
addWithOverflow
@extern @name("llvm.sadd.with.overflow.i64") public static LLVM.long_with_overflow addWithOverflow(long a, long b) -
addWithOverflow
@extern @name("llvm.uadd.with.overflow.i64") public static LLVM.uint64_t_with_overflow addWithOverflow(Stdint.uint64_t a, Stdint.uint64_t b) -
subWithOverflow
@extern @name("llvm.ssub.with.overflow.i8") public static LLVM.byte_with_overflow subWithOverflow(byte a, byte b) -
subWithOverflow
@extern @name("llvm.usub.with.overflow.i8") public static LLVM.uint8_t_with_overflow subWithOverflow(Stdint.uint8_t a, Stdint.uint8_t b) -
subWithOverflow
@extern @name("llvm.ssub.with.overflow.i16") public static LLVM.short_with_overflow subWithOverflow(short a, short b) -
subWithOverflow
@extern @name("llvm.usub.with.overflow.i16") public static LLVM.char_with_overflow subWithOverflow(char a, char b) -
subWithOverflow
@extern @name("llvm.ssub.with.overflow.i32") public static LLVM.int_with_overflow subWithOverflow(int a, int b) -
subWithOverflow
@extern @name("llvm.usub.with.overflow.i32") public static LLVM.uint32_t_with_overflow subWithOverflow(Stdint.uint32_t a, Stdint.uint32_t b) -
subWithOverflow
@extern @name("llvm.ssub.with.overflow.i64") public static LLVM.long_with_overflow subWithOverflow(long a, long b) -
subWithOverflow
@extern @name("llvm.usub.with.overflow.i64") public static LLVM.uint64_t_with_overflow subWithOverflow(Stdint.uint64_t a, Stdint.uint64_t b) -
mulWithOverflow
@extern @name("llvm.smul.with.overflow.i8") public static LLVM.byte_with_overflow mulWithOverflow(byte a, byte b) -
mulWithOverflow
@extern @name("llvm.umul.with.overflow.i8") public static LLVM.uint8_t_with_overflow mulWithOverflow(Stdint.uint8_t a, Stdint.uint8_t b) -
mulWithOverflow
@extern @name("llvm.smul.with.overflow.i16") public static LLVM.short_with_overflow mulWithOverflow(short a, short b) -
mulWithOverflow
@extern @name("llvm.umul.with.overflow.i16") public static LLVM.char_with_overflow mulWithOverflow(char a, char b) -
mulWithOverflow
@extern @name("llvm.smul.with.overflow.i32") public static LLVM.int_with_overflow mulWithOverflow(int a, int b) -
mulWithOverflow
@extern @name("llvm.umul.with.overflow.i32") public static LLVM.uint32_t_with_overflow mulWithOverflow(Stdint.uint32_t a, Stdint.uint32_t b) -
mulWithOverflow
@extern @name("llvm.smul.with.overflow.i64") public static LLVM.long_with_overflow mulWithOverflow(long a, long b) -
mulWithOverflow
@extern @name("llvm.umul.with.overflow.i64") public static LLVM.uint64_t_with_overflow mulWithOverflow(Stdint.uint64_t a, Stdint.uint64_t b) -
addSaturating
-
addSaturating
@extern @name("llvm.uadd.sat.i8") public static Stdint.uint8_t addSaturating(Stdint.uint8_t a, Stdint.uint8_t b) -
addSaturating
-
addSaturating
-
addSaturating
-
addSaturating
@extern @name("llvm.uadd.sat.i32") public static Stdint.uint32_t addSaturating(Stdint.uint32_t a, Stdint.uint32_t b) -
addSaturating
-
addSaturating
@extern @name("llvm.uadd.sat.i64") public static Stdint.uint64_t addSaturating(Stdint.uint64_t a, Stdint.uint64_t b) -
subSaturating
-
subSaturating
@extern @name("llvm.usub.sat.i8") public static Stdint.uint8_t subSaturating(Stdint.uint8_t a, Stdint.uint8_t b) -
subSaturating
-
subSaturating
-
subSaturating
-
subSaturating
@extern @name("llvm.usub.sat.i32") public static Stdint.uint32_t subSaturating(Stdint.uint32_t a, Stdint.uint32_t b) -
subSaturating
-
subSaturating
@extern @name("llvm.usub.sat.i64") public static Stdint.uint64_t subSaturating(Stdint.uint64_t a, Stdint.uint64_t b) -
shiftLeftSaturating
-
shiftLeftSaturating
@extern @name("llvm.ushl.sat.i8") public static Stdint.uint8_t shiftLeftSaturating(Stdint.uint8_t a, Stdint.uint8_t b) -
shiftLeftSaturating
-
shiftLeftSaturating
-
shiftLeftSaturating
-
shiftLeftSaturating
@extern @name("llvm.ushl.sat.i32") public static Stdint.uint32_t shiftLeftSaturating(Stdint.uint32_t a, Stdint.uint32_t b) -
shiftLeftSaturating
-
shiftLeftSaturating
@extern @name("llvm.ushl.sat.i64") public static Stdint.uint64_t shiftLeftSaturating(Stdint.uint64_t a, Stdint.uint64_t b) -
getRoundingMode
-
setRoundingMode
-
trap
-
debugTrap
-
expect
-
expect
-
expect
-
expect
-
expect
-
expect
-
expect
-
expect
-
expect
-
expect
-
assume
-
arithmeticFence
-
arithmeticFence
-
doNothing
-
ptrMask
-
memCopy
@extern @name("llvm.memcpy.p0i8.p0i8.i32") public static void memCopy(CNative.ptr<?> dest, CNative.ptr<?> src, int size, boolean setToFalse) -
memCopy
@extern @name("llvm.memcpy.p0i8.p0i8.i64") public static void memCopy(CNative.ptr<?> dest, CNative.ptr<?> src, long size, boolean setToFalse) -
memCopyInline
@extern @name("llvm.memcpy.inline.p0i8.p0i8.i32") public static void memCopyInline(CNative.ptr<?> dest, CNative.ptr<?> src, int size, boolean setToFalse) -
memCopyInline
@extern @name("llvm.memcpy.inline.p0i8.p0i8.i64") public static void memCopyInline(CNative.ptr<?> dest, CNative.ptr<?> src, long size, boolean setToFalse) -
memMove
@extern @name("llvm.memmove.p0i8.p0i8.i32") public static void memMove(CNative.ptr<?> dest, CNative.ptr<?> src, int size, boolean setToFalse) -
memMove
@extern @name("llvm.memmove.p0i8.p0i8.i64") public static void memMove(CNative.ptr<?> dest, CNative.ptr<?> src, long size, boolean setToFalse) -
memCopyUnordered
@extern @name("llvm.memcpy.element.unordered.atomic.p0i8.p0i8.i32") public static void memCopyUnordered(CNative.ptr<?> dest, CNative.ptr<?> src, int size, int elementSize) -
memCopyUnordered
@extern @name("llvm.memcpy.element.unordered.atomic.p0i8.p0i8.i64") public static void memCopyUnordered(CNative.ptr<?> dest, CNative.ptr<?> src, int size, long elementSize) -
memMoveUnordered
@extern @name("llvm.memmove.element.unordered.atomic.p0i8.p0i8.i32") public static void memMoveUnordered(CNative.ptr<?> dest, CNative.ptr<?> src, int size, int elementSize) -
memMoveUnordered
@extern @name("llvm.memmove.element.unordered.atomic.p0i8.p0i8.i64") public static void memMoveUnordered(CNative.ptr<?> dest, CNative.ptr<?> src, int size, long elementSize) -
memSet
@extern @name("llvm.memset.p0i8.i32") public static void memSet(CNative.ptr<?> dest, byte val, int size, boolean setToFalse) -
memSet
@extern @name("llvm.memset.p0i8.i64") public static void memSet(CNative.ptr<?> dest, byte val, long size, boolean setToFalse) -
memSetUnordered
@extern @name("llvm.memset.element.unordered.atomic.p0i8.i32") public static void memSetUnordered(CNative.ptr<?> dest, byte val, int size, int elementSize) -
memSetUnordered
@extern @name("llvm.memset.element.unordered.atomic.p0i8.i64") public static void memSetUnordered(CNative.ptr<?> dest, byte val, long size, int elementSize) -
asm
public static <T extends CNative.object> T asm(Class<T> returnType, String instruction, String operands, int flags, CNative.object... args)
-