public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: YanMin Qiao <sepherosa@sohu.com>
To: u-boot@lists.denx.de
Subject: [U-Boot-Users] relocate_code
Date: Sat, 04 Jan 2003 10:45:27 +0800	[thread overview]
Message-ID: <3E164AC7.1050505@sohu.com> (raw)
In-Reply-To: 15932.1041646938@msa.cmst.csiro.au

Murray Jensen wrote:

>On Sat, 04 Jan 2003 00:22:21 +0800, YanMin Qiao <sepherosa@sohu.com> writes:
>...
>  
>
>>   cmplw    cr1,r3,r4
>>    
>>
>...
>  
>
>>   bge    cr1,2f
>>    
>>
>...
>  
>
>>1:    lwzu    r0,4(r8)
>>   stwu    r0,4(r7)
>>   bdnz    1b
>>   b    4f
>>
>>2:    slwi    r0,r0,2        <<----------------- i think above code will 
>>be enough for the two        
>>   add    r8,r4,r0                                      situation
>>   add    r7,r3,r0
>>3:    lwzu    r0,-4(r8)
>>   stwu    r0,-4(r7)
>>   bdnz    3b
>>    
>>
>
>One is copying forwards, the other is copying backwards - you can see the
>lwzu/stwu pair of instructions either add +4 or -4 to the registers
>containing the source and destination addresses (the "u" means to update the
>index register with the resulting memory address).
>
    First thanks for your answer, howerever, my question is
    Why we copy _forward_ when  _memory address_ <CFG_MONITOR_BASE, but 
when _memory address_>=CFG_MONITOR_BASE we will have to _copy backword_? 
 Is it because some overlapping problem when copy?

>
>Be careful with the first "bge" above - it isn't testing the result of the
>previous instruction, it is testing the result of the "cmplw" done quite a
>few instructions beforehand and stored in "cr1" i.e. it will branch if "r3"
>(the destination address) is >= "r4" (the source address) i.e. if it is
>possible that the copy will overwrite the source.
>
    thanks, I know

>
>The Powerpc CPU has four(?) condition code sets where results of operations
>can be stored. While I don't understand the details, I presume it has
>something to do with the instruction pipeline and avoiding unnecessary
>flushes - esp. when you consider that the programmer can indicate whether a
>branch is likely or not with a bit in the instruction - I presume (again)
>that this determines whether the processor does pre-fetching or something
>like that. Details of all this stuff is in the Powerpc Programmer's
>Environment Manual (I think).
>
>If you look through the latest linux kernel source you often see things like
>
>	if (unlikely(<condition>)) {
>
>or
>
>	if (likely(<condition>)) {
>
>On powerpc (I'm guessing) these macros will set an attribute for the compiler
>which will result in this bit being set or cleared in the branch instruction
>of the resulting assembly code - I guess it does something similar for later
>Pentium processors (and nothing at all if the processor doesn't have these
>sort of features). Cheers!
>								Murray...
>--
>Murray Jensen, CSIRO Manufacturing & Infra. Tech.      Phone: +61 3 9662 7763
>Locked Bag No. 9, Preston, Vic, 3072, Australia.         Fax: +61 3 9662 7853
>Internet: Murray.Jensen at csiro.au
>
>Hymod project: http://www.msa.cmst.csiro.au/projects/Hymod/
>
>To the extent permitted by law, CSIRO does not represent, warrant and/or
>guarantee that the integrity of this communication has been maintained or
>that the communication is free of errors, virus, interception or interference.
>
>The information contained in this e-mail may be confidential or privileged.
>Any unauthorised use or disclosure is prohibited. If you have received this
>e-mail in error, please delete it immediately and notify Murray Jensen on
>+61 3 9662 7763. Thank you.
>
>
>  
>

  reply	other threads:[~2003-01-04  2:45 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-01-03 16:22 [U-Boot-Users] relocate_code YanMin Qiao
2003-01-04  2:22 ` Murray Jensen
2003-01-04  2:45   ` YanMin Qiao [this message]
2003-01-04  8:08     ` Wolfgang Denk
2003-01-04 12:50     ` Murray Jensen
2003-01-04 13:28       ` YanMin Qiao
  -- strict thread matches above, loose matches on Subject: below --
2003-01-06 15:18 [U-Boot-Users] PPC405GP - uboot - can't get past stackloop Wolfgang Denk
2003-01-20 20:12 ` [U-Boot-Users] relocate code Jerry Walden
2003-01-20 21:23   ` Wolfgang Denk
2004-10-04  6:26 [U-Boot-Users] Relocate code raju rediff
2004-10-04  6:52 Holger L. Bille

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3E164AC7.1050505@sohu.com \
    --to=sepherosa@sohu.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox