Deutsch English Français Italiano |
<c060255c0cdcebeb62e331e107e77baa@www.novabbs.org> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!weretis.net!feeder9.news.weretis.net!i2pn.org!i2pn2.org!.POSTED!not-for-mail From: mitchalsup@aol.com (MitchAlsup1) Newsgroups: comp.arch Subject: Re: address architecture, not interactive use, The Design of Design Date: Sun, 12 May 2024 23:02:21 +0000 Organization: Rocksolid Light Message-ID: <c060255c0cdcebeb62e331e107e77baa@www.novabbs.org> References: <v03uh5$gbd5$1@dont-email.me> <v1f7as$3d5bq$1@dont-email.me> <v1gp9h$2gnu$1@gal.iecc.com> <v1hlor$fkqo$1@dont-email.me> <v1joim$lcr$1@gal.iecc.com> <v1n5an$1teo9$1@dont-email.me> <480891d5e2f66ad5c878a70817ad135f@www.novabbs.org> <v1q5qg$2m3kv$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: i2pn2.org; logging-data="914971"; mail-complaints-to="usenet@i2pn2.org"; posting-account="65wTazMNTleAJDh/pRqmKE7ADni/0wesT78+pyiDW8A"; User-Agent: Rocksolid Light X-Rslight-Posting-User: ac58ceb75ea22753186dae54d967fed894c3dce8 X-Spam-Checker-Version: SpamAssassin 4.0.0 X-Rslight-Site: $2y$10$rJp3LXPo2i4SPIvRQpGPVe9zeh302iPIbCfcVM9RUgdxOrjAVlNxO Bytes: 2678 Lines: 36 Thomas Koenig wrote: > MitchAlsup1 <mitchalsup@aol.com> schrieb: >> Thomas Koenig wrote: >> >>> John Levine <johnl@taugh.com> schrieb: >> >>>> Brooks said it was ugly that some instructions (RX) had both base and >>>> index registers while others (SS) only had base registers, which I >>>> expect made it even harder to do what you suggested. >> >>> Depending on base registers for both data and branches was one >>> of the ideas that did not age well, I think. We have since >>> seen in the RISC machines that having a stack implemented via >>> a register, with possibly a frame pointer, a global offset and >>> larger offsets (16 bits) works well, and we know how to generate >>> position-independent code. >> >> Position independent data is still difficult, though. > Touché. Data is not the problem, but pointers to date (such as > addresses of arguments) is... Position independent external data requires a load of the base of the region the data sits, and a second memory access to do something with the data. You CAN use this base register multiple times--IFF you can figure out matching regions external data resides and share use of the base register. Modern systems put these bases in GOT. This is a hangover from the days where one built fully resolved object modules. ASLR is a driving force for a "better solution" {whatever it ends up being.} > So, having a base register added to all addresses of user code > would definitely have been a better choice.