|Software address translation - request for info email@example.com (Paul H J Kelly) (1992-07-28)|
|Re: Software address translation - request for info firstname.lastname@example.org (1992-07-30)|
|From:||Paul H J Kelly <email@example.com>|
|Date:||Tue, 28 Jul 1992 22:25:54 GMT|
We need a way of applying a non-trivial mapping to every data address
issued by a C program.
One reason why we need this is to simulate the effect of a page table so
we can run VM programs (in particular prototypes of an operating system)
on machines without memory management hardware.
The mapping we want to apply varies:
- sometimes just adding each address to a base value (which might
change during execution),
- more generally indirecting through a full address translation
We have considered several approaches:
1) Post-process the assembler and intercept all loads and store
2) modify the back end of a retargetable compiler (e.g. gcc) to
generate C instead of assembler, so we can then redefine
a couple of macros used in the generated C to change the mapping,
3) Write a front-end preprocessor, which modifies the C concrete or
abstract syntax to introduce the mapping,
4) Run standard binary as emitted by the C compiler, under a
simulator (e.g. spim) - then modify spim to perform address
These all have different advantages and disadvantages. My favourite is
(2), as it seems most flexible.
Can anyone provide me with any pointers to existing tools which can help
us? Surely we're not the first with this requirement!
I will of course try to produce a summary of responses.
Yours with many thanks,
Dept. of Computing, Imperial College, 180 Queen's Gate, London SW7 2BZ, UK
(telephone (+44 71) 589 5111 extension 5028, fax: +44 71 581 8024)
Return to the
Search the comp.compilers archives again.