Skip to content

Commit

Permalink
Merge branch 'bugfix/ulp_docs_incorrect_jump_desc' into 'master'
Browse files Browse the repository at this point in the history
docs: Updated incorrect description for ULP FSM JUMPR and JUMPS instructions

Closes IDFGH-9574

See merge request espressif/esp-idf!22695
  • Loading branch information
sudeep-mohanty committed Mar 13, 2023
2 parents ba5fa07 + 2f4c32a commit 1559b63
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 1559b63

Please sign in to comment.