mov

All chained uses of mov must be enclosed in a scope using {..} Failure to do this will result in registers being overwritten by other movs, as this template uses scope (exit) for inline asm!

Does not automatically prepare the stack for you, and R10, R11, R12 & XMM8 are used as scratch registers. Use prep!(uint) to prepare the stack and rest!(uint) to restore the stack.

  1. string mov()
    template mov(uint ID, alias VAR, AS = void, uint _LINE = __LINE__)
    static static pure pure
    static if(ID >= eax)
    string
    mov
    ()
  2. string mov()
  3. string mov()
  4. template mov(uint ID, T, T val, AS = void, uint _LINE = __LINE__)

Members

Aliases

RT
alias RT = typeof(VAR)
Undocumented in source.
T
alias T = typeof(VAR)
Undocumented in source.
T
alias T = AS
Undocumented in source.

Static functions

mov
string mov()
Undocumented in source. Be warned that the author may not have intended to support it.
mov
string mov()
Undocumented in source. Be warned that the author may not have intended to support it.
mov
string mov()
Undocumented in source. Be warned that the author may not have intended to support it.

Static variables

LINE
string LINE;
Undocumented in source.
pair
string[][uint] pair;
Undocumented in source.
register
string[uint] register;
Undocumented in source.

Parameters

ID

Register (or argument index) to put VAR into.

VAR

Value to put into ID.

AS

Type to emulate VAR as, defaults to void for the same type as VAR is.

_LINE

Used for preventing collisions when storing high/low of VAR. Change to a different value if getting errors.

Examples

 {
  mixin(mov!(rax, a));
  mixin(mov!(rbx, b));
  mixin(mov!(rcx, a, void, true));
}

Meta