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.
>
>
>
>
next prev parent 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