mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
Merge branch 'bugfix/ulp_docs_incorrect_jump_desc' into 'master'
docs: Updated incorrect description for ULP FSM JUMPR and JUMPS instructions Closes IDFGH-9574 See merge request espressif/esp-idf!22695
This commit is contained in:
commit
1559b6309f
@ -798,20 +798,48 @@ The detailed description of all instructions is presented below:
|
|||||||
- *GE* (greater or equal) – jump if value in R0 >= threshold
|
- *GE* (greater or equal) – jump if value in R0 >= threshold
|
||||||
|
|
||||||
**Cycles**
|
**Cycles**
|
||||||
Conditions *EQ*, *GT* and *LT*: 2 cycles to execute, 2 cycles to fetch next instruction
|
|
||||||
Conditions *LE* and *GE* are implemented in the assembler using two **JUMPR** instructions::
|
|
||||||
|
|
||||||
// JUMPR target, threshold, LE is implemented as:
|
.. only:: esp32
|
||||||
|
|
||||||
JUMPR target, threshold, EQ
|
Conditions *LT*, *GE*, *LE* and *GT*: 2 cycles to execute, 2 cycles to fetch next instruction
|
||||||
JUMPR target, threshold, LT
|
|
||||||
|
|
||||||
// JUMPR target, threshold, GE is implemented as:
|
Conditions *LE* and *GT* are implemented in the assembler using one **JUMPR** instruction::
|
||||||
|
|
||||||
JUMPR target, threshold, EQ
|
// JUMPR target, threshold, GT is implemented as:
|
||||||
JUMPR target, threshold, GT
|
|
||||||
|
JUMPR target, threshold+1, GE
|
||||||
|
|
||||||
|
// JUMPR target, threshold, LE is implemented as:
|
||||||
|
|
||||||
|
JUMPR target, threshold + 1, LT
|
||||||
|
|
||||||
|
Conditions *EQ* is implemented in the assembler using two **JUMPR** instructions::
|
||||||
|
|
||||||
|
// JUMPR target, threshold, EQ is implemented as:
|
||||||
|
|
||||||
|
JUMPR next, threshold + 1, GE
|
||||||
|
JUMPR target, threshold, GE
|
||||||
|
next:
|
||||||
|
|
||||||
|
|
||||||
|
.. only:: esp32s2 or esp32s3
|
||||||
|
|
||||||
|
Conditions *EQ*, *GT* and *LT*: 2 cycles to execute, 2 cycles to fetch next instruction
|
||||||
|
|
||||||
|
Conditions *LE* and *GE* are implemented in the assembler using two **JUMPR** instructions::
|
||||||
|
|
||||||
|
// JUMPR target, threshold, LE is implemented as:
|
||||||
|
|
||||||
|
JUMPR target, threshold, EQ
|
||||||
|
JUMPR target, threshold, LT
|
||||||
|
|
||||||
|
// JUMPR target, threshold, GE is implemented as:
|
||||||
|
|
||||||
|
JUMPR target, threshold, EQ
|
||||||
|
JUMPR target, threshold, GT
|
||||||
|
|
||||||
|
Therefore the execution time will depend on the branches taken: either 2 cycles to execute + 2 cycles to fetch, or 4 cycles to execute + 4 cycles to fetch.
|
||||||
|
|
||||||
Therefore the execution time will depend on the branches taken: either 2 cycles to execute + 2 cycles to fetch, or 4 cycles to execute + 4 cycles to fetch.
|
|
||||||
|
|
||||||
**Description**
|
**Description**
|
||||||
The instruction makes a jump to a relative address if condition is true. Condition is the result of comparison of R0 register value and the threshold value.
|
The instruction makes a jump to a relative address if condition is true. Condition is the result of comparison of R0 register value and the threshold value.
|
||||||
@ -844,21 +872,32 @@ The detailed description of all instructions is presented below:
|
|||||||
- *GE* (greater or equal) — jump if value in stage_cnt >= threshold
|
- *GE* (greater or equal) — jump if value in stage_cnt >= threshold
|
||||||
|
|
||||||
**Cycles**
|
**Cycles**
|
||||||
2 cycles to execute, 2 cycles to fetch next instruction::
|
|
||||||
|
|
||||||
// JUMPS target, threshold, EQ is implemented as:
|
.. only:: esp32
|
||||||
|
|
||||||
JUMPS next, threshold, LT
|
Conditions *LE*, *LT*, *GE*: 2 cycles to execute, 2 cycles to fetch next instruction
|
||||||
JUMPS target, threshold, LE
|
|
||||||
next:
|
|
||||||
|
|
||||||
// JUMPS target, threshold, GT is implemented as:
|
Conditions *EQ*, *GT* are implemented in the assembler using two **JUMPS** instructions::
|
||||||
|
|
||||||
JUMPS next, threshold, LE
|
// JUMPS target, threshold, EQ is implemented as:
|
||||||
JUMPS target, threshold, GE
|
|
||||||
next:
|
JUMPS next, threshold, LT
|
||||||
|
JUMPS target, threshold, LE
|
||||||
|
next:
|
||||||
|
|
||||||
|
// JUMPS target, threshold, GT is implemented as:
|
||||||
|
|
||||||
|
JUMPS next, threshold, LE
|
||||||
|
JUMPS target, threshold, GE
|
||||||
|
next:
|
||||||
|
|
||||||
|
Therefore the execution time will depend on the branches taken: either 2 cycles to execute + 2 cycles to fetch, or 4 cycles to execute + 4 cycles to fetch.
|
||||||
|
|
||||||
|
|
||||||
|
.. only:: esp32s2 or esp32s3
|
||||||
|
|
||||||
|
2 cycles to execute, 2 cycles to fetch next instruction
|
||||||
|
|
||||||
Therefore the execution time will depend on the branches taken: either 2 cycles to execute + 2 cycles to fetch, or 4 cycles to execute + 4 cycles to fetch.
|
|
||||||
|
|
||||||
**Description**
|
**Description**
|
||||||
The instruction makes a jump to a relative address if condition is true. Condition is the result of comparison of count register value and threshold value.
|
The instruction makes a jump to a relative address if condition is true. Condition is the result of comparison of count register value and threshold value.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user