[ create a new paste ] login | about

Link: http://codepad.org/R2wb4QpQ    [ raw code | fork ]

JfirKvmLSsanzoiDIwo - C, pasted on Mar 29:
#include <stdio.h>

// signed int div & mul
// c = a / b;    d = a % b;
inline void _sid(int* c, int* d,    int a, int b) {
	asm(
		"idiv %%ebx;"
		:"=a"(*c),"=d"(*d)
		:"a"(a),"d"(0),"b"(b)
	);
	
//	return(*c);
}

// signed int div & mul
// c = a / b;    d = a % b;
#define sid(__c__, __d__,    __a__, __b__) {\
	asm(\
		"idiv %%ebx;"\
		:"=a"(__c__),"=d"(__d__):\
		"a"(__a__),"d"(0),"b"(__b__)\
	);\
}

static void sid100M(void){ int a=10,b=20,c=30,d=40; int i=100000000; while(i-->0){ sid( a,b,   c,d); } }
static void _sid100M(void){ int a=10,b=20,c=30,d=40; int i=100000000; while(i-->0){ _sid( &a,&b,   c,d); } }
static void div_mul100M(void){ int a=10,b=20,c=30,d=40; int i=100000000; while(i-->0){ a=c/d; b=c%d; } }

void main() {
	sid100M();
	_sid100M();
	div_mul100M();
}


Output:
No errors or program output.


Create a new paste based on this one


Comments: