Yahoo Groups archive

Lpc2000

Index last updated: 2026-04-28 23:31 UTC

Message

Re: [lpc2000] GNU inline assembler return value

2005-07-11 by Bill Knight

yes, I blew it.  Didn't check the docs and had my head on a totally
different project.  Saw the correct answer shortly after posting mine.

-Bill


On Mon, 11 Jul 2005 19:22:53 +0200, Richard Duits wrote:

>Copying one register to another is done with the "mov" instruction:

>unsigned long retval;
>asm volatile ("mov sp, %0" : "=r" (retval) : /* no inputs */ );
>return retval;

>An alternative in this case would be:

>unsigned long stackptr __asm("sp");
>return stackptr;

>Regards,
>Richard Duits


>Bill Knight wrote:

>> On Mon, 11 Jul 2005 15:00:32 -0000, xjag74 wrote:
>>
>> >Hi,
>>
>> >I wonder why GCC don't compile that simple code:
>>
>> >static inline unsigned StackPointerValue(void)
>> >{
>> > unsigned long val;
>> > asm volatile (" str R13, retval");
>> > return val;
>> >}
>>
>> >When I try to compile the following error appears:
>> >"Internal_relocation (type: OFFSET_IMM) not fixed up"
>>
>> >What does that mean? How can I get that running?
>>
>>
>> 1st, 'retval' is not 'val'
>>
>> I haven't compiled this but try
>>
>> static inline unsigned StackPointerValue(void)
>>
>> unsigned long retval;
>> asm volatile (" str sp, %0" : "=r" (retval) : /* no inputs */ );
>> return retval;
>>
>>
>> Regards
>> -Bill Knight
>> R O SoftWare &
>> http://www.theARMPatch.com
>>
>>
>>
>>
>> ------------------------------------------------------------------------
>> YAHOO! GROUPS LINKS
>>
>>     *  Visit your group "lpc2000
>>       <http://groups.yahoo.com/group/lpc2000>" on the web.
>>        
>>     *  To unsubscribe from this group, send an email to:
>>        lpc2000-unsubscribe@yahoogroups.com
>>       <mailto:lpc2000-unsubscribe@yahoogroups.com?subject=Unsubscribe>
>>        
>>     *  Your use of Yahoo! Groups is subject to the Yahoo! Terms of
>>       Service <http://docs.yahoo.com/info/terms/>.
>>
>>
>> ------------------------------------------------------------------------
>>



> 
>Yahoo! Groups Links



>

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.