Qhasm Documentation

Documentation for X86
Documentation for SPARC
Documentation for PPC32-LINUX
Documentation for PPC32-MACOS
Documentation for AMD64

Instructions available in qhasm

Supported integer operations

Supported integer load/store operations

Qhasm Instruction Input Evaluated flags Output Set flags Machines
r = s stack32 s int32 r X86, PPC32-LINUX, PPC32-MACOS
r = *(uint8 *) (s + n) int32 s, immediate n int32 r X86, PPC32-LINUX, PPC32-MACOS
r = *(uint16 *) (s + n) int32 s, immediate n int32 r X86, PPC32-LINUX, PPC32-MACOS
r = *(uint32 *) (s + n) int32 s, immediate n int32 r X86, PPC32-LINUX, PPC32-MACOS
r = *(uint8 *) (&n + s) int32 s, immediate n int32 r X86
r = *(uint16 *) (&n + s) int32 s, immediate n int32 r X86
r = *(uint32 *) (&n + s) int32 s, immediate n int32 r X86
r = *(uint8 *) (&n + s * 8) int32 s, immediate n int32 r X86
r = *(uint16 *) (&n + s * 8) int32 s, immediate n int32 r X86
r = *(uint32 *) (&n + s * 8) int32 s, immediate n int32 r X86
r = *(uint8 *) (s + t) int32 s, int32 t int32 r X86, PPC32-LINUX, PPC32-MACOS
r = *(uint16 *) (s + t) int32 s, int32 t int32 r X86, PPC32-LINUX, PPC32-MACOS
r = *(uint32 *) (s + t) int32 s, int32 t int32 r X86, PPC32-LINUX, PPC32-MACOS
r = bottom s stack64 s int32 r X86, PPC32-LINUX, PPC32-MACOS
r = top s stack64 s int32 r X86, PPC32-LINUX, PPC32-MACOS
r = &s stack512 s int32 r, stack512 s X86
r = &s stack128 s int32 r, stack128 s X86
r = s stack128 s int6464 r X86, AMD64
r = ((uint32 *)&s)[0] stack128 s int32 r X86
r = ((uint32 *)&s)[1] stack128 s int32 r X86
r = ((uint32 *)&s)[2] stack128 s int32 r X86
r = ((uint32 *)&s)[3] stack128 s int32 r X86
int32323232 r += s int6464 r, stack128 s int6464 r X86, AMD64
uint32323232 r += s int6464 r, stack128 s int6464 r X86, AMD64
int32323232 r -= s int6464 r, stack128 s int6464 r X86, AMD64
uint32323232 r -= s int6464 r, stack128 s int6464 r X86, AMD64
r = *(int128 *) (s + n) int32 s, immediate n int6464 r X86
uint32323232 r += *(int128 *) (s + n) int6464 r, int32 s, immediate n int6464 r X86
r += s int32 r, stack32 s int32 r =, unsigned>, unsigned<, carry X86
r += s + carry int32 r, stack32 s carry int32 r =, unsigned>, unsigned<, carry X86
r -= s int32 r, stack32 s int32 r =, unsigned>, unsigned< X86
r &= s int32 r, stack32 s int32 r =, unsigned>, unsigned< X86
r |= s int32 r, stack32 s int32 r =, unsigned>, unsigned< X86
r ^= s int32 r, stack32 s int32 r =, unsigned>, unsigned< X86
r += *(uint32 *) (s + n) int32 r, int32 s, immediate n int32 r =, unsigned>, unsigned<, carry X86
r += *(uint32 *) (s + n) + carry int32 r, int32 s, immediate n carry int32 r =, unsigned>, unsigned<, carry X86
r -= *(uint32 *) (s + n) int32 r, int32 s, immediate n int32 r =, unsigned>, unsigned< X86
r &= *(uint32 *) (s + n) int32 r, int32 s, immediate n int32 r =, unsigned>, unsigned< X86
r |= *(uint32 *) (s + n) int32 r, int32 s, immediate n int32 r =, unsigned>, unsigned< X86
r ^= *(uint32 *) (s + n) int32 r, int32 s, immediate n int32 r =, unsigned>, unsigned< X86
r ^= *(uint32 *) (&n + s) int32 r, int32 s, immediate n int32 r =, unsigned>, unsigned< X86
r ^= *(uint32 *) (&n + s * 8) int32 r, int32 s, immediate n int32 r =, unsigned>, unsigned< X86
r = &s int64 r, stack512 s SPARC, AMD64
r = *(uint64 *) (s + n) int64 s, immediate n int64 r SPARC, AMD64
r = *(uint32 *) (s + n) int64 s, immediate n int64 r SPARC, AMD64
r = *(uint8 *) (s + n) int64 s, immediate n int64 r SPARC, AMD64
r = *(int64 *) (s + n) int64 s, immediate n int64 r SPARC, AMD64
r = *(int32 *) (s + n) int64 s, immediate n int64 r SPARC, AMD64
r = *(int8 *) (s + n) int64 s, immediate n int64 r SPARC, AMD64
r = *(uint64 *) (s + t) int64 s, int64 t int64 r SPARC, AMD64
r = *(uint32 *) (s + t) int64 s, int64 t int64 r SPARC, AMD64
r = *(uint8 *) (s + t) int64 s, int64 t int64 r SPARC, AMD64
r = *(int64 *) (s + t) int64 s, int64 t int64 r SPARC, AMD64
r = *(int32 *) (s + t) int64 s, int64 t int64 r SPARC, AMD64
r = *(int8 *) (s + t) int64 s, int64 t int64 r SPARC, AMD64
r = *(swapendian uint64 *) s int64 s int64 r SPARC
r = *(swapendian uint32 *) s int64 s int64 r SPARC
r = *(swapendian uint8 *) s int64 s int64 r SPARC
r = *(swapendian int64 *) s int64 s int64 r SPARC
r = *(swapendian int32 *) s int64 s int64 r SPARC
r = *(swapendian int8 *) s int64 s int64 r SPARC
r = s stack64 s int64 r SPARC, AMD64
r = top32 s stack64 s int64 r SPARC
r = bottom32 s stack64 s int64 r SPARC
r = *(int32 *) (s + n) int32 s, immediate n int32 r PPC32-LINUX, PPC32-MACOS
r = *(int32 *) (s - n) int32 s, immediate n int32 r PPC32-LINUX, PPC32-MACOS
r = *(int32 *) (s + t) int32 s, int32 t int32 r PPC32-LINUX, PPC32-MACOS
r = *(int32 *) (s += n) int32 s, immediate n int32 r, int32 s PPC32-LINUX, PPC32-MACOS
r = *(int32 *) (s -= n) int32 s, immediate n int32 r, int32 s PPC32-LINUX, PPC32-MACOS
r = *(int32 *) (s += t) int32 s, int32 t int32 r, int32 s PPC32-LINUX, PPC32-MACOS
r = *(uint32 *) (s - n) int32 s, immediate n int32 r PPC32-LINUX, PPC32-MACOS
r = *(uint32 *) (s += n) int32 s, immediate n int32 r, int32 s PPC32-LINUX, PPC32-MACOS
r = *(uint32 *) (s -= n) int32 s, immediate n int32 r, int32 s PPC32-LINUX, PPC32-MACOS
r = *(uint32 *) (s += t) int32 s, int32 t int32 r, int32 s PPC32-LINUX, PPC32-MACOS
r = *(int16 *) (s + n) int32 s, immediate n int32 r PPC32-LINUX, PPC32-MACOS
r = *(int16 *) (s - n) int32 s, immediate n int32 r PPC32-LINUX, PPC32-MACOS
r = *(int16 *) (s + t) int32 s, int32 t int32 r PPC32-LINUX, PPC32-MACOS
r = *(int16 *) (s += n) int32 s, immediate n int32 r, int32 s PPC32-LINUX, PPC32-MACOS
r = *(int16 *) (s -= n) int32 s, immediate n int32 r, int32 s PPC32-LINUX, PPC32-MACOS
r = *(int16 *) (s += t) int32 s, int32 t int32 r, int32 s PPC32-LINUX, PPC32-MACOS
r = *(uint16 *) (s - n) int32 s, immediate n int32 r PPC32-LINUX, PPC32-MACOS
r = *(uint16 *) (s += n) int32 s, immediate n int32 r, int32 s PPC32-LINUX, PPC32-MACOS
r = *(uint16 *) (s -= n) int32 s, immediate n int32 r, int32 s PPC32-LINUX, PPC32-MACOS
r = *(uint16 *) (s += t) int32 s, int32 t int32 r, int32 s PPC32-LINUX, PPC32-MACOS
r = *(int8 *) (s + n) int32 s, immediate n int32 r PPC32-LINUX, PPC32-MACOS
r = *(int8 *) (s - n) int32 s, immediate n int32 r PPC32-LINUX, PPC32-MACOS
r = *(int8 *) (s + t) int32 s, int32 t int32 r PPC32-LINUX, PPC32-MACOS
r = *(int8 *) (s += n) int32 s, immediate n int32 r, int32 s PPC32-LINUX, PPC32-MACOS
r = *(int8 *) (s -= n) int32 s, immediate n int32 r, int32 s PPC32-LINUX, PPC32-MACOS
r = *(int8 *) (s += t) int32 s, int32 t int32 r, int32 s PPC32-LINUX, PPC32-MACOS
r = *(uint8 *) (s - n) int32 s, immediate n int32 r PPC32-LINUX, PPC32-MACOS
r = *(uint8 *) (s += n) int32 s, immediate n int32 r, int32 s PPC32-LINUX, PPC32-MACOS
r = *(uint8 *) (s -= n) int32 s, immediate n int32 r, int32 s PPC32-LINUX, PPC32-MACOS
r = *(uint8 *) (s += t) int32 s, int32 t int32 r, int32 s PPC32-LINUX, PPC32-MACOS
r = *(swapendian int32 *) s int32 s int32 r PPC32-LINUX, PPC32-MACOS
r = *(swapendian uint32 *) s int32 s int32 r PPC32-LINUX, PPC32-MACOS
r = *(uint16 *) (s + n) int64 s, immediate n int64 r AMD64
r = *( int16 *) (s + n) int64 s, immediate n int64 r AMD64
r = *(uint16 *) (s + t) int64 s, int64 t int64 r AMD64
r = *( int16 *) (s + t) int64 s, int64 t int64 r AMD64
r = *(uint8 *) (s + t * 8) int64 s, int64 t int64 r AMD64
r = *(uint16 *) (s + t * 8) int64 s, int64 t int64 r AMD64
r = *(uint32 *) (s + t * 8) int64 s, int64 t int64 r AMD64
r = *(uint64 *) (s + t * 8) int64 s, int64 t int64 r AMD64
r = *( int8 *) (s + t * 8) int64 s, int64 t int64 r AMD64
r = *( int16 *) (s + t * 8) int64 s, int64 t int64 r AMD64
r = *( int32 *) (s + t * 8) int64 s, int64 t int64 r AMD64
r = *( int64 *) (s + t * 8) int64 s, int64 t int64 r AMD64
r = *(uint8 *) (s + n + t * 8) int64 s, int64 t, immediate n int64 r AMD64
r = *(uint16 *) (s + n + t * 8) int64 s, int64 t, immediate n int64 r AMD64
r = *(uint32 *) (s + n + t * 8) int64 s, int64 t, immediate n int64 r AMD64
r = *(uint64 *) (s + n + t * 8) int64 s, int64 t, immediate n int64 r AMD64
r = *( int8 *) (s + n + t * 8) int64 s, int64 t, immediate n int64 r AMD64
r = *( int16 *) (s + n + t * 8) int64 s, int64 t, immediate n int64 r AMD64
r = *( int32 *) (s + n + t * 8) int64 s, int64 t, immediate n int64 r AMD64
r = *( int64 *) (s + n + t * 8) int64 s, int64 t, immediate n int64 r AMD64
(uint32) r += *(uint32 *) (s + n) int64 r, int64 s, immediate n int64 r =, unsigned>, unsigned<, carry AMD64
(uint32) r += *(uint32 *) (s + n) + carry int64 r, int64 s, immediate n carry int64 r =, unsigned>, unsigned<, carry AMD64
(uint32) r -= *(uint32 *) (s + n) int64 r, int64 s, immediate n int64 r =, unsigned>, unsigned< AMD64
(uint32) r &= *(uint32 *) (s + n) int64 r, int64 s, immediate n int64 r =, unsigned>, unsigned< AMD64
(uint32) r |= *(uint32 *) (s + n) int64 r, int64 s, immediate n int64 r =, unsigned>, unsigned< AMD64
(uint32) r ^= *(uint32 *) (s + n) int64 r, int64 s, immediate n int64 r =, unsigned>, unsigned< AMD64
(uint32) r += *(uint32 *) (s + n + t * 8) int64 r, int64 s, int64 t, immediate n int64 r =, unsigned>, unsigned< AMD64
(uint32) r -= *(uint32 *) (s + n + t * 8) int64 r, int64 s, int64 t, immediate n int64 r =, unsigned>, unsigned< AMD64
(uint32) r &= *(uint32 *) (s + n + t * 8) int64 r, int64 s, int64 t, immediate n int64 r =, unsigned>, unsigned< AMD64
(uint32) r |= *(uint32 *) (s + n + t * 8) int64 r, int64 s, int64 t, immediate n int64 r =, unsigned>, unsigned< AMD64
(uint32) r ^= *(uint32 *) (s + n + t * 8) int64 r, int64 s, int64 t, immediate n int64 r =, unsigned>, unsigned< AMD64
(uint32) r += *(uint32 *) (s + t * 8) int64 r, int64 s, int64 t int64 r =, unsigned>, unsigned< AMD64
(uint32) r -= *(uint32 *) (s + t * 8) int64 r, int64 s, int64 t int64 r =, unsigned>, unsigned< AMD64
(uint32) r &= *(uint32 *) (s + t * 8) int64 r, int64 s, int64 t int64 r =, unsigned>, unsigned< AMD64
(uint32) r |= *(uint32 *) (s + t * 8) int64 r, int64 s, int64 t int64 r =, unsigned>, unsigned< AMD64
(uint32) r ^= *(uint32 *) (s + t * 8) int64 r, int64 s, int64 t int64 r =, unsigned>, unsigned< AMD64
r += *(uint64 *) (s + n) int64 r, int64 s, immediate n int64 r =, unsigned>, unsigned<, carry AMD64
r += *(uint64 *) (s + n) + carry int64 r, int64 s, immediate n carry int64 r =, unsigned>, unsigned<, carry AMD64
r -= *(uint64 *) (s + n) int64 r, int64 s, immediate n int64 r =, unsigned>, unsigned< AMD64
r &= *(uint64 *) (s + n) int64 r, int64 s, immediate n int64 r =, unsigned>, unsigned< AMD64
r |= *(uint64 *) (s + n) int64 r, int64 s, immediate n int64 r =, unsigned>, unsigned< AMD64
r ^= *(uint64 *) (s + n) int64 r, int64 s, immediate n int64 r =, unsigned>, unsigned< AMD64
r = bottom s stack64 s int64 r AMD64
r = top s stack64 s int64 r AMD64
r += s int64 r, stack64 s int64 r =, unsigned>, unsigned< AMD64
r += s + carry int64 r, stack64 s int64 r =, unsigned>, unsigned< AMD64
r -= s int64 r, stack64 s int64 r =, unsigned>, unsigned< AMD64
r &= s int64 r, stack64 s int64 r =, unsigned>, unsigned< AMD64
r |= s int64 r, stack64 s int64 r =, unsigned>, unsigned< AMD64
r ^= s int64 r, stack64 s int64 r =, unsigned>, unsigned< AMD64
(uint32) r += s int64 r, stack64 s int64 r =, unsigned>, unsigned< AMD64
r = &s stack128 s int64 r, stack128 s AMD64
r = ((uint32 *)&s)[0] stack128 s int64 r AMD64
r = ((uint32 *)&s)[1] stack128 s int64 r AMD64
r = ((uint32 *)&s)[2] stack128 s int64 r AMD64
r = ((uint32 *)&s)[3] stack128 s int64 r AMD64
r = *(int128 *) (s + n) int64 s, immediate n int6464 r AMD64
uint32323232 r += *(int128 *) (s + n) int6464 r, int64 s, immediate n int6464 r AMD64
r = s int32 s stack32 r X86, PPC32-LINUX, PPC32-MACOS
*(uint8 *) (s + n) = r int32 s, immediate n X86
*(uint16 *) (s + n) = r int32 s, immediate n X86
*(uint32 *) (s + n) = r int32 r, int32 s, immediate n X86, PPC32-LINUX, PPC32-MACOS
*(uint8 *) (&n + s) = r int32 s, immediate n X86
*(uint16 *) (&n + s) = r int32 s, immediate n X86
*(uint32 *) (&n + s) = r int32 r, int32 s, immediate n X86
*(uint8 *) (&n + s * 8) = r int32 s, immediate n X86
*(uint16 *) (&n + s * 8) = r int32 s, immediate n X86
*(uint32 *) (&n + s * 8) = r int32 r, int32 s, immediate n X86
*(uint8 *) (s + t) = r int32 s, int32 t X86
*(uint16 *) (s + t) = r int32 s, int32 t X86
*(uint32 *) (s + t) = r int32 r, int32 s, int32 t X86, PPC32-LINUX, PPC32-MACOS
*(uint8 *) (s + n) = m int32 s, immediate n, immediate m X86
*(uint16 *) (s + n) = m int32 s, immediate n, immediate m X86
*(uint32 *) (s + n) = m int32 s, immediate n, immediate m X86
inplace r bottom = s int32 s, stack64 r stack64 r X86, PPC32-LINUX, PPC32-MACOS
r = s int6464 s stack128 r X86, AMD64
((uint32 *)&r)[0] = 0 stack128 r X86, AMD64
((uint32 *)&r)[1] = 0 stack128 r stack128 r X86, AMD64
((uint32 *)&r)[2] = 0 stack128 r stack128 r X86, AMD64
((uint32 *)&r)[3] = 0 stack128 r stack128 r X86, AMD64
((uint32 *)&r)[0] = s int32 s stack128 r X86
((uint32 *)&r)[1] = s int32 s, stack128 r stack128 r X86
((uint32 *)&r)[2] = s int32 s, stack128 r stack128 r X86
((uint32 *)&r)[3] = s int32 s, stack128 r stack128 r X86
*(uint64 *) (s + n) = r int64 r, int64 s, immediate n SPARC, AMD64
*(uint32 *) (s + n) = r int64 r, int64 s, immediate n SPARC, AMD64
*(uint8 *) (s + n) = r int64 r, int64 s, immediate n SPARC, AMD64
*(int64 *) (s + n) = r int64 r, int64 s, immediate n SPARC, AMD64
*(int32 *) (s + n) = r int64 r, int64 s, immediate n SPARC, AMD64
*(int8 *) (s + n) = r int64 r, int64 s, immediate n SPARC, AMD64
*(uint64 *) (s + t) = r int64 r, int64 s, int64 t SPARC, AMD64
*(uint32 *) (s + t) = r int64 r, int64 s, int64 t SPARC, AMD64
*(uint8 *) (s + t) = r int64 r, int64 s, int64 t SPARC, AMD64
*(int64 *) (s + t) = r int64 r, int64 s, int64 t SPARC, AMD64
*(int32 *) (s + t) = r int64 r, int64 s, int64 t SPARC, AMD64
*(int8 *) (s + t) = r int64 r, int64 s, int64 t SPARC, AMD64
*(swapendian uint64 *) s = r int64 r, int64 s SPARC
*(swapendian uint32 *) s = r int64 r, int64 s SPARC
*(swapendian uint8 *) s = r int64 r, int64 s SPARC
*(swapendian int64 *) s = r int64 r, int64 s SPARC
*(swapendian int32 *) s = r int64 r, int64 s SPARC
*(swapendian int8 *) s = r int64 r, int64 s SPARC
r = s int64 s stack64 r SPARC, AMD64
round *(uint32 *) (s + n) int64 s, immediate n SPARC
r top = s int32 s stack64 r PPC32-LINUX, PPC32-MACOS
r bottom = s int32 s stack64 r PPC32-LINUX, PPC32-MACOS
inplace r top = s int32 s, stack64 r stack64 r PPC32-LINUX, PPC32-MACOS
*(uint32 *) (s - n) = r int32 r, int32 s, immediate n PPC32-LINUX, PPC32-MACOS
*(uint32 *) (s += n) = r int32 r, int32 s, immediate n int32 s PPC32-LINUX, PPC32-MACOS
*(uint32 *) (s -= n) = r int32 r, int32 s, immediate n int32 s PPC32-LINUX, PPC32-MACOS
*(uint32 *) (s += t) = r int32 r, int32 s, int32 t int32 s PPC32-LINUX, PPC32-MACOS
*(uint16 *) (s + n) = r int32 r, int32 s, immediate n PPC32-LINUX, PPC32-MACOS
*(uint16 *) (s - n) = r int32 r, int32 s, immediate n PPC32-LINUX, PPC32-MACOS
*(uint16 *) (s + t) = r int32 r, int32 s, int32 t PPC32-LINUX, PPC32-MACOS
*(uint16 *) (s += n) = r int32 r, int32 s, immediate n int32 s PPC32-LINUX, PPC32-MACOS
*(uint16 *) (s -= n) = r int32 r, int32 s, immediate n int32 s PPC32-LINUX, PPC32-MACOS
*(uint16 *) (s += t) = r int32 r, int32 s, int32 t int32 s PPC32-LINUX, PPC32-MACOS
*(uint8 *) (s + n) = r int32 r, int32 s, immediate n PPC32-LINUX, PPC32-MACOS
*(uint8 *) (s - n) = r int32 r, int32 s, immediate n PPC32-LINUX, PPC32-MACOS
*(uint8 *) (s + t) = r int32 r, int32 s, int32 t PPC32-LINUX, PPC32-MACOS
*(uint8 *) (s += n) = r int32 r, int32 s, immediate n int32 s PPC32-LINUX, PPC32-MACOS
*(uint8 *) (s -= n) = r int32 r, int32 s, immediate n int32 s PPC32-LINUX, PPC32-MACOS
*(uint8 *) (s += t) = r int32 r, int32 s, int32 t int32 s PPC32-LINUX, PPC32-MACOS
*(swapendian int32 *) s = r int32 r, int32 s PPC32-LINUX, PPC32-MACOS
*(swapendian uint32 *) s = r int32 r, int32 s PPC32-LINUX, PPC32-MACOS
*(uint16 *) (s + n) = r int64 r, int64 s, immediate n AMD64
*( int16 *) (s + n) = r int64 r, int64 s, immediate n AMD64
*(uint8 *) (s + n) = m int64 s, immediate m, immediate n AMD64
*(uint16 *) (s + n) = m int64 s, immediate m, immediate n AMD64
*(uint32 *) (s + n) = m int64 s, immediate m, immediate n AMD64
*(uint64 *) (s + n) = m int64 s, immediate m, immediate n AMD64
*( int8 *) (s + n) = m int64 s, immediate m, immediate n AMD64
*( int16 *) (s + n) = m int64 s, immediate m, immediate n AMD64
*( int32 *) (s + n) = m int64 s, immediate m, immediate n AMD64
*( int64 *) (s + n) = m int64 s, immediate m, immediate n AMD64
*(uint16 *) (s + t) = r int64 r, int64 s, int64 t AMD64
*( int16 *) (s + t) = r int64 r, int64 s, int64 t AMD64
inplace r bottom = s int64 s, stack64 r stack64 r AMD64

Supported integer arithmetic operations

Qhasm Instruction Input Evaluated flags Output Set flags Machines
r = s int32 s int32 r X86, PPC32-LINUX, PPC32-MACOS
r = s int3232 s int32 r X86
r = s int32 s int3232 r X86
r = s int6464 s int32 r X86
r = s int32 s int6464 r X86
r = s int64 s int64 r SPARC, AMD64
r = s int3232 s int64 r AMD64
r = s int64 s int3232 r AMD64
r = s int6464 s int64 r AMD64
r = s int64 s int6464 r AMD64
r = s & 255 int32 r X86
r = (s >> 8) & 255 AMD64
r = (s >> 8) & 255 int32 r X86
(int128) t r = r * s int64 s =, unsigned>, unsigned< AMD64
(uint128) t r = r * s int64 s =, unsigned>, unsigned< AMD64
r &= s int6464 r, int6464 s int6464 r X86, AMD64
r &= s int32 r, int32 s int32 r =, unsigned>, unsigned< X86
r &= t int64 r, int64 t int64 r SPARC
r = s & t int64 s, int64 t int64 r SPARC
r &= t int32 r, int32 t int32 r PPC32-LINUX, PPC32-MACOS
r = s & t int32 s, int32 t int32 r PPC32-LINUX, PPC32-MACOS
r &= s int64 r, int64 s int64 r =, unsigned>, unsigned< AMD64
r = s & 255 int64 s int64 r AMD64
r = s & (65536 * n) int32 s, immediate n int32 r <, >, = PPC32-LINUX, PPC32-MACOS
r &= n int32 r, immediate n int32 r =, unsigned>, unsigned< X86
r &= n int64 r, immediate n int64 r SPARC
r = &n immediate n int32 r PPC32-LINUX
r &= n int32 r, immediate n int32 r <, >, = PPC32-LINUX, PPC32-MACOS
r = s & n int32 s, immediate n int32 r <, >, = PPC32-LINUX, PPC32-MACOS
r = &n immediate n int64 r AMD64
(uint32) r &= n int64 r, immediate n int64 r =, unsigned>, unsigned< AMD64
r = &n & 0xffff0000 immediate n int32 r PPC32-LINUX, PPC32-MACOS
r &= ~t int64 r, int64 t int64 r SPARC
r &= ~t int32 r, int32 t int32 r PPC32-LINUX, PPC32-MACOS
r = s & ~t int32 s, int32 t int32 r PPC32-LINUX, PPC32-MACOS
r *= s int64 r, int64 s int64 r =, unsigned>, unsigned< AMD64
r = s * n int64 s, immediate n int64 r =, unsigned>, unsigned< AMD64
int32323232 r += s int6464 r, int6464 s int6464 r X86, AMD64
uint32323232 r += s int6464 r, int6464 s int6464 r X86, AMD64
r = s + t int32 s, int32 t int32 r X86, PPC32-LINUX, PPC32-MACOS
r += s int32 r, int32 s int32 r =, unsigned>, unsigned<, carry X86
r += t int64 r, int64 t int64 r SPARC
r += t int64 r, int64 t int64 r unsigned>, unsigned<, =, carry32 SPARC
r = s + t int64 s, int64 t int64 r SPARC, AMD64
r = s + t int64 s, int64 t int64 r unsigned>, unsigned<, =, carry32 SPARC
r += t int32 r, int32 t int32 r PPC32-LINUX, PPC32-MACOS
r = s + t int32 s, int32 t int32 r <, >, = PPC32-LINUX, PPC32-MACOS
r = s + t int32 s, int32 t int32 r overflow PPC32-LINUX, PPC32-MACOS
r = s + t int32 s, int32 t int32 r overflow, <, >, = PPC32-LINUX, PPC32-MACOS
r = s + t int32 s, int32 t int32 r carry PPC32-LINUX, PPC32-MACOS
r = s + t int32 s, int32 t int32 r <, >, =, carry PPC32-LINUX, PPC32-MACOS
r = s + t int32 s, int32 t int32 r overflow, carry PPC32-LINUX, PPC32-MACOS
r = s + t int32 s, int32 t int32 r overflow, <, >, =, carry PPC32-LINUX, PPC32-MACOS
r += s int64 r, int64 s int64 r =, unsigned>, unsigned<, carry AMD64
(uint32) r += s int64 r, int64 s int64 r =, unsigned>, unsigned<, carry AMD64
r += s + carry int32 r, int32 s carry int32 r =, unsigned>, unsigned<, carry X86
r = s + t + carry int32 s, int32 t int32 r carry PPC32-LINUX, PPC32-MACOS
r = s + t + carry int32 s, int32 t int32 r <, >, =, carry PPC32-LINUX, PPC32-MACOS
r = s + t + carry int32 s, int32 t int32 r overflow, carry PPC32-LINUX, PPC32-MACOS
r = s + t + carry int32 s, int32 t int32 r overflow, <, >, =, carry PPC32-LINUX, PPC32-MACOS
r += s + carry int64 r, int64 s carry int64 r =, unsigned>, unsigned<, carry AMD64
(uint32) r += s + carry int64 r, int64 s carry int64 r =, unsigned>, unsigned<, carry AMD64
r += t + carry32 int64 r, int64 t carry32 int64 r unsigned>, unsigned<, =, carry32 SPARC
r = s + t + carry32 int64 s, int64 t carry32 int64 r unsigned>, unsigned<, =, carry32 SPARC
r = s + t + n int32 s, int32 t, immediate n int32 r X86
r += t + n int32 r, int32 t, immediate n int32 r X86
r = s + t + n int64 s, int64 t, immediate n int64 r AMD64
r += t + n int64 r, int64 t, immediate n int64 r AMD64
r = s + 65536 * n int32 s, immediate n int32 r PPC32-LINUX, PPC32-MACOS
r += n int32 r, immediate n int32 r =, unsigned>, unsigned<, carry X86
r += n int64 r, immediate n int64 r SPARC
r += n int64 r, immediate n int64 r unsigned>, unsigned<, =, carry32 SPARC
r = s + n int64 s, immediate n int64 r SPARC
r = s + n int64 s, immediate n int64 r unsigned>, unsigned<, =, carry32 SPARC
r += n int32 r, immediate n int32 r PPC32-LINUX, PPC32-MACOS
r = s + n int32 s, immediate n int32 r PPC32-LINUX, PPC32-MACOS
r = s + n int32 s, immediate n int32 r carry PPC32-LINUX, PPC32-MACOS
r = s + n int32 s, immediate n int32 r <, >, =, carry PPC32-LINUX, PPC32-MACOS
r += n int64 r, immediate n int64 r =, unsigned>, unsigned<, carry AMD64
r += n + carry int32 r, immediate n carry int32 r =, unsigned>, unsigned<, carry X86
r += n + carry int64 r, immediate n carry int64 r =, unsigned>, unsigned<, carry AMD64
r += n + carry32 int64 r, immediate n carry32 int64 r unsigned>, unsigned<, =, carry32 SPARC
r = s + n + carry32 int64 s, immediate n carry32 int64 r unsigned>, unsigned<, =, carry32 SPARC
int32323232 r -= s int6464 r, int6464 s int6464 r X86, AMD64
uint32323232 r -= s int6464 r, int6464 s int6464 r X86, AMD64
r -= s int32 r, int32 s int32 r =, unsigned>, unsigned< X86
r - s int32 r, int32 s =, unsigned>, unsigned< X86
r -= t int64 r, int64 t int64 r SPARC
r -= t int64 r, int64 t int64 r unsigned>, unsigned<, =, carry32 SPARC
r - t int64 r, int64 t unsigned>, unsigned<, =, carry32 SPARC
r = s - t int64 s, int64 t int64 r SPARC
r = s - t int64 s, int64 t int64 r unsigned>, unsigned<, =, carry32 SPARC
r = -s int32 s int32 r PPC32-LINUX, PPC32-MACOS
r = -s int32 s int32 r <, >, = PPC32-LINUX, PPC32-MACOS
r = -s int32 s int32 r overflow PPC32-LINUX, PPC32-MACOS
r = -s int32 s int32 r overflow, <, >, = PPC32-LINUX, PPC32-MACOS
(int32) s - t int32 s, int32 t <, >, = PPC32-LINUX, PPC32-MACOS
(uint32) s - t int32 s, int32 t <, >, = PPC32-LINUX, PPC32-MACOS
r -= t int32 r, int32 t int32 r PPC32-LINUX, PPC32-MACOS
r = s - t int32 s, int32 t int32 r PPC32-LINUX, PPC32-MACOS
r = s - t int32 s, int32 t int32 r <, >, = PPC32-LINUX, PPC32-MACOS
r = s - t int32 s, int32 t int32 r overflow PPC32-LINUX, PPC32-MACOS
r = s - t int32 s, int32 t int32 r overflow, <, >, = PPC32-LINUX, PPC32-MACOS
r = s - t int32 s, int32 t int32 r carry PPC32-LINUX, PPC32-MACOS
r = s - t int32 s, int32 t int32 r <, >, =, carry PPC32-LINUX, PPC32-MACOS
r = s - t int32 s, int32 t int32 r overflow, carry PPC32-LINUX, PPC32-MACOS
r = s - t int32 s, int32 t int32 r overflow, <, >, =, carry PPC32-LINUX, PPC32-MACOS
r = -r int64 r int64 r =, unsigned>, unsigned< AMD64
r -= s int64 r, int64 s int64 r =, unsigned>, unsigned< AMD64
r - s int64 r, int64 s =, unsigned>, unsigned< AMD64
(uint32) r -= s int64 r, int64 s int64 r =, unsigned>, unsigned< AMD64
r = s - t + carry - 1 int32 s, int32 t int32 r carry PPC32-LINUX, PPC32-MACOS
r = s - t + carry - 1 int32 s, int32 t int32 r <, >, =, carry PPC32-LINUX, PPC32-MACOS
r = s - t + carry - 1 int32 s, int32 t int32 r overflow, carry PPC32-LINUX, PPC32-MACOS
r = s - t + carry - 1 int32 s, int32 t int32 r overflow, <, >, =, carry PPC32-LINUX, PPC32-MACOS
r = s - 65536 * n int32 s, immediate n int32 r PPC32-LINUX, PPC32-MACOS
r = -n immediate n int32 r X86, PPC32-LINUX, PPC32-MACOS
r -= n int32 r, immediate n int32 r =, unsigned>, unsigned< X86
r - n int32 r, immediate n =, unsigned>, unsigned< X86
r = -n immediate n int64 r SPARC, AMD64
r -= n int64 r, immediate n int64 r SPARC
r -= n int64 r, immediate n int64 r unsigned>, unsigned<, =, carry32 SPARC
r - n int64 r, immediate n unsigned>, unsigned<, =, carry32 SPARC
r = s - n int64 s, immediate n int64 r SPARC
(int32) s - n int32 s, immediate n <, >, = PPC32-LINUX, PPC32-MACOS
(uint32) s - n int32 s, immediate n <, >, = PPC32-LINUX, PPC32-MACOS
r -= n int32 r, immediate n int32 r PPC32-LINUX, PPC32-MACOS
r = s - n int32 s, immediate n int32 r PPC32-LINUX, PPC32-MACOS
r = s - n int32 s, immediate n int32 r carry PPC32-LINUX, PPC32-MACOS
r = s - n int32 s, immediate n int32 r <, >, =, carry PPC32-LINUX, PPC32-MACOS
r -= n int64 r, immediate n int64 r =, unsigned>, unsigned< AMD64
r - n int64 r, immediate n =, unsigned>, unsigned< AMD64
r = (r.t) << s int64 r, int64 t int64 r =, unsigned>, unsigned< AMD64
r = (r.t) << n int64 r, int64 t, immediate n int64 r =, unsigned>, unsigned< AMD64
r = 0 int6464 r X86, AMD64
r = 65536 * n immediate n int32 r PPC32-LINUX, PPC32-MACOS
r = s << t int32 s, int32 t int32 r PPC32-LINUX, PPC32-MACOS
r <<= s int32 r int32 r =, unsigned>, unsigned< X86
r <<= s int64 r int64 r =, unsigned>, unsigned< AMD64
r = s <<< t int32 s, int32 t int32 r PPC32-LINUX, PPC32-MACOS
r <<<= s int64 r int64 r =, unsigned>, unsigned< AMD64
r <<<= 0 int6464 r int6464 r X86, AMD64
r = s <<< 0 int6464 s int6464 r X86, AMD64
r <<<= 32 int6464 r int6464 r X86, AMD64
r = s <<< 32 int6464 s int6464 r X86, AMD64
r <<<= 64 int6464 r int6464 r X86, AMD64
r = s <<< 64 int6464 s int6464 r X86, AMD64
r <<<= 96 int6464 r int6464 r X86, AMD64
r = s <<< 96 int6464 s int6464 r X86, AMD64
r <<<= n int32 r, immediate n int32 r =, unsigned>, unsigned< X86
r = s <<< n int32 s, immediate n int32 r PPC32-LINUX, PPC32-MACOS
r <<<= n int64 r, immediate n int64 r =, unsigned>, unsigned< AMD64
(uint32) r <<<= n int64 r, immediate n int64 r =, unsigned>, unsigned< AMD64
int32323232 r <<= n int6464 r, immediate n int6464 r X86, AMD64
uint32323232 r <<= n int6464 r, immediate n int6464 r X86, AMD64
r <<= n int32 r, immediate n int32 r =, unsigned>, unsigned< X86
(int32) r <<= n int64 r, immediate n int64 r SPARC
(int64) r <<= n int64 r, immediate n int64 r SPARC
(uint32) r <<= n int64 r, immediate n int64 r SPARC
(uint64) r <<= n int64 r, immediate n int64 r SPARC
r <<= n int64 r, immediate n int64 r SPARC
r = (int32) s << n int64 s, immediate n int64 r SPARC
r = (int64) s << n int64 s, immediate n int64 r SPARC
r = (uint32) s << n int64 s, immediate n int64 r SPARC
r = (uint64) s << n int64 s, immediate n int64 r SPARC
r = s << n int64 s, immediate n int64 r SPARC
r <<= n int32 r, immediate n int32 r PPC32-LINUX, PPC32-MACOS
r = s << n int32 s, immediate n int32 r PPC32-LINUX, PPC32-MACOS
r <<= n int64 r, immediate n int64 r =, unsigned>, unsigned< AMD64
(uint32) r <<= n int64 r, immediate n int64 r =, unsigned>, unsigned< AMD64
r = (uint32) s >> t int32 s, int32 t int32 r PPC32-LINUX, PPC32-MACOS
r = (int32) s >> t int32 s, int32 t int32 r PPC32-LINUX, PPC32-MACOS
(uint32) r >>= s int32 r int32 r =, unsigned>, unsigned< X86
(int32) r >>= s int32 r int32 r =, unsigned>, unsigned< X86
(int64) r >>= s int64 r int64 r =, unsigned>, unsigned< AMD64
(uint64) r >>= s int64 r int64 r =, unsigned>, unsigned< AMD64
r = (t r) >> s int64 r, int64 t int64 r =, unsigned>, unsigned< AMD64
r >>>= s int64 r int64 r =, unsigned>, unsigned< AMD64
r >>>= n int64 r, immediate n int64 r =, unsigned>, unsigned< AMD64
(uint32) r >>>= n int64 r, immediate n int64 r =, unsigned>, unsigned< AMD64
int32323232 r >>= n int6464 r, immediate n int6464 r X86, AMD64
uint32323232 r >>= n int6464 r, immediate n int6464 r X86, AMD64
(uint32) r >>= n int32 r, immediate n int32 r =, unsigned>, unsigned< X86
(int32) r >>= n int32 r, immediate n int32 r =, unsigned>, unsigned< X86
(int32) r >>= n int64 r, immediate n int64 r SPARC
(int64) r >>= n int64 r, immediate n int64 r SPARC
(uint32) r >>= n int64 r, immediate n int64 r SPARC
(uint64) r >>= n int64 r, immediate n int64 r SPARC
r = (int32) s >> n int64 s, immediate n int64 r SPARC
r = (int64) s >> n int64 s, immediate n int64 r SPARC
r = (uint32) s >> n int64 s, immediate n int64 r SPARC
r = (uint64) s >> n int64 s, immediate n int64 r SPARC
(uint32) r >>= n int32 r, immediate n int32 r PPC32-LINUX, PPC32-MACOS
(int32) r >>= n int32 r, immediate n int32 r PPC32-LINUX, PPC32-MACOS
r = (uint32) s >> n int32 s, immediate n int32 r PPC32-LINUX, PPC32-MACOS
r = (int32) s >> n int32 s, immediate n int32 r PPC32-LINUX, PPC32-MACOS
(int64) r >>= n int64 r, immediate n int64 r =, unsigned>, unsigned< AMD64
(uint64) r >>= n int64 r, immediate n int64 r =, unsigned>, unsigned< AMD64
(uint32) r >>= n int64 r, immediate n int64 r =, unsigned>, unsigned< AMD64
(int32) r >>= n int64 r, immediate n int64 r =, unsigned>, unsigned< AMD64
r = (t r) >> n int64 r, int64 t, immediate n int64 r =, unsigned>, unsigned< AMD64
r ^= s int6464 r, int6464 s int6464 r X86, AMD64
r ^= s int32 r, int32 s int32 r =, unsigned>, unsigned< X86
r ^= t int64 r, int64 t int64 r SPARC
r = s ^ t int64 s, int64 t int64 r SPARC
r = s ^ t int32 s, int32 t int32 r PPC32-LINUX, PPC32-MACOS
r ^= s int64 r, int64 s int64 r =, unsigned>, unsigned< AMD64
r ^= -n int32 r, immediate n int32 r =, unsigned>, unsigned< X86
(uint32) r ^= -n int64 r, immediate n int64 r =, unsigned>, unsigned< AMD64
r = s ^ (65536 * n) int32 s, immediate n int32 r PPC32-LINUX, PPC32-MACOS
r ^= n int32 r, immediate n int32 r =, unsigned>, unsigned< X86
r ^= n int64 r, immediate n int64 r SPARC
r = s ^ n int32 s, immediate n int32 r PPC32-LINUX, PPC32-MACOS
(uint32) r ^= n int64 r, immediate n int64 r =, unsigned>, unsigned< AMD64
r = s ^ ~t int32 s, int32 t int32 r PPC32-LINUX, PPC32-MACOS
assign 10 to r AMD64
assign 11 to r AMD64
assign 12 to r AMD64
assign 13 to r AMD64
assign 14 to r AMD64
assign 15 to r AMD64
assign 15 to r = (s >> 8) & 255 AMD64
assign 1 to r X86
assign 1 to r AMD64
assign 1 to r = (s >> 8) & 255 AMD64
assign 2 to r X86
assign 2 to r AMD64
assign 2 to r = (s >> 8) & 255 AMD64
assign 3 to r X86
assign 3 to r AMD64
assign 4 to r X86
assign 4 to r AMD64
assign 5 to r X86
assign 5 to r AMD64
assign 6 to r X86
assign 6 to r AMD64
assign 7 to r X86
assign 7 to r AMD64
assign 8 to r AMD64
assign 9 to r AMD64
r bits m = s <<< t int32 r, int32 s, int32 t, immediate m int32 r PPC32-LINUX, PPC32-MACOS
r bits m = s <<< n int32 r, int32 s, immediate n, immediate m int32 r PPC32-LINUX, PPC32-MACOS
r = m & (s <<< t) int32 s, int32 t, immediate m int32 r PPC32-LINUX, PPC32-MACOS
r = m & (s <<< n) int32 s, immediate n, immediate m int32 r PPC32-LINUX, PPC32-MACOS
r = n immediate n int32 r X86, PPC32-LINUX, PPC32-MACOS
r = n immediate n int64 r SPARC, AMD64
r = n & 0xfffffc00 immediate n int64 r SPARC
r = (n & 0xfffffc0000000000) >> 32 immediate n int64 r SPARC
r = n - s int32 s, immediate n int32 r carry PPC32-LINUX, PPC32-MACOS
while (n) { *y++ = x; --n } X86
while (n) { *y++ = *x++; --n } X86
while (n) { *y++ = x; --n } AMD64
while (n) { *y++ = *x++; --n } AMD64
r |= s int6464 r, int6464 s int6464 r X86, AMD64
r |= s int32 r, int32 s int32 r =, unsigned>, unsigned< X86
r |= t int64 r, int64 t int64 r SPARC
r = s | t int64 s, int64 t int64 r SPARC
r |= t int32 r, int32 t int32 r PPC32-LINUX, PPC32-MACOS
r = s | t int32 s, int32 t int32 r PPC32-LINUX, PPC32-MACOS
r |= s int64 r, int64 s int64 r =, unsigned>, unsigned< AMD64
r |= &n & 0xffff int32 r, immediate n int32 r PPC32-LINUX, PPC32-MACOS
r = s | (&n & 0xffff) int32 s, immediate n int32 r PPC32-LINUX, PPC32-MACOS
r = s | (65536 * n) int32 s, immediate n int32 r PPC32-LINUX, PPC32-MACOS
r |= n int32 r, immediate n int32 r =, unsigned>, unsigned< X86
r |= n int64 r, immediate n int64 r SPARC
r |= n int32 r, immediate n int32 r PPC32-LINUX, PPC32-MACOS
r = s | n int32 s, immediate n int32 r PPC32-LINUX, PPC32-MACOS
(uint32) r |= n int64 r, immediate n int64 r =, unsigned>, unsigned< AMD64
r |= n & 0x3ff int64 r, immediate n int64 r SPARC
r |= (n & 0x3ff00000000) >> 32 int64 r, immediate n int64 r SPARC
r |= ~t int32 r, int32 t int32 r PPC32-LINUX, PPC32-MACOS
r = s | ~t int32 s, int32 t int32 r PPC32-LINUX, PPC32-MACOS
r = ~t int64 t int64 r SPARC, AMD64
r ~&= s int6464 r, int6464 s int6464 r X86, AMD64
r = s ~& t int32 s, int32 t int32 r PPC32-LINUX, PPC32-MACOS
r = s ~^ t int32 s, int32 t int32 r PPC32-LINUX, PPC32-MACOS
r = s ~| t int32 s, int32 t int32 r PPC32-LINUX, PPC32-MACOS

Supported floating point operations

Supported floating point load/store operations

Qhasm Instruction Input Evaluated flags Output Set flags Machines
r = *(float64 *) &n immediate n float80 r X86, AMD64
r = *(float64 *) &s stack64 s float80 r X86, AMD64
r = *(float64 *) (s + n) int32 s, immediate n float80 r X86
r += *(float64 *) &n float80 r, immediate n float80 r X86, AMD64
r += *(float64 *) &s float80 r, stack64 s float80 r X86, AMD64
r += *(float64 *) (s + n) float80 r, int32 s, immediate n float80 r X86
r -= *(float64 *) &n float80 r, immediate n float80 r X86, AMD64
r -= *(float64 *) &s float80 r, stack64 s float80 r X86, AMD64
r -= *(float64 *) (s + n) float80 r, int32 s, immediate n float80 r X86
r *= *(float64 *) &n float80 r, immediate n float80 r X86, AMD64
r *= *(float64 *) &s float80 r, stack64 s float80 r X86, AMD64
r *= *(float64 *) (s + n) float80 r, int32 s, immediate n float80 r X86
r = *(int32 *) &n immediate n float80 r X86, AMD64
r = *(int32 *) &s stack32 s float80 r X86
r = *(int32 *) (s + n) int32 s, immediate n float80 r X86
r = s stack64 s float64 r SPARC, PPC32-LINUX, PPC32-MACOS
r = *(float64 *) (s + n) int64 s, immediate n float64 r SPARC
r = *(float64 *) (s + n) int32 s, immediate n float64 r PPC32-LINUX, PPC32-MACOS
r = *(float64 *) (s - n) int32 s, immediate n float64 r PPC32-LINUX, PPC32-MACOS
r = *(float64 *) (s + t) int32 s, int32 t float64 r PPC32-LINUX, PPC32-MACOS
r = *(float64 *) (s + n) int64 s, immediate n float80 r AMD64
r = *(int32 *) (s + n) int64 s, immediate n float80 r AMD64
r += *(float64 *) (s + n) float80 r, int64 s, immediate n float80 r AMD64
r -= *(float64 *) (s + n) float80 r, int64 s, immediate n float80 r AMD64
r *= *(float64 *) (s + n) float80 r, int64 s, immediate n float80 r AMD64
*(float64 *) (s + n) = r float80 r, int32 s, immediate n X86
*(float64 *) &s = r float80 r stack64 s X86, AMD64
r = s float64 s stack64 r SPARC, PPC32-LINUX, PPC32-MACOS
*(float64 *) (s + n) = r float64 r, int64 s, immediate n SPARC
*(float64 *) (s + n) = r float64 r, int32 s, immediate n PPC32-LINUX, PPC32-MACOS
*(float64 *) (s - n) = r float64 r, int32 s, immediate n PPC32-LINUX, PPC32-MACOS
*(float64 *) (s + t) = r float64 r, int32 s, int32 t PPC32-LINUX, PPC32-MACOS
*(float64 *) (s += n) = r float64 r, int32 s, immediate n int32 s PPC32-LINUX, PPC32-MACOS
*(float64 *) (s -= n) = r float64 r, int32 s, immediate n int32 s PPC32-LINUX, PPC32-MACOS
*(float64 *) (s += t) = r float64 r, int32 s, int32 t int32 s PPC32-LINUX, PPC32-MACOS
*(float64 *) (s + n) = r float80 r, int64 s, immediate n AMD64

Supported floating point arithmetic operations

Qhasm Instruction Input Evaluated flags Output Set flags Machines
r = s float64 s float64 r PPC32-LINUX, PPC32-MACOS
r *= s float80 r, float80 s float80 r X86, AMD64
r = s * t float64 s, float64 t float64 r SPARC, PPC32-LINUX, PPC32-MACOS
r *= t float64 r, float64 t float64 r SPARC, PPC32-LINUX, PPC32-MACOS
r = s * t + u float64 s, float64 t, float64 u float64 r PPC32-LINUX, PPC32-MACOS
r = s * t - u float64 s, float64 t, float64 u float64 r PPC32-LINUX, PPC32-MACOS
r += s float80 r, float80 s float80 r X86, AMD64
r = s + t float64 s, float64 t float64 r SPARC, PPC32-LINUX, PPC32-MACOS
r += t float64 r, float64 t float64 r SPARC, PPC32-LINUX, PPC32-MACOS
r += s * t float64 r, float64 s, float64 t float64 r PPC32-LINUX, PPC32-MACOS
r -= s float80 r, float80 s float80 r X86, AMD64
r = s - t float64 s, float64 t float64 r SPARC, PPC32-LINUX, PPC32-MACOS
r -= t float64 r, float64 t float64 r SPARC, PPC32-LINUX, PPC32-MACOS
r = -(s * t + u) float64 s, float64 t, float64 u float64 r PPC32-LINUX, PPC32-MACOS
r = -(s * t - u) float64 s, float64 t, float64 u float64 r PPC32-LINUX, PPC32-MACOS
r -= s;negate float80 r, float80 s float80 r X86, AMD64
r = 0 float80 r X86, AMD64
stackpop r float80 r X86, AMD64
stacktop r float80 r X86, AMD64

Supported misc operations

Supported misc misc operations

Qhasm Instruction Input Evaluated flags Output Set flags Machines
caller r X86, PPC32-LINUX, PPC32-MACOS, AMD64
emms X86, AMD64
r top = n immediate n stack64 r X86, AMD64
round *(uint16 *) &n immediate n X86, AMD64
f# immediate f X86, SPARC, PPC32-LINUX, PPC32-MACOS, AMD64
nop SPARC, AMD64
round to nearest PPC32-LINUX, PPC32-MACOS

Supported branch operations

Supported branch conditional operations

Qhasm Instruction Input Evaluated flags Output Set flags Machines
goto f if = immediate f = X86, SPARC, PPC32-LINUX, PPC32-MACOS, AMD64
goto f if != immediate f = X86, SPARC, PPC32-LINUX, PPC32-MACOS, AMD64
goto f if unsigned> immediate f unsigned> X86, SPARC, AMD64
goto f if !unsigned> immediate f unsigned> X86, SPARC, AMD64
goto f if unsigned< immediate f unsigned< X86, SPARC, AMD64
goto f if !unsigned< immediate f unsigned< X86, SPARC, AMD64
goto f if < immediate f < PPC32-LINUX, PPC32-MACOS
goto f if !< immediate f < PPC32-LINUX, PPC32-MACOS
goto f if > immediate f > PPC32-LINUX, PPC32-MACOS
goto f if !> immediate f > PPC32-LINUX, PPC32-MACOS

Supported branch unconditional operations

Qhasm Instruction Input Evaluated flags Output Set flags Machines
goto f immediate f X86, SPARC, PPC32-LINUX, PPC32-MACOS, AMD64

Supported declaration operations

Supported declaration misc operations

Qhasm Instruction Input Evaluated flags Output Set flags Machines
float64 r SPARC, PPC32-LINUX, PPC32-MACOS
float80 r X86, AMD64
int3232 r X86, AMD64
int32 r X86, PPC32-LINUX, PPC32-MACOS
int6464 r X86, AMD64
int64 r SPARC, AMD64
stack128 r X86, SPARC, PPC32-LINUX, PPC32-MACOS, AMD64
stack256 r X86, SPARC, PPC32-LINUX, PPC32-MACOS, AMD64
stack32 r X86, PPC32-LINUX, PPC32-MACOS, AMD64
stack512 r X86, SPARC, PPC32-LINUX, PPC32-MACOS, AMD64
stack64 r X86, SPARC, PPC32-LINUX, PPC32-MACOS, AMD64