This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

using assembly and intrinsics in C code (Arm Compiler 6)

dear arm,

Is there a more detailed document that introduces how to use assembly and intrinsics in C code?

I found a breif introduction in migration_and_compatibility_guide_v6.18. But after reading it, I still don't know how to modify the format to meet Arm Compiler 6' requirements .

The code blow shows the example in migration_and_compatibility_guide_v6.18

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// __asm in Arm Compiler 5
int add(int i, int j)
{
int res;
__asm
{
ADD res, i, j
SUB res, i, res
}
return res;
}
// __asm in Arm Compiler 6
int add(int i, int j)
{
int res = 0;
__asm
(
"ADD %[result], %[input_i], %[input_j] \t\n"
"SUB %[result], %[input_i], %[result] \t\n"
: [result] "=&r" (res)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

But how should I modify the code below to meet Arm Compiler 6's requirements?

Fullscreen
1
2
3
4
5
MOV sum, var1, LSL #16
QADD sum, sum, temp
MOV result, sum, ASR #16
MOV zero, #0
RSB var2_inv, var2, #0
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

many thanks!

0