Reading the The XMOS XS1 Architecture describes the LDIVU operation as
Code: Select all
LDIVU d, e, x, y, v
Code: Select all
LDIVU d,x,y,e,v ldivu d, e, v, x, y
The correct notation is found in the XS1 architecture.
Code: Select all
#include <stdio.h>
int main(){
unsigned int Xh=0,Xl=31;
unsigned int y=5;
unsigned int Q;
unsigned int R;
asm("LDIVU %0,%1,%2,%3,%4" : "=r"(Q) , "=r"(R) : "r"(Xh) , "r"(Xl) ,"r"(y));
printf("Q=%u, R=%u",Q,R);
}
Q=6, R=1
31/5 = 6 + 1/5
Q is the Quotent, R is the reminder and the operation is (uint_64) X/(uint_32) y where X is expressed as 2 32-bits number Xhigh and Xlow.
Thus its:
LDIVU Quotent,Reminder,Xhigh,Xlow,Y