By David Keppel
Applications such as incremental linking must modify instruction space during program execution. Whenever instruction space is modified, machine-dependent systems issues such as instruction caching must be dealt with properly. However, there are no standard idioms for signaling a change to the instruction space. This paper discusses issues for instruction space allocation and coherence, describes a portable interface for modifying instruction space, and examines the details of several implementations of the interface.
You can also get the source code, which has implementations and test routines on several machines, including the DEC AXP (Alpha) running OSF/1; the Intel 0x86 family (uniprocessor and multiprocessor); the MIPS R2000 and R3000 running DEC Ultrix; the Motorola 68000; the SPARC V8 running Sun's SunOS or Solaris, and the DEC VAX. (The source code for a previous version is also available, just in case.)
%A David Keppel
%T A Portable Interface for On-The-Fly Instruction Space Modification
%J Proceedings of the Fourth International Conference on
Architectural Support for Programming Languages and Operating Systems
(ASPLOS-IV)
%D April 1991
%P 86-95
@article{Keppel:91a,
author={David Keppel},
title={A Portable Interface for On-The-Fly Instruction Space Modification},
journal={Proceedings of the Fourth International Conference on
Architectural Support for Programming Languages and
Operating Systems (ASPLOS-IV)},
month={April},
year={1991},
pages={86-95}
}