Report a bug
If you spot a problem with this page, click here to create a GitHub issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using a local clone.

dmd.backend.code

Define registers, register masks, and the CPU instruction linked list
Compiler implementation of the D programming language.
Authors:
struct _Declaration;
Code data type
public import dmd.backend.dcode : code_calloc, code_free, code_term, code_chunk_alloc, code_list;
PUBLIC FUNCTIONS
struct REGSAVE;
Register save state.
struct LocalSection;
Local sections on the stack
struct CGstate;
Code Generator State
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.

struct Relocation;
For Machobj Because the relocations cannot be computed until after all the segments are written out, and we need more information than the relocations provide, make our own relocation type. Later, translate to Mach-O relocation structures relocation_info and scattered_relocation_info.
struct FuncParamRegs;
nothrow @system regm_t iasm_regs(block* bp);
Get registers used by a given block
Parameters:
block* bp asm block
Returns:
mask of registers used by block bp.