OpenCores
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",

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.