David Daney a écrit : > On 09/17/2010 01:44 PM, Camm Maguire wrote: >> Greetings! >> >> David Daney<[email protected]> writes: >> >>> On 09/17/2010 07:16 AM, Camm Maguire wrote: >>>> Greetings! Is there anyway to load a known 64bit number into a given >>>> register in two instructions? >>> Not in the general case where the value of the 64-bit number is >>> unconstrained... >>> >>>> Said number is guaranteed to be within >>>> 32bits of the current value of another register. >>> In other words, you want to add an arbitrary 32-bit constant to the >>> value in a register. You would need three instructions to do this. >>> Two to generate the 32-bit constant and another to do the addition. >>> >>> David Daney. >>> >> Alas, this was as I had expected. Perhaps you can suggest a course of >> action. >> >> On mips only, there is no plt support -- executables instead have >> .MIPS.stubs entries for lazy relocations to external symbols. Problem >> is, these are only callable if the gp register is left at its >> canonical position. I need to load, relocate, and execute code which >> might call these functions, which I currently redirect to the stub. >> This means that any .got references to addresses in the code to be >> relocated, which will of course not be in the global .got table, have >> to be patched to immediate addressess, which on mips32 is easy >> enough -- ld v0,oooo(gp) -> lui v0,hhhh. This won't work on mips64. >> > > PLT support works with the n32 ABI (with new toolchains). Can you use that? >
It actually works with all ABI. -- Aurelien Jarno GPG: 1024D/F1BCDB73 [email protected] http://www.aurel32.net -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

