Custom Relocations

Sometimes you’ll want to use or write an output module that needs more information about a particular label reference. Usually this is because it will need to communicate to the linker that the relocation the label reference generates is special, and that the linker should handle it differently.

The custom relocation is supplied just for this reason. You can use it anywhere you would normally use a label reference.

(reloc type)
(reloc type target)
(reloc type target value)

The type is a symbol, and should be the particular symbol the output module needs in order to designate the relocation as a particular type. The target, if supplied, should be an actual label. If value is supplied as well, which should be an integer, the value will be added to the value Sassy would normally place in the relocation field. When using a custom relocation within a memory reference (& ...), the value will be added to the offset.

See here for information on how this information is stored in the relocation record.