DrTypo Posted March 27, 2021 Share Posted March 27, 2021 I'm going back to my 3D engine and I'm moving part of it to the DSP. I encountered a strange behaviour: movei #_nTriAdd,r0 store rNAdd,(r0) This randomly craps out. The correct value is not always stored at _nTriAdd. I found a fix: movei #_nTriAdd,r0 or r0,r0 store rNAdd,(r0) Does it ring a bell to anyone? Thanks. Quote Link to comment Share on other sites More sharing options...
SCPCD Posted March 27, 2021 Share Posted March 27, 2021 (edited) I don't have read or uncounter this sort of bug (from what I remind, but I haven't play much with the DSP) Does _nTriAdd in external memory ? Is there a load somewhere before ? Does rNAdd comes from a long instruction (as div?) I would suspect the #1 or #7 in the "Hardware Bugs" reference manual. Edited March 27, 2021 by SCPCD 3 Quote Link to comment Share on other sites More sharing options...
DrTypo Posted March 27, 2021 Author Share Posted March 27, 2021 Yes, _nTriAdd is in external memory. About the load instruction, this was my first suspicion but any load instruction is complete before the store. rNAdd comes from a short instruction (addq #1,rNAdd). Thank you for your feedback! It indeed looks a bit like one of the hardware bugs in the manual but it doesn't match exactly one. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.