#ifndef MUL_H
#define MUL_H 1

#include <stdint.h>

static inline uint32_t mul_16_8(uint16_t a, uint8_t b)
{
	uint32_t product;
	asm (
		"mul %A1, %2\n\t"
		"movw %A0, r0\n\t"
		"clr %C0\n\t"
		"clr %D0\n\t"
		"mul %B1, %2\n\t"
		"add %B0, r0\n\t"
		"adc %C0, r1\n\t"
		"clr r1"
		: "=&r" (product)
		: "r" (a), "r" (b));
	return product;
}

#endif
