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

Next: Raw read/write Functions, Previous: Directly-mapped Integer Functions, Up: FR-V Built-in Functions

##### 6.54.5.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