Last fixes for v1 #53
Merged
Add this suggestion to a batch that can be applied as a single commit. This suggestion is invalid because no changes were made to the code. Suggestions cannot be applied while the pull request is closed. Suggestions cannot be applied while viewing a subset of changes. Only one suggestion per line can be applied in a batch. Add this suggestion to a batch that can be applied as a single commit. Applying suggestions on deleted lines is not supported. You must change the existing code in this line in order to create a valid suggestion. Outdated suggestions cannot be applied. This suggestion has been applied or marked resolved. Suggestions cannot be applied from pending reviews. Suggestions cannot be applied on multi-line comments. Suggestions cannot be applied while the pull request is queued to merge. Suggestion cannot be applied right now. Please check back later.
I have now fixed the last issues for passing binutils-esp32ulp tests.
Those fixes relate to handling peripheral register addresses correctly with the
reg_rdandreg_wropcodes. While the machine instruction needs the "direct ULP address", the assembly opcode can take either direct ULP addresses or full DPORT bus addresses. binutils-esp32ulp internally converts full addresses to direct addresses and thus supports both. We attempted to support both, but had a few bugs related direct ULP addresses. These are now fixed. (More details in the commits)You will notice I added a crude "patching mechanism" in the
02_compat_rtc_tests.shbecause I needed to work around the bug related to global/not-global absolute symbols (as discussed in PR #52). The workaround was to make all symbols used in problem cases global, because that case binutils-esp32ulp handles correctly.When this is merged, I guess we can consider the v1 milestone (#49) reached.