Page 1 of 1

Missing PIE instructions in the TRM for ESP32-S3?

Posted: Sun Sep 03, 2023 11:00 pm
by EmilenL
I'm currently writing code using the PIE in ESP32-S3, using the TRM as a reference.
I noticed there appears to be further instructions used in your DSP libs that aren't mentioned in the TRM.

Only in the file https://github.com/espressif/esp-dsp/bl ... es3.S#L126, I see e.g. the instructions mv.qr, ld.qr and st.qr which are not mentioned in the TRM. Can I use them in my code as well without any bad consequences? Are there any other undocumented instructions?

Re: Missing PIE instructions in the TRM for ESP32-S3?

Posted: Mon Sep 04, 2023 1:07 am
by ESP_Sprite
I think the docs team didn't pick those up as PIE instructions as they're missing the "ee." prefix. Will poke them to see if they can be included. I'm decently sure these are an 'official' part of the PIE instructions, as their functionality seems pretty obvious and I don't see any other instruction that can be used to do those things.

Re: Missing PIE instructions in the TRM for ESP32-S3?

Posted: Mon Sep 04, 2023 11:12 am
by EmilenL
Thanks for the quick reply!

The mv.qr instruction, which seems to copy the second register's content into the first register, should be equivalent to "ee.orq qa, qb, qb", since (x | x) = x. The other two seem to have no replacements though, since they seem to load and store using the address and an immediate offset, without updating the address register.

Re: Missing PIE instructions in the TRM for ESP32-S3?

Posted: Wed Sep 13, 2023 8:12 am
by ESP_Sprite
Seems they missed it as the tooling we have automatically generates these instructions as a side effect of incorporating the Q registers. The next version of the TRM should document them.