Directly-mapped Media Functions (Using the GNU Compiler Collection (GCC))

#### 7.13.11.3 Directly-Mapped Media Functions ¶

The functions listed below map directly to FR-V M-type instructions.

Function prototype | Example usage | Assembly output
--- | --- | ---
`uw1 __MABSHS (sw1)` | `b = __MABSHS (a)` | `MABSHS a,b`
`void __MADDACCS (acc, acc)` | `__MADDACCS (b, a)` | `MADDACCS a,b`
`sw1 __MADDHSS (sw1, sw1)` | `c = __MADDHSS (a, b)` | `MADDHSS a,b,c`
`uw1 __MADDHUS (uw1, uw1)` | `c = __MADDHUS (a, b)` | `MADDHUS a,b,c`
`uw1 __MAND (uw1, uw1)` | `c = __MAND (a, b)` | `MAND a,b,c`
`void __MASACCS (acc, acc)` | `__MASACCS (b, a)` | `MASACCS a,b`
`uw1 __MAVEH (uw1, uw1)` | `c = __MAVEH (a, b)` | `MAVEH a,b,c`
`uw2 __MBTOH (uw1)` | `b = __MBTOH (a)` | `MBTOH a,b`
`void __MBTOHE (uw1 *, uw1)` | `__MBTOHE (&b, a)` | `MBTOHE a,b`
`void __MCLRACC (acc)` | `__MCLRACC (a)` | `MCLRACC a`
`void __MCLRACCA (void)` | `__MCLRACCA ()` | `MCLRACCA`
`uw1 __Mcop1 (uw1, uw1)` | `c = __Mcop1 (a, b)` | `Mcop1 a,b,c`
`uw1 __Mcop2 (uw1, uw1)` | `c = __Mcop2 (a, b)` | `Mcop2 a,b,c`
`uw1 __MCPLHI (uw2, const)` | `c = __MCPLHI (a, b)` | `MCPLHI a,#b,c`
`uw1 __MCPLI (uw2, const)` | `c = __MCPLI (a, b)` | `MCPLI a,#b,c`
`void __MCPXIS (acc, sw1, sw1)` | `__MCPXIS (c, a, b)` | `MCPXIS a,b,c`
`void __MCPXIU (acc, uw1, uw1)` | `__MCPXIU (c, a, b)` | `MCPXIU a,b,c`
`void __MCPXRS (acc, sw1, sw1)` | `__MCPXRS (c, a, b)` | `MCPXRS a,b,c`
`void __MCPXRU (acc, uw1, uw1)` | `__MCPXRU (c, a, b)` | `MCPXRU a,b,c`
`uw1 __MCUT (acc, uw1)` | `c = __MCUT (a, b)` | `MCUT a,b,c`
`uw1 __MCUTSS (acc, sw1)` | `c = __MCUTSS (a, b)` | `MCUTSS a,b,c`
`void __MDADDACCS (acc, acc)` | `__MDADDACCS (b, a)` | `MDADDACCS a,b`
`void __MDASACCS (acc, acc)` | `__MDASACCS (b, a)` | `MDASACCS a,b`
`uw2 __MDCUTSSI (acc, const)` | `c = __MDCUTSSI (a, b)` | `MDCUTSSI a,#b,c`
`uw2 __MDPACKH (uw2, uw2)` | `c = __MDPACKH (a, b)` | `MDPACKH a,b,c`
`uw2 __MDROTLI (uw2, const)` | `c = __MDROTLI (a, b)` | `MDROTLI a,#b,c`
`void __MDSUBACCS (acc, acc)` | `__MDSUBACCS (b, a)` | `MDSUBACCS a,b`
`void __MDUNPACKH (uw1 *, uw2)` | `__MDUNPACKH (&b, a)` | `MDUNPACKH a,b`
`uw2 __MEXPDHD (uw1, const)` | `c = __MEXPDHD (a, b)` | `MEXPDHD a,#b,c`
`uw1 __MEXPDHW (uw1, const)` | `c = __MEXPDHW (a, b)` | `MEXPDHW a,#b,c`
`uw1 __MHDSETH (uw1, const)` | `c = __MHDSETH (a, b)` | `MHDSETH a,#b,c`
`sw1 __MHDSETS (const)` | `b = __MHDSETS (a)` | `MHDSETS #a,b`
`uw1 __MHSETHIH (uw1, const)` | `b = __MHSETHIH (b, a)` | `MHSETHIH #a,b`
`sw1 __MHSETHIS (sw1, const)` | `b = __MHSETHIS (b, a)` | `MHSETHIS #a,b`
`uw1 __MHSETLOH (uw1, const)` | `b = __MHSETLOH (b, a)` | `MHSETLOH #a,b`
`sw1 __MHSETLOS (sw1, const)` | `b = __MHSETLOS (b, a)` | `MHSETLOS #a,b`
`uw1 __MHTOB (uw2)` | `b = __MHTOB (a)` | `MHTOB a,b`
`void __MMACHS (acc, sw1, sw1)` | `__MMACHS (c, a, b)` | `MMACHS a,b,c`
`void __MMACHU (acc, uw1, uw1)` | `__MMACHU (c, a, b)` | `MMACHU a,b,c`
`void __MMRDHS (acc, sw1, sw1)` | `__MMRDHS (c, a, b)` | `MMRDHS a,b,c`
`void __MMRDHU (acc, uw1, uw1)` | `__MMRDHU (c, a, b)` | `MMRDHU a,b,c`
`void __MMULHS (acc, sw1, sw1)` | `__MMULHS (c, a, b)` | `MMULHS a,b,c`
`void __MMULHU (acc, uw1, uw1)` | `__MMULHU (c, a, b)` | `MMULHU a,b,c`
`void __MMULXHS (acc, sw1, sw1)` | `__MMULXHS (c, a, b)` | `MMULXHS a,b,c`
`void __MMULXHU (acc, uw1, uw1)` | `__MMULXHU (c, a, b)` | `MMULXHU a,b,c`
`uw1 __MNOT (uw1)` | `b = __MNOT (a)` | `MNOT a,b`
`uw1 __MOR (uw1, uw1)` | `c = __MOR (a, b)` | `MOR a,b,c`
`uw1 __MPACKH (uh, uh)` | `c = __MPACKH (a, b)` | `MPACKH a,b,c`
`sw2 __MQADDHSS (sw2, sw2)` | `c = __MQADDHSS (a, b)` | `MQADDHSS a,b,c`
`uw2 __MQADDHUS (uw2, uw2)` | `c = __MQADDHUS (a, b)` | `MQADDHUS a,b,c`
`void __MQCPXIS (acc, sw2, sw2)` | `__MQCPXIS (c, a, b)` | `MQCPXIS a,b,c`
`void __MQCPXIU (acc, uw2, uw2)` | `__MQCPXIU (c, a, b)` | `MQCPXIU a,b,c`
`void __MQCPXRS (acc, sw2, sw2)` | `__MQCPXRS (c, a, b)` | `MQCPXRS a,b,c`
`void __MQCPXRU (acc, uw2, uw2)` | `__MQCPXRU (c, a, b)` | `MQCPXRU a,b,c`
`sw2 __MQLCLRHS (sw2, sw2)` | `c = __MQLCLRHS (a, b)` | `MQLCLRHS a,b,c`
`sw2 __MQLMTHS (sw2, sw2)` | `c = __MQLMTHS (a, b)` | `MQLMTHS a,b,c`
`void __MQMACHS (acc, sw2, sw2)` | `__MQMACHS (c, a, b)` | `MQMACHS a,b,c`
`void __MQMACHU (acc, uw2, uw2)` | `__MQMACHU (c, a, b)` | `MQMACHU a,b,c`
`void __MQMACXHS (acc, sw2, sw2)` | `__MQMACXHS (c, a, b)` | `MQMACXHS a,b,c`
`void __MQMULHS (acc, sw2, sw2)` | `__MQMULHS (c, a, b)` | `MQMULHS a,b,c`
`void __MQMULHU (acc, uw2, uw2)` | `__MQMULHU (c, a, b)` | `MQMULHU a,b,c`
`void __MQMULXHS (acc, sw2, sw2)` | `__MQMULXHS (c, a, b)` | `MQMULXHS a,b,c`
`void __MQMULXHU (acc, uw2, uw2)` | `__MQMULXHU (c, a, b)` | `MQMULXHU a,b,c`
`sw2 __MQSATHS (sw2, sw2)` | `c = __MQSATHS (a, b)` | `MQSATHS a,b,c`
`uw2 __MQSLLHI (uw2, int)` | `c = __MQSLLHI (a, b)` | `MQSLLHI a,b,c`
`sw2 __MQSRAHI (sw2, int)` | `c = __MQSRAHI (a, b)` | `MQSRAHI a,b,c`
`sw2 __MQSUBHSS (sw2, sw2)` | `c = __MQSUBHSS (a, b)` | `MQSUBHSS a,b,c`
`uw2 __MQSUBHUS (uw2, uw2)` | `c = __MQSUBHUS (a, b)` | `MQSUBHUS a,b,c`
`void __MQXMACHS (acc, sw2, sw2)` | `__MQXMACHS (c, a, b)` | `MQXMACHS a,b,c`
`void __MQXMACXHS (acc, sw2, sw2)` | `__MQXMACXHS (c, a, b)` | `MQXMACXHS a,b,c`
`uw1 __MRDACC (acc)` | `b = __MRDACC (a)` | `MRDACC a,b`
`uw1 __MRDACCG (acc)` | `b = __MRDACCG (a)` | `MRDACCG a,b`
`uw1 __MROTLI (uw1, const)` | `c = __MROTLI (a, b)` | `MROTLI a,#b,c`
`uw1 __MROTRI (uw1, const)` | `c = __MROTRI (a, b)` | `MROTRI a,#b,c`
`sw1 __MSATHS (sw1, sw1)` | `c = __MSATHS (a, b)` | `MSATHS a,b,c`
`uw1 __MSATHU (uw1, uw1)` | `c = __MSATHU (a, b)` | `MSATHU a,b,c`
`uw1 __MSLLHI (uw1, const)` | `c = __MSLLHI (a, b)` | `MSLLHI a,#b,c`
`sw1 __MSRAHI (sw1, const)` | `c = __MSRAHI (a, b)` | `MSRAHI a,#b,c`
`uw1 __MSRLHI (uw1, const)` | `c = __MSRLHI (a, b)` | `MSRLHI a,#b,c`
`void __MSUBACCS (acc, acc)` | `__MSUBACCS (b, a)` | `MSUBACCS a,b`
`sw1 __MSUBHSS (sw1, sw1)` | `c = __MSUBHSS (a, b)` | `MSUBHSS a,b,c`
`uw1 __MSUBHUS (uw1, uw1)` | `c = __MSUBHUS (a, b)` | `MSUBHUS a,b,c`
`void __MTRAP (void)` | `__MTRAP ()` | `MTRAP`
`uw2 __MUNPACKH (uw1)` | `b = __MUNPACKH (a)` | `MUNPACKH a,b`
`uw1 __MWCUT (uw2, uw1)` | `c = __MWCUT (a, b)` | `MWCUT a,b,c`
`void __MWTACC (acc, uw1)` | `__MWTACC (b, a)` | `MWTACC a,b`
`void __MWTACCG (acc, uw1)` | `__MWTACCG (b, a)` | `MWTACCG a,b`
`uw1 __MXOR (uw1, uw1)` | `c = __MXOR (a, b)` | `MXOR a,b,c`