ARM takes the use of command Pld mediumly beforehand

  • Time:
  • Click:24
  • source:NEWRGY CNC Machining
Kernel Version: 2.

6.

14CPU Architecture: ARM920T is analysing the Copy_from_user of ARM Linux recently, main function comes true by __arch_copy_from_user, this function definition is in Linux/arch/arm/lib/uaccess.

In S file, use collection comes true, partial source is as follows: [Plain] View Plain Copy Print? ENTRY(__arch_copy_from_user) Stmfd Sp! , {r0, r2, r4 - R7, lr} Cmp R2, #4 Blt.

Cfu_not_enough PLD(Pld [r1, #0] )// because from the back should use R0 and R1, all extraction undertaking that read beforehand, quicken the visit PLD(Pld [r0 of memory, #0] ) Ands Ip, r0, #3 Bne.

Cfu_dest_not_aligned.

Cfu_dest_aligned: Ands Ip, r1, #3 Bne.

Cfu_src_not_aligned.

.

.

Used in this paragraph of code read beforehand take instruction Pld(preload) , great PLD is grand, its are defined as follows (Linux/include/asm-arm/assembler.

H) : [Plain] View Plain Copy Print? #if __LINUX_ARM_ARCH__ >= 5 #define PLD(code.

.

.

) Code #else #define PLD(code.

.

.

) #endif Pld, read beforehand namely take an instruction, pld instruction is in only Armv5 above version is effective. Use Pld instruction can hint ARM beforehand good Cache Line fill. The Offset in Pld instruction has very much exquisite. It is the multiple of 64-byte commonly. Function: Cache is read beforehand take (PLD, preLoad) , the memory address that use Pld directive stores the system dictates from the back place is appointed a few times is read take, storage system can use this kind of method to quicken visit of the following memory. Format: Pld[Rn, {offset}] among them: Of Rn memory base location register. Offset is added in the deflection quantity on Rn. CNC Milling CNC Machining