Quantcast
Channel: Infineon Forums
Viewing all articles
Browse latest Browse all 9892

Assembly extended register

$
0
0
Hello,

I am using the Free Entry Toolchain and want to use some inline assembly.
Code:

static void maddq(int64_t *out, uint32_t a, uint32_t b){
        __asm__ ("madd.q %0,%0,%1,%2" : "+d" (*out) : "d" (a), "d" (b) );
}

The compiler tells me. "Opcode/operand mismatch: madd.q %d15,%d15,%d2,%d3"

instead of %d15,%d15 i guess there should be an extended register %e2 for example.

if i try to compile it (whith madd.u because with madd.q this also does not compile) like:
Code:

static void maddq(int64_t *out, uint32_t a, uint32_t b){
        __asm__ ("madd.u %%e2,%%e2,%1,%2" : "+d" (*out) : "d" (a), "d" (b) );
}

it compiles, but this does not work, as I want the result of the mac assigned to out and also I want to use madd.q...

how can I accomplish this?

Viewing all articles
Browse latest Browse all 9892

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>