# [U-Boot-Users] what means this symbol "@"?

Pantelis Antoniou panto at intracom.gr
Thu May 8 14:26:24 CEST 2003

```Jerry Van Baren wrote:

> @h  = high order 16 bits
> @l  = low order 16 bits
> @ha = high order 16 bits adjusted so that, when you add the
> sign-extended low order 16 bits, the value comes out to the right number
>
> Example of @ha:
>   lis  r3,     0x0000FFFF at ha    /* r3 = 0x0001oooo */
>   addi r3, r3, 0x0000FFFF at l     /* r3 = 0x0001oooo + 0xffffFFFF =
> 0x0000FFFF */
>
> will actually load 0x00010000 into r3 in the first instruction because
> the second instruction (addi) sign-extends the 0x0000FFFF to become
> 0xFFFFFFFF.  After the addi, r3 will have the proper value 0x0000FFFF.
>
> ori does not sign extend the immediate value, so it does not have this
> quirk and therefore you would use @h and @l:
>   lis r3,     0x0000FFFF at h      /* r3 = 0x00000000 */
>   ori r3, r3, 0x0000FFFF at l      /* r3 = 0x0000oooo | 0xooooFFFF =
> 0x0000FFFF */
>
> I've never figured out why someone would want to use addi instead of
> ori in the second instruction of the load sequence.
>
> gvb

It's useful when the second instruction is a load, or a store.

Instead of doing this to store a value to the global variable foo:

lis  r3,foo at h
ori  r3,r3,foo at l
stw  r4,0(r3)       ; store r4 to foo

do this:

lis  r3,foo at ha
stw  r4,foo at l(r3)   ; store r4 to foo

that is because the store and load immediate offsets are sign extended.

Regards

Pantelis

>
>
> At 11:32 AM 5/8/2003 -0400, okisoftxman at hotmail.com wrote:
>
>> In u-boot/cpu/mpc8xx/start.S,I usually find this symbol "@",such as
>> followed:
>>
>> _start:
>>  lis r3, CFG_IMMR at h  /* position IMMR */
>>  mtspr 638, r3
>>  li r21, BOOTFLAG_COLD /* Normal Power-On: Boot from FLASH */
>>  b boot_cold
>>
>> what does it means? Thank you!
>
>
>
>
> **********************************************************************
> This e-mail and any files transmitted with it may be confidential and
> may be legally privileged or otherwise exempt from disclosure under
> applicable law. This e-mail and its files are intended solely for
> the individual or entity to whom they are addressed and their content
> is the property of Smiths Aerospace.  If you are not the intended
> recipient, please do not read, copy, use or disclose this communication.
> If you have received this e-mail in error please notify the e-mail
> administrator at postmaster at smiths-aerospace.com and then delete this
> e-mail, its files and any copies.
>
> This footnote also confirms that this e-mail message has been scanned
> for the presence of known computer viruses.
>
> Smiths addresses are changing!  The new addresses are of the form
> books!  Please begin using the new form immediately.
> ***********************************************************************
>
>
> -------------------------------------------------------
> Enterprise Linux Forum Conference & Expo, June 4-6, 2003, Santa Clara
> The only event dedicated to issues related to Linux enterprise solutions
> www.enterpriselinuxforum.com
>
> _______________________________________________
> U-Boot-Users mailing list
> U-Boot-Users at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/u-boot-users
>
>

```