2014-05-10 19:45:07 -04:00
|
|
|
USING: help.markup help.syntax math ;
|
2014-05-04 19:38:43 -04:00
|
|
|
IN: cpu.x86
|
|
|
|
|
|
|
|
HELP: stack-reg
|
2014-05-10 19:45:07 -04:00
|
|
|
{ $values { "reg" "a register symbol" } }
|
2014-05-04 19:38:43 -04:00
|
|
|
{ $description
|
|
|
|
"Symbol of the machine register that holds the (cpu) stack address."
|
|
|
|
} ;
|
|
|
|
|
|
|
|
HELP: ds-reg
|
2014-05-10 19:45:07 -04:00
|
|
|
{ $values { "reg" "a register symbol" } }
|
2014-05-04 19:38:43 -04:00
|
|
|
{ $description
|
|
|
|
"Symbol of the machine register that holds the address to the data stack's location."
|
|
|
|
} ;
|
|
|
|
|
|
|
|
HELP: (%inc)
|
2014-05-10 19:45:07 -04:00
|
|
|
{ $values { "n" number } { "reg" "a register symbol" } }
|
2014-05-04 19:38:43 -04:00
|
|
|
{ $description
|
2014-05-06 12:10:24 -04:00
|
|
|
"Emits machine code for increasing or decreasing the given register a number of cell sizes bytes."
|
2014-05-04 19:38:43 -04:00
|
|
|
}
|
|
|
|
{ $examples
|
|
|
|
{ $unchecked-example
|
|
|
|
"USING: cpu.x86 make prettyprint ;"
|
|
|
|
"[ 8 ECX (%inc) ] B{ } make disassemble"
|
|
|
|
"00000000615e5140: 83c140 add ecx, 0x40"
|
|
|
|
}
|
|
|
|
} ;
|
|
|
|
|
|
|
|
HELP: load-zone-offset
|
|
|
|
{ $values { "nursery-ptr" "a register symbol" } }
|
|
|
|
{ $description
|
2014-05-06 12:10:24 -04:00
|
|
|
"Emits machine code for loading the address to the nursery into the machine register."
|
2014-05-04 19:38:43 -04:00
|
|
|
}
|
|
|
|
{ $examples
|
|
|
|
{ $unchecked-example
|
2014-05-06 12:10:24 -04:00
|
|
|
"USING: cpu.x86 make ;"
|
2014-05-04 19:38:43 -04:00
|
|
|
"[ RCX load-zone-offset ] B{ } make disassemble"
|
|
|
|
"0000000001b48f80: 498d4d10 lea rcx, [r13+0x10]"
|
|
|
|
}
|
|
|
|
} ;
|
2014-05-06 12:10:24 -04:00
|
|
|
|
2014-05-11 07:12:56 -04:00
|
|
|
HELP: store-tagged
|
|
|
|
{ $values { "dst" "a register symbol" } { "tag" "a builtin class" } }
|
|
|
|
{ $description "Tags the register with the tag number for the given class." }
|
|
|
|
{ $examples
|
|
|
|
{ $unchecked-example
|
|
|
|
"USING: cpu.x86 make ;"
|
|
|
|
"[ RAX alien store-tagged ] B{ } make disassemble"
|
|
|
|
"0000000002275f10: 4883c806 or rax, 0x6"
|
|
|
|
}
|
|
|
|
} ;
|
|
|
|
|
2014-05-06 12:10:24 -04:00
|
|
|
HELP: copy-register*
|
|
|
|
{ $values
|
|
|
|
{ "dst" "a register symbol" }
|
|
|
|
{ "src" "a register symbol" }
|
|
|
|
{ "rep" "a value representation singleton" }
|
|
|
|
}
|
|
|
|
{ $description
|
|
|
|
"Emits machine code for copying from a register to another."
|
|
|
|
}
|
|
|
|
{ $examples
|
|
|
|
{ $unchecked-example
|
|
|
|
"USING: cpu.x86 make ;"
|
|
|
|
"[ XMM1 XMM2 double-rep copy-register* ] B{ } make disassemble"
|
|
|
|
"0000000533c61fe0: 0f28ca movaps xmm1, xmm2"
|
|
|
|
}
|
|
|
|
} ;
|
2014-05-11 07:12:56 -04:00
|
|
|
|
|
|
|
HELP: %mov-vm-ptr
|
|
|
|
{ $values { "reg" "a register symbol" } }
|
|
|
|
{ $description
|
|
|
|
"Emits machine code for moving the vm pointer to a register." }
|
|
|
|
{ $examples
|
|
|
|
{ $unchecked-example
|
|
|
|
"USING: cpu.x86.64 make ;"
|
|
|
|
"[ RAX %mov-vm-ptr ] B{ } make disassemble"
|
|
|
|
"0000000002290b30: 4c89e8 mov rax, r13"
|
|
|
|
}
|
|
|
|
} ;
|