Type | Names |
---|---|
int32 | 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 |
float64 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 |
Type | Names |
---|---|
int32 | 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 |
float64 | 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32 |
Type | Number of bytes |
---|---|
stack32 | 4 |
stack64 | 8 |
stack128 | 16 |
stack256 | 32 |
stack512 | 64 |
Qhasm Instruction | Input | Evaluated flags | Output | Set flags | Assembly Code |
---|---|---|---|---|---|
r = s | stack32 s | int32 r | lwz r,s | ||
r = top s | stack64 s | int32 r | lwz r,s | ||
r = bottom s | stack64 s | int32 r | lwz r,!shift4s | ||
r = *(int32 *) (s + n) | int32 s, immediate n | int32 r | lwa r,n(s) | ||
r = *(int32 *) (s - n) | int32 s, immediate n | int32 r | lwa r,-n(s) | ||
r = *(int32 *) (s + t) | int32 s, int32 t | int32 r | lwax r,s,t | ||
r = *(int32 *) (s += n) | int32 s, immediate n | int32 r, int32 s | lwau r,n(s) | ||
r = *(int32 *) (s -= n) | int32 s, immediate n | int32 r, int32 s | lwau r,-n(s) | ||
r = *(int32 *) (s += t) | int32 s, int32 t | int32 r, int32 s | lwaux r,s,t | ||
r = *(uint32 *) (s + n) | int32 s, immediate n | int32 r | lwz r,n(s) | ||
r = *(uint32 *) (s - n) | int32 s, immediate n | int32 r | lwz r,-n(s) | ||
r = *(uint32 *) (s + t) | int32 s, int32 t | int32 r | lwzx r,s,t | ||
r = *(uint32 *) (s += n) | int32 s, immediate n | int32 r, int32 s | lwzu r,n(s) | ||
r = *(uint32 *) (s -= n) | int32 s, immediate n | int32 r, int32 s | lwzu r,-n(s) | ||
r = *(uint32 *) (s += t) | int32 s, int32 t | int32 r, int32 s | lwzux r,s,t | ||
r = *(int16 *) (s + n) | int32 s, immediate n | int32 r | lha r,n(s) | ||
r = *(int16 *) (s - n) | int32 s, immediate n | int32 r | lha r,-n(s) | ||
r = *(int16 *) (s + t) | int32 s, int32 t | int32 r | lhax r,s,t | ||
r = *(int16 *) (s += n) | int32 s, immediate n | int32 r, int32 s | lhau r,n(s) | ||
r = *(int16 *) (s -= n) | int32 s, immediate n | int32 r, int32 s | lhau r,-n(s) | ||
r = *(int16 *) (s += t) | int32 s, int32 t | int32 r, int32 s | lhaux r,s,t | ||
r = *(uint16 *) (s + n) | int32 s, immediate n | int32 r | lhz r,n(s) | ||
r = *(uint16 *) (s - n) | int32 s, immediate n | int32 r | lhz r,-n(s) | ||
r = *(uint16 *) (s + t) | int32 s, int32 t | int32 r | lhzx r,s,t | ||
r = *(uint16 *) (s += n) | int32 s, immediate n | int32 r, int32 s | lhzu r,n(s) | ||
r = *(uint16 *) (s -= n) | int32 s, immediate n | int32 r, int32 s | lhzu r,-n(s) | ||
r = *(uint16 *) (s += t) | int32 s, int32 t | int32 r, int32 s | lhzux r,s,t | ||
r = *(int8 *) (s + n) | int32 s, immediate n | int32 r | lba r,n(s) | ||
r = *(int8 *) (s - n) | int32 s, immediate n | int32 r | lba r,-n(s) | ||
r = *(int8 *) (s + t) | int32 s, int32 t | int32 r | lbax r,s,t | ||
r = *(int8 *) (s += n) | int32 s, immediate n | int32 r, int32 s | lbau r,n(s) | ||
r = *(int8 *) (s -= n) | int32 s, immediate n | int32 r, int32 s | lbau r,-n(s) | ||
r = *(int8 *) (s += t) | int32 s, int32 t | int32 r, int32 s | lbaux r,s,t | ||
r = *(uint8 *) (s + n) | int32 s, immediate n | int32 r | lbz r,n(s) | ||
r = *(uint8 *) (s - n) | int32 s, immediate n | int32 r | lbz r,-n(s) | ||
r = *(uint8 *) (s + t) | int32 s, int32 t | int32 r | lbzx r,s,t | ||
r = *(uint8 *) (s += n) | int32 s, immediate n | int32 r, int32 s | lbzu r,n(s) | ||
r = *(uint8 *) (s -= n) | int32 s, immediate n | int32 r, int32 s | lbzu r,-n(s) | ||
r = *(uint8 *) (s += t) | int32 s, int32 t | int32 r, int32 s | lbzux r,s,t | ||
r = *(swapendian int32 *) s | int32 s | int32 r | lwbrx r,0,s | ||
r = *(swapendian uint32 *) s | int32 s | int32 r | lwbrx r,0,s | ||
r = s | int32 s | stack32 r | stw s,r | ||
r top = s | int32 s | stack64 r | stw s,r | ||
r bottom = s | int32 s | stack64 r | stw s,!shift4r | ||
inplace r top = s | int32 s, stack64 r | stack64 r | stw s,r | ||
inplace r bottom = s | int32 s, stack64 r | stack64 r | stw s,!shift4r | ||
*(uint32 *) (s + n) = r | int32 r, int32 s, immediate n | stw r,n(s) | |||
*(uint32 *) (s - n) = r | int32 r, int32 s, immediate n | stw r,-n(s) | |||
*(uint32 *) (s + t) = r | int32 r, int32 s, int32 t | stwx r,s,t | |||
*(uint32 *) (s += n) = r | int32 r, int32 s, immediate n | int32 s | stwu r,n(s) | ||
*(uint32 *) (s -= n) = r | int32 r, int32 s, immediate n | int32 s | stwu r,-n(s) | ||
*(uint32 *) (s += t) = r | int32 r, int32 s, int32 t | int32 s | stwux r,s,t | ||
*(uint16 *) (s + n) = r | int32 r, int32 s, immediate n | sth r,n(s) | |||
*(uint16 *) (s - n) = r | int32 r, int32 s, immediate n | sth r,-n(s) | |||
*(uint16 *) (s + t) = r | int32 r, int32 s, int32 t | sthx r,s,t | |||
*(uint16 *) (s += n) = r | int32 r, int32 s, immediate n | int32 s | sthu r,n(s) | ||
*(uint16 *) (s -= n) = r | int32 r, int32 s, immediate n | int32 s | sthu r,-n(s) | ||
*(uint16 *) (s += t) = r | int32 r, int32 s, int32 t | int32 s | sthux r,s,t | ||
*(uint8 *) (s + n) = r | int32 r, int32 s, immediate n | stb r,n(s) | |||
*(uint8 *) (s - n) = r | int32 r, int32 s, immediate n | stb r,-n(s) | |||
*(uint8 *) (s + t) = r | int32 r, int32 s, int32 t | stbx r,s,t | |||
*(uint8 *) (s += n) = r | int32 r, int32 s, immediate n | int32 s | stbu r,n(s) | ||
*(uint8 *) (s -= n) = r | int32 r, int32 s, immediate n | int32 s | stbu r,-n(s) | ||
*(uint8 *) (s += t) = r | int32 r, int32 s, int32 t | int32 s | stbux r,s,t | ||
*(swapendian int32 *) s = r | int32 r, int32 s | stwbrx r,0,s | |||
*(swapendian uint32 *) s = r | int32 r, int32 s | stwbrx r,0,s |
Qhasm Instruction | Input | Evaluated flags | Output | Set flags | Assembly Code |
---|---|---|---|---|---|
r = s | int32 s | int32 r | mr r,s | ||
r &= t | int32 r, int32 t | int32 r | and r,r,t | ||
r = s & t | int32 s, int32 t | int32 r | and r,s,t | ||
r = s & (65536 * n) | int32 s, immediate n | int32 r | <, >, = | andis. r,s,n | |
r = &n | immediate n | int32 r | lwz r,.addr.n(2) | ||
r &= n | int32 r, immediate n | int32 r | <, >, = | andi. r,r,n | |
r = s & n | int32 s, immediate n | int32 r | <, >, = | andi. r,s,n | |
r = &n & 0xffff0000 | immediate n | int32 r | lis r,n@ha | ||
r &= ~t | int32 r, int32 t | int32 r | andc r,r,t | ||
r = s & ~t | int32 s, int32 t | int32 r | andc r,s,t | ||
r += t | int32 r, int32 t | int32 r | add r,r,t | ||
r = s + t | int32 s, int32 t | int32 r | add r,s,t | ||
r = s + t | int32 s, int32 t | int32 r | <, >, = | add. r,s,t | |
r = s + t | int32 s, int32 t | int32 r | overflow | addo r,s,t | |
r = s + t | int32 s, int32 t | int32 r | overflow, <, >, = | addo. r,s,t | |
r = s + t | int32 s, int32 t | int32 r | carry | addc r,s,t | |
r = s + t | int32 s, int32 t | int32 r | <, >, =, carry | addc. r,s,t | |
r = s + t | int32 s, int32 t | int32 r | overflow, carry | addco r,s,t | |
r = s + t | int32 s, int32 t | int32 r | overflow, <, >, =, carry | addco. r,s,t | |
r = s + t + carry | int32 s, int32 t | int32 r | carry | adde r,s,t | |
r = s + t + carry | int32 s, int32 t | int32 r | <, >, =, carry | adde. r,s,t | |
r = s + t + carry | int32 s, int32 t | int32 r | overflow, carry | addeo r,s,t | |
r = s + t + carry | int32 s, int32 t | int32 r | overflow, <, >, =, carry | addeo. r,s,t | |
r = s + 65536 * n | int32 s, immediate n | int32 r | addis r,s,n | ||
r += n | int32 r, immediate n | int32 r | addi r,r,n | ||
r = s + n | int32 s, immediate n | int32 r | addi r,s,n | ||
r = s + n | int32 s, immediate n | int32 r | carry | addic r,s,n | |
r = s + n | int32 s, immediate n | int32 r | <, >, =, carry | addic. r,s,n | |
r = -s | int32 s | int32 r | neg r,s | ||
r = -s | int32 s | int32 r | <, >, = | neg. r,s | |
r = -s | int32 s | int32 r | overflow | nego r,s | |
r = -s | int32 s | int32 r | overflow, <, >, = | nego. r,s | |
(int32) s - t | int32 s, int32 t | <, >, = | cmpw s,t | ||
(uint32) s - t | int32 s, int32 t | <, >, = | cmplw s,t | ||
r -= t | int32 r, int32 t | int32 r | subf r,t,r | ||
r = s - t | int32 s, int32 t | int32 r | subf r,t,s | ||
r = s - t | int32 s, int32 t | int32 r | <, >, = | subf. r,t,s | |
r = s - t | int32 s, int32 t | int32 r | overflow | subfo r,t,s | |
r = s - t | int32 s, int32 t | int32 r | overflow, <, >, = | subfo. r,t,s | |
r = s - t | int32 s, int32 t | int32 r | carry | subfc r,t,s | |
r = s - t | int32 s, int32 t | int32 r | <, >, =, carry | subfc. r,t,s | |
r = s - t | int32 s, int32 t | int32 r | overflow, carry | subfco r,t,s | |
r = s - t | int32 s, int32 t | int32 r | overflow, <, >, =, carry | subfco. r,t,s | |
r = s - t + carry - 1 | int32 s, int32 t | int32 r | carry | subfe r,t,s | |
r = s - t + carry - 1 | int32 s, int32 t | int32 r | <, >, =, carry | subfe. r,t,s | |
r = s - t + carry - 1 | int32 s, int32 t | int32 r | overflow, carry | subfeo r,t,s | |
r = s - t + carry - 1 | int32 s, int32 t | int32 r | overflow, <, >, =, carry | subfeo. r,t,s | |
r = s - 65536 * n | int32 s, immediate n | int32 r | addis r,s,-n | ||
r = -n | immediate n | int32 r | li r,-n | ||
(int32) s - n | int32 s, immediate n | <, >, = | cmpwi s,n | ||
(uint32) s - n | int32 s, immediate n | <, >, = | cmplwi s,n | ||
r -= n | int32 r, immediate n | int32 r | addi r,r,-n | ||
r = s - n | int32 s, immediate n | int32 r | addi r,s,-n | ||
r = s - n | int32 s, immediate n | int32 r | carry | addic r,s,-n | |
r = s - n | int32 s, immediate n | int32 r | <, >, =, carry | addic. r,s,-n | |
r = 65536 * n | immediate n | int32 r | lis r,n | ||
r = s << t | int32 s, int32 t | int32 r | slwi r,s,t | ||
r = s <<< t | int32 s, int32 t | int32 r | rlwinm r,s,t,0xffffffff | ||
r = s <<< n | int32 s, immediate n | int32 r | rlwinm r,s,n,0xffffffff | ||
r <<= n | int32 r, immediate n | int32 r | slwi r,r,n | ||
r = s << n | int32 s, immediate n | int32 r | slwi r,s,n | ||
r = (uint32) s >> t | int32 s, int32 t | int32 r | srwi r,s,t | ||
r = (int32) s >> t | int32 s, int32 t | int32 r | srawi r,s,t | ||
(uint32) r >>= n | int32 r, immediate n | int32 r | srwi r,r,n | ||
(int32) r >>= n | int32 r, immediate n | int32 r | srawi r,r,n | ||
r = (uint32) s >> n | int32 s, immediate n | int32 r | srwi r,s,n | ||
r = (int32) s >> n | int32 s, immediate n | int32 r | srawi r,s,n | ||
r = s ^ t | int32 s, int32 t | int32 r | xor r,s,t | ||
r = s ^ (65536 * n) | int32 s, immediate n | int32 r | xoris r,s,n | ||
r = s ^ n | int32 s, immediate n | int32 r | xori r,s,n | ||
r = s ^ ~t | int32 s, int32 t | int32 r | eqv r,s,t | ||
r bits m = s <<< t | int32 r, int32 s, int32 t, immediate m | int32 r | rlwimi r,s,t,m | ||
r bits m = s <<< n | int32 r, int32 s, immediate n, immediate m | int32 r | rlwimi r,s,n,m | ||
r = m & (s <<< t) | int32 s, int32 t, immediate m | int32 r | rlwinm r,s,t,m | ||
r = m & (s <<< n) | int32 s, immediate n, immediate m | int32 r | rlwinm r,s,n,m | ||
r = n | immediate n | int32 r | li r,n | ||
r = n - s | int32 s, immediate n | int32 r | carry | subfic r,s,n | |
r |= t | int32 r, int32 t | int32 r | or r,r,t | ||
r = s | t | int32 s, int32 t | int32 r | or r,s,t | ||
r |= &n & 0xffff | int32 r, immediate n | int32 r | ori r,r,n@l | ||
r = s | (&n & 0xffff) | int32 s, immediate n | int32 r | ori r,s,lo16(n) | ||
r = s | (65536 * n) | int32 s, immediate n | int32 r | oris r,s,n | ||
r |= n | int32 r, immediate n | int32 r | ori r,r,n | ||
r = s | n | int32 s, immediate n | int32 r | ori r,s,n | ||
r |= ~t | int32 r, int32 t | int32 r | orc r,r,t | ||
r = s | ~t | int32 s, int32 t | int32 r | orc r,s,t | ||
r = s ~& t | int32 s, int32 t | int32 r | nand r,s,t | ||
r = s ~^ t | int32 s, int32 t | int32 r | eqv r,s,t | ||
r = s ~| t | int32 s, int32 t | int32 r | nor r,s,t |
Qhasm Instruction | Input | Evaluated flags | Output | Set flags | Assembly Code |
---|---|---|---|---|---|
r = s | stack64 s | float64 r | lfd r,s | ||
r = *(float64 *) (s + n) | int32 s, immediate n | float64 r | lfd r,n(s) | ||
r = *(float64 *) (s - n) | int32 s, immediate n | float64 r | lfd r,-n(s) | ||
r = *(float64 *) (s + t) | int32 s, int32 t | float64 r | lfdx r,s,t | ||
r = s | float64 s | stack64 r | stfd s,r | ||
*(float64 *) (s + n) = r | float64 r, int32 s, immediate n | stfd r,n(s) | |||
*(float64 *) (s - n) = r | float64 r, int32 s, immediate n | stfd r,-n(s) | |||
*(float64 *) (s + t) = r | float64 r, int32 s, int32 t | stfdx r,s,t | |||
*(float64 *) (s += n) = r | float64 r, int32 s, immediate n | int32 s | stfdu r,n(s) | ||
*(float64 *) (s -= n) = r | float64 r, int32 s, immediate n | int32 s | stfdu r,-n(s) | ||
*(float64 *) (s += t) = r | float64 r, int32 s, int32 t | int32 s | stfdux r,s,t |
Qhasm Instruction | Input | Evaluated flags | Output | Set flags | Assembly Code |
---|---|---|---|---|---|
r = s | float64 s | float64 r | fmr r,s | ||
r *= t | float64 r, float64 t | float64 r | fmul r,r,t | ||
r = s * t | float64 s, float64 t | float64 r | fmul r,s,t | ||
r = s * t + u | float64 s, float64 t, float64 u | float64 r | fmadd r,s,t,u | ||
r = s * t - u | float64 s, float64 t, float64 u | float64 r | fmsub r,s,t,u | ||
r += t | float64 r, float64 t | float64 r | fadd r,r,t | ||
r = s + t | float64 s, float64 t | float64 r | fadd r,s,t | ||
r += s * t | float64 r, float64 s, float64 t | float64 r | fmadd r,s,t,r | ||
r -= t | float64 r, float64 t | float64 r | fsub r,r,t | ||
r = s - t | float64 s, float64 t | float64 r | fsub r,s,t | ||
r = -(s * t + u) | float64 s, float64 t, float64 u | float64 r | fnmadd r,s,t,u | ||
r = -(s * t - u) | float64 s, float64 t, float64 u | float64 r | fnmsub r,s,t,u |
Qhasm Instruction | Input | Evaluated flags | Output | Set flags | Assembly Code |
---|---|---|---|---|---|
caller r | |||||
f# | immediate f | .label.f!: | |||
round to nearest | mtfsfi 7,0 |
Qhasm Instruction | Input | Evaluated flags | Output | Set flags | Assembly Code |
---|---|---|---|---|---|
goto f if = | immediate f | = | beq .label.f | ||
goto f if != | immediate f | = | bne .label.f | ||
goto f if < | immediate f | < | blt .label.f | ||
goto f if !< | immediate f | < | bge .label.f | ||
goto f if > | immediate f | > | bgt .label.f | ||
goto f if !> | immediate f | > | ble .label.f |
Qhasm Instruction | Input | Evaluated flags | Output | Set flags | Assembly Code |
---|---|---|---|---|---|
goto f | immediate f | b .label.f |
Qhasm Instruction | Input | Evaluated flags | Output | Set flags | Assembly Code |
---|---|---|---|---|---|
float64 r | |||||
int32 r | |||||
stack128 r | |||||
stack256 r | |||||
stack32 r | |||||
stack512 r | |||||
stack64 r |