#define otx2_store_pair(val0, val1, addr) ({ \
asm volatile( \
- "stp %x[x0], %x[x1], [%x[p1]]" \
+ "stp %x[x0], %x[x1], [%x[p1],#0]!" \
::[x0]"r"(val0), [x1]"r"(val1), [p1]"r"(addr) \
); })
return result;
}
+static __rte_always_inline uint64_t
+otx2_lmt_submit_release(rte_iova_t io_address)
+{
+ uint64_t result;
+
+ asm volatile (
+ ".cpu generic+lse\n"
+ "ldeorl xzr,%x[rf],[%[rs]]" :
+ [rf] "=r"(result) : [rs] "r"(io_address));
+ return result;
+}
+
static __rte_always_inline void
otx2_lmt_mov(void *out, const void *in, const uint32_t lmtext)
{