## machine-properties-default.pkg
#
# A set of default machine-properties values.
# By 'including' this package and then just
# overriding the values as necessary, actual
# machine-properties files may be made more
# compact. (Whether this is a good idea is debatable...)
#
# For real sets see:
#
# machine_properties_intel32 is from
src/lib/compiler/back/low/main/intel32/machine-properties-intel32.pkg# machine_properties_pwrpc32 is from
src/lib/compiler/back/low/main/pwrpc32/machine-properties-pwrpc32.pkg# machine_properties_sparc32 is from
src/lib/compiler/back/low/main/sparc32/machine-properties-sparc32.pkg# Compiled by:
#
src/lib/compiler/core.sublibstipulate
package sma = supported_architectures; # supported_architectures is from
src/lib/compiler/front/basics/main/supported-architectures.pkgherein
package machine_properties_default
: (weak) Machine_Properties # Machine_Properties is from
src/lib/compiler/back/low/main/main/machine-properties.api {
machine_architecture = sma::INTEL32; # Can be PWRPC32/SPARC32/INTEL32.
framesize = 4096;
num_int_regs = 0;
num_float_regs = 0;
spill_area_size = 0;
initial_spill_offset = 0;
run_heapcleaner__offset = 0; # Offset relative to framepointer of pointer to function which starts a heapcleaning ("garbage collection").
pseudo_reg_offset = 0;
const_base_pointer_reg_offset = 0;
big_endian = FALSE;
polling = FALSE;
unboxed_floats = TRUE;
representations = TRUE;
new_closure = TRUE;
untagged_int = FALSE;
num_arg_regs = 10;
max_rep_regs = 10;
num_float_arg_regs = 0;
num_callee_saves = 3;
num_float_callee_saves = 0;
Value_Tag = { tagbits: Int,
tagval: Int
};
int_tag = { tagbits=>1, tagval=>1 }; # Never used.
ptr_tag = { tagbits=>2, tagval=>0 }; # Never used.
tagword_tag = { tagbits=>2, tagval=>2 }; # Never used.
# Representations of memory-chunk tagwords:
#
package heap_tags = heap_tags; # heap_tags is from
src/lib/compiler/back/low/main/main/heap-tags.pkg value_size = 4;
char_size = 1;
float_size_in_bytes = 8; # Used only in
src/lib/compiler/back/low/main/nextcode/spill-nextcode-registers-g.pkg float_align = TRUE;
quasi_stack = FALSE;
quasi_free = FALSE;
quasi_frame_size = 7;
new_list_rep = FALSE;
list_cell_size = 2;
float_reg_params = TRUE;
write_allocate_hack = FALSE;
fixed_arg_passing = FALSE;
spill_rematerialization = FALSE;
# The following defaults happen to be the values for intel32
#
task_offset = 176;
hostthread_offtask = 4;
in_lib7off_vsp = 8;
limit_ptr_mask_off_vsp = 200;
#
framepointer_never_virtual = FALSE;
# intel32 and sparc32 don't use pre-allocated arg space for ccalls
#
ccall_prealloc_argspace_in_bytes = NULL;
}; # package machine_properties_default
end;
## COPYRIGHT (c) 1995 AT&T Bell Laboratories.
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2015,
## released per terms of SMLNJ-COPYRIGHT.