MaverickCrunchは、デジタルオーディオ向けに設計された浮動小数点演算コプロセッサコアです。 2000年6月にCirrus Logic社によって初めて発表され[ 1 ]、同社の200MHz EP9302、EP9307、EP9312、EP9315システムオンチップ集積回路にARM9 20T整数プロセッサとともに搭載されました。ハードウェアのバグやコンパイラのサポートの悪さに悩まされ、これらのチップをベースにしたデバイスではほとんど使用されず、製品ラインは2008年4月1日に廃止されました。

このコプロセッサは、32ビットまたは64ビットの整数および浮動小数点演算に使用できる16個の64ビットレジスタを備えており、浮動小数点フォーマットはIEEE-754規格に基づいています。独自の命令セットを持ち、浮動小数点の加算、減算、乗算、否定、絶対値、比較に加え、整数の加算、乗算、ビットシフトを実行します。また、32ビット乗算累積命令とステータスレジスタを実行できる4つの72ビットレジスタ、整数値と浮動小数点値間の変換、および自身とARMレジスタまたはメモリ間でデータを転送する命令も備えています。
これはメインプロセッサと並列に動作し、両方のプロセッサは単一の32ビット命令ストリームから命令を受け取ります。したがって、効率的に使用するには、整数命令と浮動小数点命令を交互に実行して、両方のプロセッサが常に稼働状態を維持する必要があります。
EP93xxシリコンは「D0」と「D1」、「E0」、「E1」、「E2」の5つのバージョンがリリースされ、D0とD1の間でMaverickCrunchコアに重大なバグを修正するための大幅な改訂が行われました。いずれのバージョンにも12個以上のハードウェアバグがあり、特定の命令シーケンスを特定の順序で実行すると、不正確な結果やゴミデータが出力されたり、レジスタやメモリが破壊されたりします。
2003年にRed Hat/Cygnus SolutionsがGNU Compiler Collectionにパッチセットを提出し、その欠陥を回避するためのフラグを備えたコードジェネレータを追加しました。しかし、これらは実用化できるほど十分に機能しませんでした。GCC 4.8(2012年9月)で削除されました。[ 2 ]
この問題を修正するために、いくつかの試みがなされてきました。