# Form `A` — A — Arithmetic (three-source FPU) ## Bit Layout | Bits | Field | Meaning | | --- | --- | --- | | 0–5 | `OPCD` | primary opcode (59 or 63) | | 6–10 | `FRT` | destination FPR | | 11–15 | `FRA` | source A FPR | | 16–20 | `FRB` | source B FPR | | 21–25 | `FRC` | source C FPR (multiplier for madd-style ops) | | 26–30 | `XO` | extended opcode (5 bits) | | 31 | `Rc` | record-form flag (updates CR1) | ## Instructions Using This Form | Mnemonic | Opcode | Group | Description | | --- | --- | --- | --- | | [`fdivsx`](../fpu/fdivsx.md) | `0xec000024` | fpu | Floating Divide Single | | [`fsubsx`](../fpu/fsubsx.md) | `0xec000028` | fpu | Floating Subtract Single | | [`faddsx`](../fpu/faddsx.md) | `0xec00002a` | fpu | Floating Add Single | | [`fsqrtsx`](../fpu/fsqrtsx.md) | `0xec00002c` | fpu | Floating Square Root Single | | [`fresx`](../fpu/fresx.md) | `0xec000030` | fpu | Floating Reciprocal Estimate Single | | [`fmulsx`](../fpu/fmulsx.md) | `0xec000032` | fpu | Floating Multiply Single | | [`fmsubsx`](../fpu/fmsubsx.md) | `0xec000038` | fpu | Floating Multiply-Subtract Single | | [`fmaddsx`](../fpu/fmaddsx.md) | `0xec00003a` | fpu | Floating Multiply-Add Single | | [`fnmsubsx`](../fpu/fnmsubsx.md) | `0xec00003c` | fpu | Floating Negative Multiply-Subtract Single | | [`fnmaddsx`](../fpu/fnmaddsx.md) | `0xec00003e` | fpu | Floating Negative Multiply-Add Single | | [`fdivx`](../fpu/fdivx.md) | `0xfc000024` | fpu | Floating Divide | | [`fsubx`](../fpu/fsubx.md) | `0xfc000028` | fpu | Floating Subtract | | [`faddx`](../fpu/faddx.md) | `0xfc00002a` | fpu | Floating Add | | [`fsqrtx`](../fpu/fsqrtx.md) | `0xfc00002c` | fpu | Floating Square Root | | [`fselx`](../fpu/fselx.md) | `0xfc00002e` | fpu | Floating Select | | [`fmulx`](../fpu/fmulx.md) | `0xfc000032` | fpu | Floating Multiply | | [`frsqrtex`](../fpu/frsqrtex.md) | `0xfc000034` | fpu | Floating Reciprocal Square Root Estimate | | [`fmsubx`](../fpu/fmsubx.md) | `0xfc000038` | fpu | Floating Multiply-Subtract | | [`fmaddx`](../fpu/fmaddx.md) | `0xfc00003a` | fpu | Floating Multiply-Add | | [`fnmsubx`](../fpu/fnmsubx.md) | `0xfc00003c` | fpu | Floating Negative Multiply-Subtract | | [`fnmaddx`](../fpu/fnmaddx.md) | `0xfc00003e` | fpu | Floating Negative Multiply-Add |