[ Home ]
SBCL Internals

The pages on this CLiki-driven site can be edited by anybody at any time. No warranty of any kind can therefore be made; any implied warranties of merchantability or fitness for a particular purpose are expressly disclaimed
[ Home ] [ Recent Changes ] [ About CLiki ] [ Text Formatting ]

An SC is a storage class - "a potentially arbitrary set of the elements in a storage base (SB)". Defined using DEFINE-STORAGE-CLASS on the x86, or possibly other macros on other machines (e.g. DEFINE-STORAGE-CLASSES on the Alpha). See compiler/$SBCL_ARCH/vm.lisp

A storage class is typically something like "all registers" or "some bunch of control stack locations". TNs have storage classes which restrict the circumstances they can be used in: for example, a control-stack TN can't be used in a register-to-register move and the assembler will complain if you try to.

Storage classes may overlap. For efficiency reasons a TN shouldn't have lots of overlapping SC's as legal SC's, since time would be wasted repeatedly attempting to pack in the same locations. Given which, explanation wanted: why are TNs often marked (descriptor-reg any-reg) when any-reg is a superset of descriptor-reg?

In acquiring the arguments for internal error handling, the SC-OFFSET data structure is used.


Pages in this topic: Primitive Type   TN  


Also linked from: SC-OFFSET  

CLiki pages can be edited by anyone at any time. Imagine a fearsomely comprehensive disclaimer of liability. Now fear, comprehensively