Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
F
FFmpeg
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
libremedia
Tethys
FFmpeg
Commits
71a04721
Commit
71a04721
authored
8 years ago
by
Janne Grunau
Browse files
Options
Downloads
Patches
Plain Diff
checkasm: arm: report the first clobbered register in checkasm_checked_call
parent
a8fce24b
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
tests/checkasm/arm/checkasm.S
+39
-25
39 additions, 25 deletions
tests/checkasm/arm/checkasm.S
with
39 additions
and
25 deletions
tests/checkasm/arm/checkasm.S
+
39
−
25
View file @
71a04721
...
@@ -33,8 +33,12 @@ const register_init, align=3
...
@@ -33,8 +33,12 @@ const register_init, align=3
.
quad
0x249214109d5d1c88
.
quad
0x249214109d5d1c88
endconst
endconst
const
error_message
const
error_message_fpscr
.
asciz
"failed to preserve register"
.
asciz
"failed to preserve register FPSCR"
const
error_message_gpr
.
asciz
"failed to preserve register r%d"
const
error_message_vfp
.
asciz
"failed to preserve register d%d"
endconst
endconst
@
max
number
of
args
used
by
any
asm
function
.
@
max
number
of
args
used
by
any
asm
function
.
...
@@ -79,39 +83,42 @@ function checkasm_checked_call_\variant, export=1
...
@@ -79,39 +83,42 @@ function checkasm_checked_call_\variant, export=1
push
{
r0
,
r1
}
push
{
r0
,
r1
}
movrel
r12
,
register_init
movrel
r12
,
register_init
mov
r3
,
#
0
.
ifc
\
variant
,
vfp
.
ifc
\
variant
,
vfp
.
macro
check_reg_vfp
,
dreg
,
inc
=
8
.
macro
check_reg_vfp
,
dreg
,
offset
ldrd
r0
,
r1
,
[
r12
],
#
\
inc
vldr
d0
,
[
r12
,
#
8
*
(
\
offset
)]
vmov
r2
,
lr
,
\
dreg
veor
d0
,
d0
,
\
dreg
eor
r0
,
r0
,
r2
vmov
r2
,
r3
,
d0
eor
r1
,
r1
,
lr
orrs
r2
,
r2
,
r3
orr
r3
,
r3
,
r0
bne
4
f
orr
r3
,
r3
,
r1
.
endm
.
endm
.
irp
n
,
8
,
9
,
10
,
11
,
12
,
13
,
14
.
irp
n
,
8
,
9
,
10
,
11
,
12
,
13
,
14
,
15
check_reg_vfp
d
\
n
@
keep
track
of
the
checked
double
/
SIMD
register
mov
r1
,
#
\
n
check_reg_vfp
d
\
n
,
\
n
-
8
.
endr
.
endr
check_reg_vfp
d15
,
-
56
.
purgem
check_reg_vfp
.
purgem
check_reg_vfp
fmrx
r0
,
FPSCR
fmrx
r0
,
FPSCR
ldr
r
1
,
[
sp
,
#
8
]
ldr
r
3
,
[
sp
,
#
8
]
eor
r0
,
r0
,
r
1
eor
r0
,
r0
,
r
3
@
Ignore
changes
in
the
topmost
5
bits
@
Ignore
changes
in
the
topmost
5
bits
lsl
r0
,
r0
,
#
5
lsl
s
r0
,
r0
,
#
5
orr
r3
,
r3
,
r0
bne
3
f
.
endif
.
endif
@
keep
track
of
the
checked
GPR
mov
r1
,
#
4
.
macro
check_reg
reg1
,
reg2
=
.
macro
check_reg
reg1
,
reg2
=
ldrd
r0
,
r1
,
[
r12
],
#
8
ldrd
r2
,
r3
,
[
r12
],
#
8
eor
r0
,
r0
,
\
reg1
eors
r2
,
r2
,
\
reg1
orrs
r3
,
r3
,
r0
bne
2
f
add
r1
,
r1
,
#
1
.
ifnb
\
reg2
.
ifnb
\
reg2
eor
r
1
,
r
1
,
\
reg2
eor
s
r
3
,
r
3
,
\
reg2
orrs
r3
,
r3
,
r1
bne
2
f
.
endif
.
endif
add
r1
,
r1
,
#
1
.
endm
.
endm
check_reg
r4
,
r5
check_reg
r4
,
r5
check_reg
r6
,
r7
check_reg
r6
,
r7
...
@@ -124,9 +131,16 @@ function checkasm_checked_call_\variant, export=1
...
@@ -124,9 +131,16 @@ function checkasm_checked_call_\variant, export=1
check_reg
r10
,
r11
check_reg
r10
,
r11
.
purgem
check_reg
.
purgem
check_reg
beq
0
f
b
0
f
4
:
movrel
r0
,
error_message
movrel
r0
,
error_message_vfp
b
1
f
3
:
movrel
r0
,
error_message_fpscr
b
1
f
2
:
movrel
r0
,
error_message_gpr
1
:
blx
X
(
checkasm_fail_func
)
blx
X
(
checkasm_fail_func
)
0
:
0
:
pop
{
r0
,
r1
}
pop
{
r0
,
r1
}
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment