summaryrefslogtreecommitdiff
path: root/apps/codecs/libFLAC/include/private/coldfire.h
blob: 22f1711f2c6dc98230facb2c0d7940472b9e5ad8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#ifndef SIMULATOR
#ifndef _FLAC_COLDFIRE_H
#define _FLAC_COLDFIRE_H

#include <FLAC/ordinals.h>

#define MACL(x, y, acc) \
	asm volatile ("mac.l %0, %1, %%" #acc \
	              : : "ad" ((x)), "ad" ((y)));

#define MACL_SHIFT(x, y, shift, acc) \
	asm volatile ("mac.l %0, %1, #" #shift ", %%" #acc \
	              : : "ad" ((x)), "ad" ((y)));

#define MSACL(x, y, acc) \
	asm volatile ("msac.l %0, %1, %%" #acc \
	    : : "ad" ((x)), "ad" ((y)));

#define MSACL_SHIFT(x, y, shift, acc) \
	asm volatile ("msac.l %0, %1, #" #shift ", %%" #acc \
	              : : "ad" ((x)), "ad" ((y)));

#define SET_MACSR(x) \
	asm volatile ("mov.l %0, %%macsr" : : "adi" ((x)));

#define TRANSFER_ACC(acca, accb) \
	asm volatile ("mov.l %" #acca ", %" #accb);

#define SET_ACC(x, acc) \
	asm volatile ("mov.l %0, %%" #acc : : "adi" ((x)));

#define GET_ACC(x, acc) \
	asm volatile ("mov.l %%" #acc ", %0\n\t" : "=ad" ((x)));

#define GET_ACC_CLR(x, acc) \
	asm volatile ("movclr.l %%" #acc ", %0\n\t" : "=ad" ((x)));

#define EMAC_SATURATE   0x00000080
#define EMAC_FRACTIONAL 0x00000020
#define EMAC_ROUND      0x00000010


void FLAC__lpc_restore_signal_order8_mac(const FLAC__int32 residual[], unsigned data_len, const FLAC__int32 qlp_coeff[], unsigned order, int lp_quantization, FLAC__int32 data[]);

#endif
#endif