Go to the documentation of this file.
27 #if !(IFX_CFG_CIRCULARBUFFER_C)
33 __asm(
" ld.da\ta14/a15,[%1]\n"
34 " ld.w\t%0,[a14/a15+c]\n"
35 " st.da\t[%1],a14/a15\n"
36 :
"=d" (data) :
"a" (buffer) :
"a14",
"a15");
46 __asm(
" ld.da\ta14/a15,[%1]\n"
47 " ld.h\t%0,[a14/a15+c]\n"
48 " st.da\t[%1],a14/a15\n"
49 :
"=d" (data) :
"a" (buffer) :
"a14",
"a15");
64 __asm(
" ld.da\ta14/a15,[%0]\n"
65 " st.w\t[a14/a15+c]0,%1\n"
66 " ld.w\t%1,[a14/a15+c]\n"
67 " st.da\t[%0],a14/a15\n"
69 :
"a" (buffer),
"d" (data) :
"a14",
"a15");
76 __asm(
" mov.a\ta13,%3\n"
77 " ld.da\ta14/a15,[%1]\n"
78 "Ifx_CircularBuffer_read1:" " ld.b\td15,[a14/a15+c]\n"
80 " loop\ta13,Ifx_CircularBuffer_read1\n"
82 " extr.u\t%0,%0,#0,#16\n":
"=d" (buffer->
index) :
"a" (buffer),
"a" (data),
"d" (count) :
"a13",
"a14",
"a15",
92 __asm(
" mov.a\ta13,%3\n"
93 " ld.da\ta14/a15,[%1]\n"
94 "Ifx_CircularBuffer_read2:" " ld.w\td15,[a14/a15+c]\n"
96 " loop\ta13,Ifx_CircularBuffer_read2\n"
98 " extr.u\t%0,%0,#0,#16\n":
"=d" (buffer->
index) :
"a" (buffer),
"a" (data),
"d" (count) :
"a13",
"a14",
"a15",
108 __asm(
" mov.a\ta13,%3\n"
109 " ld.da\ta14/a15,[%1]\n"
110 "Ifx_CircularBuffer_write1:" " ld.b\td15,[%2+]\n"
111 " st.b\t[a14/a15+c]0,d15\n"
112 " ld.b\td15,[a14/a15+c]\n"
113 " loop\ta13,Ifx_CircularBuffer_write1\n"
115 " extr.u\t%0,%0,#0,#16\n":
"=d" (buffer->
index) :
"a" (buffer),
"a" (data),
"d" (count) :
"a13",
"a14",
"a15",
125 __asm(
" mov.a\ta13,%3\n"
126 " ld.da\ta14/a15,[%1]\n"
127 "Ifx_CircularBuffer_write2:" " ld.w\td15,[%2+]\n"
128 " st.w\t[a14/a15+c]0,d15\n"
129 " ld.w\td15,[a14/a15+c]\n"
130 " loop\ta13,Ifx_CircularBuffer_write2\n"
132 " extr.u\t%0,%0,#0,#16\n":
"=d" (buffer->
index) :
"a" (buffer),
"a" (data),
"d" (count) :
"a13",
"a14",
"a15",