Skip to content

Commit

Permalink
docs: Updated incorrect description for ULP FSM JUMPR and JUMPS instr…
Browse files Browse the repository at this point in the history
…uctions

This commit updates the incorrect description for the JUMPR and JUMPS
instructions for ULP FSM on esp32/s2/s3.

Closes #10923
  • Loading branch information
sudeep-mohanty committed Mar 13, 2023
1 parent 358ed1a commit 316a1de
Showing 1 changed file with 58 additions and 19 deletions.
77 changes: 58 additions & 19 deletions docs/en/api-reference/system/ulp_instruction_set.rst
Original file line number Diff line number Diff line change
Expand Up @@ -798,20 +798,48 @@ The detailed description of all instructions is presented below:
- *GE* (greater or equal) – jump if value in R0 >= threshold

**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

Conditions *LT*, *GE*, *LE* and *GT*: 2 cycles to execute, 2 cycles to fetch next instruction

Conditions *LE* and *GT* are implemented in the assembler using one **JUMPR** instruction::

// JUMPR target, threshold, GT is implemented as:

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

JUMPR target, threshold, EQ
JUMPR target, threshold, LT
Conditions *EQ*, *GT* and *LT*: 2 cycles to execute, 2 cycles to fetch next instruction

// JUMPR target, threshold, GE is implemented as:
Conditions *LE* and *GE* are implemented in the assembler using two **JUMPR** instructions::

JUMPR target, threshold, EQ
JUMPR target, threshold, GT
// 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**
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.
Expand Down Expand Up @@ -844,21 +872,32 @@ The detailed description of all instructions is presented below:
- *GE* (greater or equal) — jump if value in stage_cnt >= threshold

**Cycles**
2 cycles to execute, 2 cycles to fetch next instruction::

// JUMPS target, threshold, EQ is implemented as:
.. only:: esp32

Conditions *LE*, *LT*, *GE*: 2 cycles to execute, 2 cycles to fetch next instruction

Conditions *EQ*, *GT* are implemented in the assembler using two **JUMPS** instructions::

JUMPS next, threshold, LT
JUMPS target, threshold, LE
next:
// JUMPS target, threshold, EQ is implemented as:

// JUMPS target, threshold, GT is implemented as:
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

JUMPS next, threshold, LE
JUMPS target, threshold, GE
next:
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**
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.
Expand Down

0 comments on commit 316a1de

Please sign in to comment.