Instructions

Instructions for each machine:

xstormy16 MEM - Memory


xstormy16 ALU - ALU


xstormy16 BR - Branch


xstormy16 xstormy16 - Xstormy16 CPU core


Individual instructions descriptions


adcgrgr - ADD carry and general register to general register

adcgrimm16 - ADD carry and 16-bit immediate to general register

adcgrimm4 - ADD carry and 4-bit immediate to general register

adcimm8 - ADD carry and 8-bit immediate

addgrgr - ADD general register to general register

addgrimm16 - ADD 16-bit immediate to general register

addgrimm4 - ADD 4-bit immediate to general register

addimm8 - ADD 8-bit immediate

andgrgr - AND general register with general register

andgrimm16 - AND general register with 16-bit immediate

andimm8 - AND with 8-bit immediate

asrgrgr - Arithmetic shift right general register by general register

asrgrimm - Arithmetic shift right general register by immediate

bcc - Conditional branch on flag registers

bccgrgr - Conditional branch comparing general register with general register

bccgrimm8 - Conditional branch comparing general register with 8-bit immediate

bccimm16 - Conditional branch comparing general register with 16-bit immediate

bgr - Branch to register

bngrgr - Test bit in general register by general register and branch if 0

bngrimm4 - Test bit in general register by immediate and branch if 0

bnhmemimm - Test bit in memory by immediate and branch if 0

bnlmemimm - Test bit in memory by immediate and branch if 0

bpgrgr - Test bit in general register by general register and branch if 1

bpgrimm4 - Test bit in general register by immediate and branch if 1

bphmemimm - Test bit in memory by immediate and branch if 1

bplmemimm - Test bit in memory by immediate and branch if 1

br - Branch

brk - brk

callfimm - Call far to absolute address

callgr - Call to general registers

callrgr - Call relative to general register

callrimm - Call relative to immediate address

cbwgr - Sign-extend byte in general register

clr1grgr - Clear bit in general register by general register

clr1grimm - Clear bit in general register by immediate

clr1hmemimm - Clear bit in high memory

clr1lmemimm - Clear bit in low memory

decgrimm2 - Decrement general register by 2-bit immediate

div - Divide

divlh - Divide 32/16

halt - halt

hold - hold

holdx - holdx

icallfimm - Call interrupt far to absolute address

icallgr - Call interrupt to general registers

icallrgr - Call interrupt to general registers pc-relative

incgrimm2 - Increment general register by 2-bit immediate

iret - Return from interrupt

jmp - Jump

jmpf - Jump far

maskgrgr - Mask insert controlled by general register

maskgrimm16 - Mask insert controlled by immediate value

movfgrgri - Move far memory addressed by register to register

movfgrgrii - Move far memory addressed by indexed register to register

movfgrgriipostinc - Move far memory addressed by indexed register postincrement to register

movfgrgriipredec - Move far memory addressed by indexed register predecrement to register

movfgrgripostinc - Move far memory addressed by postincrement register to register

movfgrgripredec - Move far memory addressed by predecrement register to register

movfgrigr - Move far register to memory addressed by register

movfgriigr - Move far register to memory addressed by indexed register

movfgriipostincgr - Move far register to memory addressed by indexed register postincrement

movfgriipredecgr - Move far register to memory addressed by indexed register predecrement

movfgripostincgr - Move far register to memory addressed by postincrement register

movfgripredecgr - Move far register to memory addressed by predecrement register

movgrgr - Move general register to general register

movgrgri - Move memory addressed by register to register

movgrgrii - Move memory addressed by indexed register to register

movgrgriipostinc - Move memory addressed by indexed register postincrement to register

movgrgriipredec - Move memory addressed by indexed register predecrement to register

movgrgripostinc - Move memory addressed by postincrement register to register

movgrgripredec - Move memory addressed by predecrement register to register

movgrigr - Move register to memory addressed by register

movgriigr - Move register to memory addressed by indexed register

movgriipostincgr - Move register to memory addressed by indexed register postincrement

movgriipredecgr - Move register to memory addressed by indexed register predecrement

movgripostincgr - Move register to memory addressed by postincrement register

movgripredecgr - Move register to memory addressed by predecrement register

movhgrmem - Move high memory to register

movhighgr - Move 8 high bits to general register

movhmemgr - Move high memory register to byte

movhmemimm - Move immediate to high memory

movlgrmem - Move low memory to register

movlmemgr - Move low memory register to byte

movlmemimm - Move immediate to low memory

movlowgr - Move 8 low bits to general register

movwgrimm16 - Move 16-bit immediate to general register

movwgrimm8 - Move 8-bit immediate to general register

movwimm8 - Move 8-bit immediate

mul - Multiply

nop - nop

notgr - NOT general register

orgrgr - OR general register with general register

orgrimm16 - OR general register with 16-bit immediate

orimm8 - OR with 8-bit immediate

popgr - Pop into a register

pushgr - Push register

reset - reset

ret - Return

revgr - Reverse bit pattern in general register

rlcgrgr - Rotate left general register by general register

rlcgrimm4 - Rotate left general register by immediate

rrcgrgr - Rotate right general register by general register

rrcgrimm4 - Rotate right general register by immediate

sbcgrgr - SUB carry and general register from general register

sbcgrimm16 - SUB carry and 16-bit immediate from general register

sbcgrimm4 - SUB carry and 4-bit immediate from general register

sbcgrimm8 - SUB carry and 8-bit immediate

sdiv - Signed Divide

sdivlh - Divide 32/16

set1grgr - Set bit in general register by general register

set1grimm - Set bit in general register by immediate

set1hmemimm - Set bit in high memory by immediate

set1lmemimm - Set bit in low memory by immediate

shlgrgr - Shift left general register by general register

shlgrimm - Shift left general register by immediate

shrgrgr - Shift right general register by general register

shrgrimm - Shift right general register by immediate

subgrgr - SUB general register from general register

subgrimm16 - SUB 16-bit immediate from general register

subgrimm4 - SUB 4-bit immediate from general register

subimm8 - SUB 8-bit immediate

swpb - Swap bytes

swpn - Swap low nibbles

swpw - Swap words

syscall - simulator system call

xorgrgr - XOR general register with general register

xorgrimm16 - XOR general register with 16-bit immediate

xorimm8 - XOR with 8-bit immediate


Macro Instructions

Macro instructions for each machine:

xstormy16 - Xstormy16 CPU core

Individual macro-instructions descriptions


decgr - Decrement general register

incgr - Increment general register

movgrimm16 - Move 16-bit immediate to general register

movgrimm8 - Move 8-bit immediate to general register

movimm8 - Move 8-bit immediate


This documentation was machine generated from the cgen cpu description files for this architecture.
https://sourceware.org/cgen/