Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Arm Trusted Firmware
Commits
a5a42310
Commit
a5a42310
authored
Sep 29, 2016
by
davidcunado-arm
Committed by
GitHub
Sep 29, 2016
Browse files
Merge pull request #719 from yatharth-arm/yk/AArch32_porting_memcpy
AArch32: Add `memcpy4` function in assembly
parents
ecc95909
9c1dceb1
Changes
2
Show whitespace changes
Inline
Side-by-side
include/common/aarch32/el3_common_macros.S
View file @
a5a42310
...
@@ -261,7 +261,7 @@
...
@@ -261,7 +261,7 @@
ldr
r0
,
=
__DATA_RAM_START__
ldr
r0
,
=
__DATA_RAM_START__
ldr
r1
,
=
__DATA_ROM_START__
ldr
r1
,
=
__DATA_ROM_START__
ldr
r2
,
=
__DATA_SIZE__
ldr
r2
,
=
__DATA_SIZE__
bl
memcpy
bl
memcpy
4
#endif
#endif
.
endif
/*
_init_c_runtime
*/
.
endif
/*
_init_c_runtime
*/
...
...
lib/aarch32/misc_helpers.S
View file @
a5a42310
...
@@ -34,6 +34,7 @@
...
@@ -34,6 +34,7 @@
.
globl
smc
.
globl
smc
.
globl
zeromem
.
globl
zeromem
.
globl
memcpy4
.
globl
disable_mmu_icache_secure
.
globl
disable_mmu_icache_secure
.
globl
disable_mmu_secure
.
globl
disable_mmu_secure
...
@@ -73,6 +74,40 @@ z_end:
...
@@ -73,6 +74,40 @@ z_end:
bx
lr
bx
lr
endfunc
zeromem
endfunc
zeromem
/*
--------------------------------------------------------------------------
*
void
memcpy4
(
void
*
dest
,
const
void
*
src
,
unsigned
int
length
)
*
*
Copy
length
bytes
from
memory
area
src
to
memory
area
dest
.
*
The
memory
areas
should
not
overlap
.
*
Destination
and
source
addresses
must
be
4
-
byte
aligned
.
*
--------------------------------------------------------------------------
*/
func
memcpy4
#if ASM_ASSERTION
orr
r3
,
r0
,
r1
tst
r3
,
#
0x3
ASM_ASSERT
(
eq
)
#endif
/*
copy
4
bytes
at
a
time
*/
m_loop4
:
cmp
r2
,
#
4
blt
m_loop1
ldr
r3
,
[
r1
],
#
4
str
r3
,
[
r0
],
#
4
sub
r2
,
r2
,
#
4
b
m_loop4
/*
copy
byte
per
byte
*/
m_loop1
:
cmp
r2
,#
0
beq
m_end
ldrb
r3
,
[
r1
],
#
1
strb
r3
,
[
r0
],
#
1
subs
r2
,
r2
,
#
1
bne
m_loop1
m_end
:
bx
lr
endfunc
memcpy4
/*
---------------------------------------------------------------------------
/*
---------------------------------------------------------------------------
*
Disable
the
MMU
in
Secure
State
*
Disable
the
MMU
in
Secure
State
*
---------------------------------------------------------------------------
*
---------------------------------------------------------------------------
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment