---
name: "npx"
section: "4"
platform: "linux"
package: "freebsd-manpages"
version: "6.0-5"
release: "Debian 4.0 (Etch)"
platforms: ["linux", "freebsd", "openbsd"]
url: "https://new.carta.tech/npx/4"
---

# npx(4)

Numeric Processing Extension coprocessor

## NAME

**npx** – Numeric Processing Extension coprocessor

## SYNOPSIS

**device npx** **hint.npx.0.at="nexus"** **hint.npx.0.port="0x0F0"** **hint.npx.0.flags="0x0"** **hint.npx.0.irq="13"**

## DESCRIPTION

The **npx** driver enables the use of the system's Numeric Processing Extension coprocessor. Numeric processing extensions are present in systems with 486DX CPUs and in systems with 387 or 487SX coprocessors. The **npx** driver is required for proper system functioning. If there is no NPX in the system, the system will not boot.

The flags for *npx0* are:

- 0x01

  do not use the NPX registers to optimize bcopy.

- 0x02

  do not use the NPX registers to optimize bzero.

- 0x04

  do not use the NPX registers to optimize copyin or copyout.

The NPX registers are normally used to optimize copying and zeroing when all of the following conditions are satisfied:

1. **cpu I586\_CPU** is an option

2. the CPU is an i586 (perhaps not a Pentium)

3. the probe for *npx0* succeeds

4. INT 16 exception handling works.

Then copying and zeroing using the NPX registers is normally 30-100% faster.

The flags can be used to control cases where it does not work or is slower. Setting them at boot time using userconfig works correctly (the optimizations are not used until later in the bootstrap when *npx0* is attached).

## BUGS

There are lots of them, especially on old cheap motherboards. In particular, some motherboards do not have the interrupt lines from the NPX to the CPU wired properly.
