# dmd.backend.code_x86

Constants and data structures specific to the x86 platform.

#### Authors

Walter Bright

#### License

Boost License 1.0

Source: backend/`code_x86`.d

Documentation: https://dlang.org/phobos/dmd_backend_code_x86.html

Coverage: https://codecov.io/gh/dlang/dmd/src/master/src/dmd/backend/code_x86.d

- `mMSW`

  #### Declaration

  `enum int `mMSW`;`

  Masks for register pairs. Note that index registers are always LSWs. This is for the convenience of implementing far pointers.

- `mLSW`

  #### Declaration

  `enum int `mLSW`;`

  Masks for register pairs. Note that index registers are always LSWs. This is for the convenience of implementing far pointers.

- `CLIB`

  #### Declaration

  `enum `CLIB`: int;`

  C library routines. See callclib().

- `modregrm`

  #### Declaration

  `nothrow ubyte `modregrm`(uint `m`, uint `r`, uint `rm`);`

  Macros to ease generating code `modregrm`: generate mod reg `r`/`m` field modregxrm: reg could be R8..R15 modregrmx: `rm` could be R8..R15 modregxrmx: reg or `rm` could be R8..R15

  NEWREG: change reg field of x to `r` genorreg: OR t,f

- `NDP`

  #### Declaration

  `struct `NDP`;`

- `Globals87`

  #### Declaration

  `struct `Globals87`;`

- `global87`

  #### Declaration

  `Globals87 `global87`;`

- `getlvalue_msw`

  #### Declaration

  `nothrow void `getlvalue_msw`(code*);`

- `getlvalue_lsw`

  #### Declaration

  `nothrow void `getlvalue_lsw`(code*);`

- `getlvalue`

  #### Declaration

  `nothrow void `getlvalue`(ref CodeBuilder `cdb`, code* `pcs`, elem* `e`, regm_t `keepmsk`);`

- `loadea`

  #### Declaration

  `nothrow void `loadea`(ref CodeBuilder `cdb`, elem* `e`, code* `cs`, uint `op`, uint `reg`, targ_size_t `offset`, regm_t `keepmsk`, regm_t `desmsk`);`