This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DINT for SPLOOP in C64+?

Hi all-

We are using code generation tools v6.1.13, for a C64+ core (DM648), and are shocked to find that, though the compiled (and optimized for speed) assembly shows liberal use of SPLOOP, it takes the extra step of DINT before each SPLOOP. My understanding is that, in the C64+, SPLOOP *is* interruptable, so confused why DINT/RINT coming from compiler around the loops. Actually, more than confused, totally annoyed, as we have some large image loops that take a few millisecs to process, and we miss data from the UART!

Is 6.1.13 way out of date? (we are using CCS 3.3). We tried -mixxxxx, but it caused way too many problems. What I want is for the codegen tools to utilize what the processor is capable of--SPLOOPs that are interruptable!

Please Advise,

Jim Gort

  • Jim,

     

    The compiler shouldn't be using DINT/RINT around loops that use the SPLOOP feature.  Please post a compilable testcase with options used to compile.  We can take a look.

     

    You may want to try a more recent patch version of 6.1.x, or even move to 7.2.x or 7.3.x.  6.1.13 is pretty old, the current patch release on that branch is 6.1.19.

    Download Code Generation Tools

     

    Thanks,

    -Todd

  • Hi Todd-

    Thank you for your quick response.

    Yes, you are correct--the compiler is correctly not using DINT/RINT on the loops that it is able to use SPLOOP. It was the *other* loops, the manual software pipelined loops that, for various reasons, it could not use SPLOOP, that it was protecting with DINT/RINT. We are currently playing around with -mixxx to get compiler to optimize as much as possible, subject to the constraints of our maximum latency to interrupt services.

    Jim

  • This wiki article may also be useful.

    Thanks and regards,

    -George