cvd.c revision b32f58018498ea2225959b0ba11c18f0c433deef
1#include <stdio.h>
2
3static signed int test[] ={
4	0,
5	1,
6	-1,
7	0x7fffffff,
8	0x80000000,
9	0x12345678,
10	0x87654321,
11	0x55555555,
12	0x11111111,
13	0xaaaaaaaa,
14};
15
16
17static unsigned long hex_to_dec(signed int num)
18{
19	unsigned long addr = 0;
20
21	asm volatile(
22	"       cvd %2,%0"
23		: "=m" (addr) : "a" (&addr) , "d" (num) : "memory");
24	return addr;
25}
26
27int main()
28{
29	int i;
30
31	for (i = 0; i < sizeof(test) / sizeof(test[0]); i++)
32		printf("%lx\n", hex_to_dec(test[i]));
33	return 0;
34}
35