2005-09-05 17:36:20 -04:00
|
|
|
IN: compiler-backend
|
2005-09-04 19:24:24 -04:00
|
|
|
USING: assembler compiler-backend sequences ;
|
|
|
|
|
2005-09-05 17:14:15 -04:00
|
|
|
! x86 register assignments
|
2005-09-07 17:21:11 -04:00
|
|
|
! EAX, ECX, EDX, EBP vregs
|
2005-09-05 17:14:15 -04:00
|
|
|
! ESI datastack
|
|
|
|
! EBX callstack
|
|
|
|
|
|
|
|
: cell
|
|
|
|
#! Word size.
|
|
|
|
4 ; inline
|
|
|
|
|
2005-09-09 22:34:24 -04:00
|
|
|
: fixnum-imm? ( -- ? )
|
|
|
|
#! Can fixnum operations take immediate operands?
|
|
|
|
t ; inline
|
|
|
|
|
2005-09-04 19:24:24 -04:00
|
|
|
: vregs ( -- n )
|
|
|
|
#! Number of vregs
|
2005-09-05 17:14:15 -04:00
|
|
|
3 ; inline
|
2005-09-04 19:24:24 -04:00
|
|
|
|
|
|
|
M: vreg v>operand vreg-n { EAX ECX EDX } nth ;
|