MOTOROLA
Chapter 3. Enhanced Multiply-Accumulate Unit (EMAC)
3-15
EMAC Instruction Set Summary
— For unsigned word and longword operations, a zero is shifted into the product on
right shifts.
— For signed, word operations, the sign bit is shifted into the product on right shifts
unless the product is zero. For signed, longword operations, the sign bit is shifted
into the product unless an overflow occurs or the product is zero, in which case
a zero is shifted in.
— For all left shifts, a zero is inserted into the lsb position.
The following pseudocode explains basic MAC or MSAC instruction functionality. This
example is presented as a case statement covering the three basic operating modes with
signed integers, unsigned integers, and signed fractionals. Throughout this example, a
comma-separated list in curly brackets, {}, indicates a concatenation operation.
switch (MACSR[6:5])
/* MACSR[S/U, F/I] */
{
case 0:
/* signed integers */
if (MACSR.OMC == 0 || MACSR.PAVx == 0)
then {
MACSR.PAVx = 0
/* select the input operands */
if (sz == word)
then {if (U/Ly == 1)
then operandY[31:0] = {sign-extended Ry[31], Ry[31:16]}
else operandY[31:0] = {sign-extended Ry[15], Ry[15:0]}
if (U/Lx == 1)
then operandX[31:0] = {sign-extended Rx[31], Rx[31:16]}
else operandX[31:0] = {sign-extended Rx[15], Rx[15:0]}
}
else {operandY[31:0] = Ry[31:0]
operandX[31:0] = Rx[31:0]
}
/* perform the multiply */
product[63:0] = operandY[31:0] * operandX[31:0]
/* check for product overflow */
if ((product[63:39] != 0x0000_00_0) && (product[63:39] != 0xffff_ff_1))
then {
/* product overflow */
MACSR.PAVx = 1
MACSR.V = 1
if (inst == MSAC && MACSR.OMC == 1)
then if (product[63] == 1)
then result[47:0] = 0x0000_7fff_ffff
else result[47:0] = 0xffff_8000_0000
else if (MACSR.OMC == 1)
then /* overflowed MAC,
saturationMode enabled */
if (product[63] == 1)
then result[47:0] = 0xffff_8000_000
0
else result[47:0] = 0x0000_7fff_fff
Содержание ColdFire MCF5281
Страница 1: ...MCF5282UM D Rev 2 1 2004 MCF5282 ColdFire Microcontroller User s Manual Devices Supported MCF5281 ...
Страница 124: ...3 20 MCF5282 User s Manual MOTOROLA EMAC Instruction Set Summary ...
Страница 141: ...MOTOROLA Chapter 5 Static RAM SRAM 5 5 SRAM Programming Model ...
Страница 142: ...5 6 MCF5282 User s Manual MOTOROLA SRAM Programming Model ...
Страница 168: ...6 26 MCF5282 User s Manual MOTOROLA Interrupts ...
Страница 186: ...7 18 MCF5282 User s Manual MOTOROLA Functional Description ...
Страница 228: ...9 22 MCF5282 User s Manual MOTOROLA Functional Description ...
Страница 246: ...10 18 MCF5282 User s Manual MOTOROLA Low Power Wakeup Operation ...
Страница 254: ...11 8 MCF5282 User s Manual MOTOROLA Memory Map and Registers ...
Страница 264: ...12 10 MCF5282 User s Manual MOTOROLA Chip Select Registers ...
Страница 280: ...13 16 MCF5282 User s Manual MOTOROLA Misaligned Operands ...
Страница 314: ...14 34 MCF5282 User s Manual MOTOROLA MCF5282 External Signals ...
Страница 339: ...MOTOROLA Chapter 15 Synchronous DRAM Controller Module 15 25 SDRAM Example ...
Страница 340: ...15 26 MCF5282 User s Manual MOTOROLA SDRAM Example ...
Страница 356: ...16 16 MCF5282 User s Manual MOTOROLA DMA Controller Module Functional Description ...
Страница 408: ...17 52 MCF5282 User s Manual MOTOROLA Buffer Descriptors ...
Страница 446: ...20 24 MCF5282 User s Manual MOTOROLA Interrupts ...
Страница 474: ...22 18 MCF5282 User s Manual MOTOROLA Programming Model ...
Страница 510: ...23 36 MCF5282 User s Manual MOTOROLA Operation ...
Страница 526: ...24 16 MCF5282 User s Manual MOTOROLA I2C Programming Examples ...
Страница 672: ...28 12 MCF5282 User s Manual MOTOROLA Functional Description ...
Страница 718: ...29 46 MCF5282 User s Manual MOTOROLA Motorola Recommended BDM Pinout ...
Страница 750: ...32 8 MCF5282 User s Manual MOTOROLA Ordering Information ...
Страница 800: ...A 22 MCF5282 User s Manual MOTOROLA ...