URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
Compare Revisions
- This comparison shows the changes necessary to convert path
/
- from Rev 1112 to Rev 1113
- ↔ Reverse comparison
Rev 1112 → Rev 1113
/trunk/gen_or1k_isa/sources/or1k_isadesc.h
1,4 → 1,6
/* Information about OR1K ISA. W/o this we can't generate or1k_isa_part.tex. |
* |
* $Log: not supported by cvs2svn $ |
*/ |
|
struct or1k_isa { |
183,8 → 185,8
"general-purpose register rD. " |
"High-order bits of general-purpose register rD are replaced with " |
"bit 7 of the loaded value.", |
"EA <- exts(Immediate) + rA[31:0]\\rD[7:0] <- (EA)[7:0]\\rD[31:8] <- \{rD[7]\}", |
"EA <- exts(Immediate) + rA[63:0]\\rD[7:0] <- (EA)[7:0]\\rD[63:8] <- \{rD[7]\}", |
"EA <- exts(Immediate) + rA[31:0]\\rD[7:0] <- (EA)[7:0]\\rD[31:8] <- (EA)[7]", |
"EA <- exts(Immediate) + rA[63:0]\\rD[7:0] <- (EA)[7:0]\\rD[63:8] <- (EA)[7]", |
"TLB miss\\Page fault\\Bus error\\Alignment", ORBIS32I,}, |
|
{"l.lhs", "Load Half Word and Extend with Sign", |
194,8 → 196,8
"general-purpose register rD. " |
"High-order bits of general-purpose register rD are replaced with " |
"bit 15 of the loaded value.", |
"EA <- exts(Immediate) + rA[31:0]\\rD[15:0] <- (EA)[15:0]\\rD[31:16] <- \{rD[15]\}", |
"EA <- exts(Immediate) + rA[63:0]\\rD[15:0] <- (EA)[15:0]\\rD[63:16] <- \{rD[15]\}", |
"EA <- exts(Immediate) + rA[31:0]\\rD[15:0] <- (EA)[15:0]\\rD[31:16] <- (EA)[15]", |
"EA <- exts(Immediate) + rA[63:0]\\rD[15:0] <- (EA)[15:0]\\rD[63:16] <- (EA)[15]", |
"TLB miss\\Page fault\\Bus error\\Alignment", ORBIS32I,}, |
|
{"l.lws", "Load Single Word and Extend with Sign", |
206,7 → 208,7
"High-order bits of general-purpose register rD are replaced with " |
"bit 31 of the loaded value.", |
"EA <- exts(Immediate) + rA[31:0]\\rD[31:0] <- (EA)[31:0]", |
"EA <- exts(Immediate) + rA[63:0]\\rD[31:0] <- (EA)[31:0]\\rD[63:32] <- \{rD[31]\}", |
"EA <- exts(Immediate) + rA[63:0]\\rD[31:0] <- (EA)[31:0]\\rD[63:32] <- (EA)[31]", |
"TLB miss\\Page fault\\Bus error\\Alignment", ORBIS32I,}, |
|
{"l.lbz", "Load Byte and Extend with Zero", |
633,15 → 635,15
{"l.mtspr", "Move To Special-Purpose Register", |
"The contents of general-purpose register rB are moved into the special register " |
"identified by the sum of general-purpose register rA and the immediate value.", |
"spr(rA+Immediate) <- rB[31:0]", |
"spr(rA+Immediate) <- rB[31:0]", |
"spr(rA OR Immediate) <- rB[31:0]", |
"spr(rA OR Immediate) <- rB[31:0]", |
"None", ORBIS32I,}, |
|
{"l.mfspr", "Move From Special-Purpose Register", |
"The contents of the special register are identified by the sum of general-purpose rA, and " |
"the immediate value are moved into general-purpose register rD.", |
"rD[31:0] <- spr(rA+Immediate)", |
"rD[63:0] <- spr(rA+Immediate)", |
"rD[31:0] <- spr(rA OR Immediate)", |
"rD[63:0] <- spr(rA OR Immediate)", |
"None", ORBIS32I,}, |
|
{"l.nop", "No Operation", |
661,42 → 663,42
|
{"l.bf", "Branch if Flag", |
"The immediate value is shifted left two bits, sign-extended to " |
"program counter width, and then added to the address of the delay slot. The result " |
"program counter width, and then added to the address of the branch instruction. The result " |
"is the effective address of the branch. If the flag is set, " |
"the program branches " |
"to EA with a delay of one instruction.", |
"EA <- exts(Immediate << 2) + DelayInsnAddr\\PC <- EA if SR[F] set", |
"EA <- exts(Immediate << 2) + DelayInsnAddr\\PC <- EA if SR[F] set", |
"EA <- exts(Immediate << 2) + BranchInsnAddr\\PC <- EA if SR[F] set", |
"EA <- exts(Immediate << 2) + BranchInsnAddr\\PC <- EA if SR[F] set", |
"None", ORBIS32I,}, |
|
{"l.bnf", "Branch if No Flag", |
"The immediate value is shifted left two bits, sign-extended to " |
"program counter width, and then added to the address of the delay slot. The result " |
"program counter width, and then added to the address of the branch instruction. The result " |
"is the effective address of the branch. If the flag is cleared, " |
"the program branches " |
"to EA with a delay of one instruction.", |
"EA <- exts(Immediate << 2) + DelayInsnAddr\\PC <- EA if SR[F] cleared", |
"EA <- exts(Immediate << 2) + DelayInsnAddr\\PC <- EA if SR[F] cleared", |
"EA <- exts(Immediate << 2) + BranchInsnAddr\\PC <- EA if SR[F] cleared", |
"EA <- exts(Immediate << 2) + BranchInsnAddr\\PC <- EA if SR[F] cleared", |
"None", ORBIS32I,}, |
|
{"l.jal", "Jump and Link", |
"The immediate value is shifted left two bits, sign-extended to " |
"program counter width, and then added to the address of the delay slot. The result " |
"program counter width, and then added to the address of the jump instruction. The result " |
"is the effective address of the jump. The program unconditionally jumps " |
"to EA with a delay of one instruction. The " |
"address of the instruction after the delay slot is placed in the " |
"link register. ", |
"PC <- exts(Immediate << 2) + DelayInsnAddr\\LR <- DelayInsnAddr + 4", |
"PC <- exts(Immediate << 2) + DelayInsnAddr\\LR <- DelayInsnAddr + 4", |
"PC <- exts(Immediate << 2) + JumpInsnAddr\\LR <- DelayInsnAddr + 4", |
"PC <- exts(Immediate << 2) + JumpInsnAddr\\LR <- DelayInsnAddr + 4", |
"None", ORBIS32I,}, |
|
{"l.j", "Jump", |
"The immediate value is shifted left two bits, sign-extended to " |
"program counter width, and then added to the address of the delay slot. The result " |
"program counter width, and then added to the address of the jump instruction. The result " |
"is the effective address of the jump. The program unconditionally jumps " |
"to EA with a delay of one instruction.", |
"PC <- exts(Immediate << 2) + DelayInsnAddr\\LR <- DelayInsnAddr + 4", |
"PC <- exts(Immediate << 2) + DelayInsnAddr\\LR <- DelayInsnAddr + 4", |
"PC <- exts(Immediate << 2) + JumpInsnAddr\\LR <- DelayInsnAddr + 4", |
"PC <- exts(Immediate << 2) + JumpInsnAddr\\LR <- DelayInsnAddr + 4", |
"None", ORBIS32I,}, |
|
{"l.jalr", "Jump and Link Register", |
720,10 → 722,11
{"l.sys", "System Call", |
"Execution of the system call instruction results in the system call " |
"exception. The system calls exception is a request to the operating system " |
"to provide operating system services. The immediate value specifies which system service " |
"is required.", |
"system-call-exception()", |
"system-call-exception()", |
"to provide operating system services. The immediate value can be used to " |
"specify which system service is requested, alternatively a GPR defined by " |
"the ABI can be used to specify system service.", |
"system-call-exception(K)", |
"system-call-exception(K)", |
"System Call", ORBIS32I,}, |
|
{"l.msync", "Memory Syncronization", |