Lines Matching refs:bit
52 ; Otherwise do a normal bcopy_phys. This routine is used because some 32-bit processors
66 ; Note that the address parameters are long longs. We will transform these to 64-bit
67 ; values. Note that on 32-bit architectures that this will ignore the high half of the
68 ; passed in value. This should be ok since we can not have any bigger than 32 bit addresses
71 ; Note also that this routine is used only on 32-bit machines. If you're contemplating use
72 ; on a 64-bit processor, use the physical memory window instead; please refer to copypv()
93 ; to bcopy_physvir() on 32-bit machines, and will result in a panic.
145 ; This routine is used on 32 and 64-bit machines.
147 ; Note that the address parameters are long longs. We will transform these to 64-bit
148 ; values. Note that on 32-bit architectures that this will ignore the high half of the
149 ; passed in value. This should be ok since we can not have any bigger than 32 bit addresses
156 ; NOTE: when called, translation must be on, and we must be in 32-bit mode.
179 bt++ pf64Bitb,bcopy_phys64 ; skip if 64-bit (only they take hint)
181 ; 32-bit CPUs
198 ; 64-bit: turn DR off and SF on.
209 mtmsrd r9 ; turn 64-bit addressing on, data translation off
220 mtmsrd r9 ; turn 64-bit mode off, translation back on
235 sldi r11,r0,31-MSR_EE_BIT ; Get a mask for the EE bit
236 sldi r0,r0,32+8 ; Get the right bit to turn off caching
237 andc r9,r9,r11 ; Turn off EE bit
240 or r2,r2,r0 ; Set bit to make real accesses cache-inhibited
255 sldi r0,r0,32+8 ; Get the right bit to turn off caching
257 andc r2,r2,r0 ; Clear bit to make real accesses cache-inhibited
272 ; reverse vs normal moves isn't quite correct in 64-bit mode; in rare cases we will move in
305 ; - on 32-bit processors (32-byte cache line)
306 ; - on 64-bit processors running in 32-bit mode (128-byte cache line)
307 ; - on 64-bit processors running in 64-bit mode (128-byte cache line)
320 bne++ copyit64 ; handle 64-bit processor (patched to NOP if 32-bit processor)
321 bne+ copyit32 ; handle 32-bit processor
328 ; Furthermore, we must avoid all unaligned accesses on 64-bit machines, since they take
330 ; Like bcopy(), bcopy_nc() can be called both in 32- and 64-bit mode.
343 bne++ copyit64 ; handle 64-bit processor (patched to NOP if 32-bit processor)
344 bne+ copyit32 ; handle 32-bit processor
351 ; memcpy() and memmove() are only called in 32-bit mode, albeit on both 32- and 64-bit processors.
352 ; However, they would work correctly if called in 64-bit mode.
368 bne++ copyit64 ; handle 64-bit processor (patched to NOP if 32-bit processor)
372 ; Here to copy on 32-bit processors.
396 ; Forward moves on 32-bit machines, also word aligned uncached ops on 64-bit machines.
398 ; word aligned. We depend on this in the uncached case on 64-bit processors.
406 forward32bit: ; enter from 64-bit CPUs with word aligned uncached operands
484 dcbt r6,r0 ; Touch ahead a bit
548 ; Reverse moves on 32-bit machines, also reverse word aligned uncached moves on 64-bit machines.
550 ; word aligned. We depend on this in the uncached case on 64-bit processors.
558 reverse32bit: ; here from 64-bit code with word aligned uncached operands
704 // Here on 64-bit processors, which have a 128-byte cache line. This can be
705 // called either in 32 or 64-bit mode, which makes the test for reverse moves
710 // r4 = destination (32 or 64-bit ptr)
712 // r6 = source (32 or 64-bit ptr)
718 rlwinm r7,r5,0,0,31 // truncate length to 32-bit, in case we're running in 64-bit mode
725 addze. r0,r0 // set cr0 on carry bit (beq if reverse move required)
874 // exceptions on uncached memory on 64-bit processors. This may mean we copy long operands