# dmd.backend.code

Define registers, register masks, and the CPU instruction linked list

#### Discussion

Compiler implementation of the D programming language.

#### Authors

Walter Bright

#### License

Boost License 1.0

Source: backend/code.d

- `_Declaration`

  #### Declaration

  `struct `_Declaration`;`

  Code data type

- `code_calloc`

  #### Declaration

  `nothrow @safe code* `code_calloc`();`

  PUBLIC FUNCTIONS

- `REGSAVE`

  #### Declaration

  `struct `REGSAVE`;`

  Register save state.

- `LocalSection`

  #### Declaration

  `struct `LocalSection`;`

  Local sections on the stack

- `usednteh`

  #### Declaration

  `uint `usednteh`;`

  As we generate code, collect information about what parts of NT exception handling we need.

- `CGstate`

  #### Declaration

  `struct `CGstate`;`

  Code Generator State

- `FuncParamRegs`

  #### Declaration

  `struct `FuncParamRegs`;`

- `iasm_regs`

  #### Declaration

  `nothrow @system regm_t `iasm_regs`(block* `bp`);`

  Get registers used by a given block

  #### Parameters

  `block* `bp`` | asm block

  #### Return Value

  mask of registers used by block `bp`.

- `regimmed_set`

  #### Declaration

  `nothrow @trusted void `regimmed_set`(int `reg`, targ_size_t `e`);`

  Set value in regimmed for `reg`.

  NOTE: For 16 bit generator, this is always a (targ_short) sign-extended value.