mywiki:hw:mips:start
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| mywiki:hw:mips:start [2014/07/28 14:30] – [Common Instruction] shaoguoh | mywiki:hw:mips:start [2022/04/02 17:29] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| MIPS | MIPS | ||
| - | | [[http:// | + | | [[http:// |
| - | | [[MipsSimulator]] | | + | | [[MipsSimulator]] |
| ====== Common Instruction ====== | ====== Common Instruction ====== | ||
| + | For details, refer to below documents: | ||
| + | * {{: | ||
| + | * [[http:// | ||
| + | |||
| + | ===== Normal CPU Load/Store Instructions ===== | ||
| + | |||
| | LB | Load Byte | | | LB | Load Byte | | ||
| | LBU | Load Byte Unsigned | | | LBU | Load Byte Unsigned | | ||
| Line 17: | Line 23: | ||
| | SD | Store Doubleword | | | SD | Store Doubleword | | ||
| - | **Unaligned CPU Load/Store Instructions** | + | ===== Unaligned CPU Load/Store Instructions |
| * MIPS permits LWL and LWR instructions targeting the same destination register to be executed sequentially. | * MIPS permits LWL and LWR instructions targeting the same destination register to be executed sequentially. | ||
| * Store instructions select the correct bytes from a source register and update only those bytes in an aligned memory word (or doubleword) | * Store instructions select the correct bytes from a source register and update only those bytes in an aligned memory word (or doubleword) | ||
| Line 30: | Line 37: | ||
| | SDR | Store Doubleword Right | | | SDR | Store Doubleword Right | | ||
| + | ===== Atomic Update CPU Load/Store Instructions ===== | ||
| + | | LL | Load Linked Word | | ||
| + | | SC | Store Conditional Word | | ||
| + | | LLD | Load Linked Doubleword | | ||
| + | | SCD | Store Conditional Doubleword | | ||
| + | |||
| + | |||
| + | ===== Shift Instructions ===== | ||
| + | < | ||
| + | ROTR Rotate Word Right | ||
| + | SLL Shift Word Left Logical | ||
| + | SLLV hift Word Left Logical Variable | ||
| + | SRL Shift Word Right Logical | ||
| + | SRA Shift Word Right Arithmetic | ||
| + | ROTRV Rotate Word Right Variable | ||
| + | SLLV Shift Word Left Logical Variable | ||
| + | SRLV Shift Word Right Logical Variable | ||
| + | SRAV Shift Word Right Arithmetic Variable | ||
| + | DSLL Doubleword Shift Left Logical | ||
| + | DSRL Doubleword Shift Right Logical | ||
| + | DSRA Doubleword Shift Right Arithmetic | ||
| + | DSLL32 Doubleword Shift Left Logical + 32 | ||
| + | DSRL32 Doubleword Shift Right Logical + 32 | ||
| + | DSRA32 Doubleword Shift Right Arithmetic + 32 | ||
| + | DSLLV Doubleword Shift Left Logical Variable | ||
| + | DSRLV Doubleword Shift Right Logical Variable | ||
| + | DSRAV Doubleword Shift Right Arithmetic Variable | ||
| + | </ | ||
| + | |||
| + | ===== PC-Relative Conditional Branch Instructions Comparing 2 Register ===== | ||
| + | < | ||
| + | EQ Branch on Equal MIPS | ||
| + | BNE Branch on Not Equal | ||
| + | BLEZ Branch on Less Than or Equal to Zero | ||
| + | BGTZ Branch on Greater Than Zero | ||
| + | BEQL Branch on Equal Likely | ||
| + | BNEL Branch on Not Equal Likely | ||
| + | BLEZL Branch on Less Than or Equal to Zero Likely | ||
| + | BGTZL Branch on Greater Than Zero Likely | ||
| + | </ | ||
| + | |||
| + | ===== PC-Relative Conditional Branch Instructions Comparing Against Zero ===== | ||
| + | < | ||
| + | BLTZ Branch on Less Than Zero | ||
| + | BGEZ Branch on Greater Than or Equal to Zero | ||
| + | BLTZAL Branch on Less Than Zero and Link | ||
| + | BGEZAL Branch on Greater Than or Equal to Zero and Link | ||
| + | BLTZL Branch on Less Than Zero Likely | ||
| + | BGEZL Branch on Greater Than or Equal to Zero Likely | ||
| + | BLTZALL Branch on Less Than Zero and Link Likely | ||
| + | BGEZALL Branch on Greater Than or Equal to Zero and Link Likely | ||
| + | </ | ||
| + | |||
| + | ===== Serialization Instructions ===== | ||
| + | | sync | Loads and stores executed before the SYNC are completed before loads | ||
| + | and stores after the SYNC can start. | | ||
| + | |||
| + | ===== Prefetch ===== | ||
| + | here are two prefetch advisory instructions; | ||
| + | and the other with register+register addressing. These instructions advise that | ||
| + | memory is likely to be used in a particular way in the near future and should be | ||
| + | CPU Instruction Set MIPS IV Instruction Set. Rev 3.2 -11 | ||
| + | prefetched into the cache. The PREFX instruction using register+register | ||
| + | addressing mode is coded in the FPU opcode space along with the other | ||
| + | operations using register+register addressing. | ||
| + | |||
| + | Prefetch Using Register + Offset Address Mode | ||
| + | | PREF | Prefetch Indexed | | ||
| + | |||
| + | Prefetch Using Register + Register Address Mode | ||
| + | | PREFX | Prefetch Indexed | ||
| ====== MIPS C and Assembly ====== | ====== MIPS C and Assembly ====== | ||
| ===== If/ | ===== If/ | ||
mywiki/hw/mips/start.1406529027.txt.gz · Last modified: (external edit)
