Report a bug
If you spot a problem with this page, click here to create a Bugzilla 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_x86

Compiler implementation of the D programming language.
Authors:
enum int mMSW;
Masks for register pairs. Note that index registers are always LSWs. This is for the convenience of implementing far pointers.
enum int mLSW;
Masks for register pairs. Note that index registers are always LSWs. This is for the convenience of implementing far pointers.
enum CLIB: int;
C library routines. See callclib().
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

struct NDP;
NDP[8] _8087elems;
void getlvalue_msw(code*);
void getlvalue_lsw(code*);
void getlvalue(ref CodeBuilder cdb, code* pcs, elem* e, regm_t keepmsk);
void loadea(ref CodeBuilder cdb, elem* e, code* cs, uint op, uint reg, targ_size_t offset, regm_t keepmsk, regm_t desmsk);