Moved ISET to harptool directory.
git-svn-id: http://www.cdkersey.com/harp/harptool@121 0246edb2-e076-4747-b392-db732a341fa2
This commit is contained in:
101
ISET
Normal file
101
ISET
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
Instruction Set Reference
|
||||||
|
=========================
|
||||||
|
|
||||||
|
NOP /* No operation */
|
||||||
|
|
||||||
|
Privileged Instructions
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
EI /* Enable interrupts (privileged) */
|
||||||
|
DI /* Disable interrupts (privileged) */
|
||||||
|
SKEP %reg /* Set kernel entry point. */
|
||||||
|
TLBADD %virt, %phys, %flags /* Add entry to TLB */
|
||||||
|
TLBRM %virt /* Remove entry corresponding to a given virtual address. */
|
||||||
|
TLBFLUSH /* Flush all TLB entries */
|
||||||
|
JMPRU %reg /* Jump to location in a register and switch to user mode. */
|
||||||
|
RETI /* Return from interrupt (Restore shadow regs/PC, threads) */
|
||||||
|
HALT /* Stop CPU until next interrupt. */
|
||||||
|
|
||||||
|
Memory Loads/Stores
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
ST %reg, %reg, #imm /* Store reg to reg+imm */
|
||||||
|
LD %reg, %reg, #imm /* Load reg from reg+imm */
|
||||||
|
|
||||||
|
Predicate Manipulation
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
ANDP @preg, @preg, @preg
|
||||||
|
ORP @preg, @preg, @preg
|
||||||
|
XORP @preg, @preg, @preg
|
||||||
|
NOTP @preg, @preg
|
||||||
|
|
||||||
|
Value Tests
|
||||||
|
-----------
|
||||||
|
|
||||||
|
RTOP @preg, %reg /* Register to predicate. Same as ISZERO => NOTP */
|
||||||
|
ISNEG @preg, %reg
|
||||||
|
ISZERO @preg, %reg
|
||||||
|
|
||||||
|
Immediate Integer Arithmetic/Logic
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
LDI %reg, #IMM /* Load immediate. */
|
||||||
|
ADDI %reg, %reg, #IMM /* Add immediate */
|
||||||
|
SUBI %reg, %reg, #IMM /* Subtract immediate */
|
||||||
|
MULI %reg, %reg, #IMM /* Multiply immediate */
|
||||||
|
DIVI %reg, %reg, #IMM /* Divide immediate */
|
||||||
|
MODI %reg, %reg, #IMM /* Modulus immediate */
|
||||||
|
SHLI %reg, %reg, #IMM /* Shift left immediate */
|
||||||
|
SHRI %reg, %reg, #IMM /* Shift right immediate */
|
||||||
|
ANDI %reg, %reg, #IMM /* And immediate */
|
||||||
|
ORI %reg, %reg, #IMM /* Or immediate */
|
||||||
|
XORI %reg, %reg, #IMM /* Xor immediate */
|
||||||
|
|
||||||
|
Register Integer Arithmetic/Logic
|
||||||
|
---------------------------------
|
||||||
|
|
||||||
|
ADD %reg, %reg, %reg /* Add */
|
||||||
|
SUB %reg, %reg, %reg /* Subtract */
|
||||||
|
MUL %reg, %reg, %reg /* Multiply */
|
||||||
|
DIV %reg, %reg, %reg /* Divide */
|
||||||
|
MOD %reg, %reg, %reg /* Modulus */
|
||||||
|
SHL %reg, %reg, %reg /* Shift left */
|
||||||
|
SHR %reg, %reg, %reg /* Shift right */
|
||||||
|
AND %reg, %reg, %reg /* Bitwise and */
|
||||||
|
OR %reg, %reg, %reg /* Bitwise or */
|
||||||
|
XOR %reg, %reg, %reg /* Bitwise xor */
|
||||||
|
NEG %reg, %reg /* Negate */
|
||||||
|
NOT %reg, %reg /* Bitwise invert */
|
||||||
|
|
||||||
|
Floating Point Arithmetic
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
ITOF %reg, %reg /* Integer to floating point. */
|
||||||
|
FTOI %reg, %reg /* Floating point to integer, truncate. */
|
||||||
|
FNEG %reg, %reg /* Negate floating point number. */
|
||||||
|
FADD %reg, %reg, %reg /* Add, full precision. */
|
||||||
|
FSUB %reg, %reg, %reg /* Subtract, full precision. */
|
||||||
|
FMUL %reg, %reg, %reg /* Multiply, full precision. */
|
||||||
|
FDIV %reg, %reg, %reg /* Divide, full precision. */
|
||||||
|
|
||||||
|
Control Flow
|
||||||
|
------------
|
||||||
|
|
||||||
|
JMPI #IMM /* Jump to immediate */
|
||||||
|
JMPR %reg /* Jump indirect (to register) */
|
||||||
|
JALI %reg, #IMM /* Jump and link immediate */
|
||||||
|
JALR %reg, %reg /* Jump and link indirect */
|
||||||
|
|
||||||
|
SIMD Control
|
||||||
|
------------
|
||||||
|
|
||||||
|
CLONE %reg /* Clone register state in to thread %reg */
|
||||||
|
JALIS %reg, %rN, #IMM /* Jump and link immediate, spawning cloned threads. */
|
||||||
|
JALRS %rL, %rL, %rN /* Jump and link indirect, spawning clowned threads. */
|
||||||
|
JMPRT %reg /* Jump to register, terminating cloned threads. */
|
||||||
|
|
||||||
|
Other
|
||||||
|
-----
|
||||||
|
|
||||||
|
TRAP /* Program-generated interrupt. */
|
||||||
Reference in New Issue
Block a user