Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
bbfc0d1d
Commit
bbfc0d1d
authored
Sep 18, 2010
by
André Hentschel
Committed by
Alexandre Julliard
Sep 20, 2010
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winebuild: Fix ARM support.
parent
c704758a
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
25 additions
and
9 deletions
+25
-9
import.c
tools/winebuild/import.c
+24
-6
spec32.c
tools/winebuild/spec32.c
+0
-2
utils.c
tools/winebuild/utils.c
+1
-1
No files found.
tools/winebuild/import.c
View file @
bbfc0d1d
...
...
@@ -676,8 +676,10 @@ static void output_import_thunk( const char *name, const char *table, int pos )
output
(
"
\t
jmp $31,($0)
\n
"
);
break
;
case
CPU_ARM
:
output
(
"
\t
mov r4, #%s
\n
"
,
table
);
output
(
"
\t
ldr r15, [r4, #%d]
\n
"
,
pos
);
output
(
"
\t
ldr IP,[PC,#0]
\n
"
);
output
(
"
\t
mov PC,PC
\n
"
);
output
(
"
\t
%s %s
\n
"
,
get_asm_ptr_keyword
(),
table
);
output
(
"
\t
ldr PC,[IP,#%d]
\n
"
,
pos
);
break
;
case
CPU_POWERPC
:
output
(
"
\t
mr %s, %s
\n
"
,
ppc_reg
(
0
),
ppc_reg
(
31
)
);
...
...
@@ -992,9 +994,15 @@ static void output_delayed_import_thunks( const DLLSPEC *spec )
output
(
"
\t
jmp $31,($0)
\n
"
);
break
;
case
CPU_ARM
:
output
(
"
\t
stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
\n
"
);
output
(
"
\t
blx %s
\n
"
,
asm_name
(
"__wine_spec_delay_load"
)
);
output
(
"
\t
ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
\n
"
);
output
(
"
\t
stmfd SP!, {r4-r10,FP,LR}
\n
"
);
output
(
"
\t
mov LR,PC
\n
"
);
output
(
"
\t
add LR,LR,#8
\n
"
);
output
(
"
\t
ldr PC,[PC,#-4]
\n
"
);
output
(
"
\t
%s %s
\n
"
,
get_asm_ptr_keyword
(),
asm_name
(
"__wine_spec_delay_load"
)
);
output
(
"
\t
mov IP,r0
\n
"
);
output
(
"
\t
ldmfd SP!, {r4-r10,FP,LR}
\n
"
);
output
(
"
\t
ldmfd SP!, {r0-r3}
\n
"
);
output
(
"
\t
bx IP
\n
"
);
break
;
case
CPU_POWERPC
:
if
(
target_platform
==
PLATFORM_APPLE
)
extra_stack_storage
=
56
;
...
...
@@ -1080,7 +1088,17 @@ static void output_delayed_import_thunks( const DLLSPEC *spec )
output
(
"
\t
jmp $31,%s
\n
"
,
asm_name
(
"__wine_delay_load_asm"
)
);
break
;
case
CPU_ARM
:
output
(
"
\t
b %s
\n
"
,
asm_name
(
"__wine_delay_load_asm"
)
);
output
(
"
\t
stmfd SP!, {r0-r3}
\n
"
);
output
(
"
\t
mov r0, #%d
\n
"
,
idx
);
output
(
"
\t
mov r1, #16384
\n
"
);
output
(
"
\t
mul r1, r0, r1
\n
"
);
output
(
"
\t
mov r0, r1
\n
"
);
output
(
"
\t
mov r1, #4
\n
"
);
output
(
"
\t
mul r1, r0, r1
\n
"
);
output
(
"
\t
mov r0, r1
\n
"
);
output
(
"
\t
add r0, #%d
\n
"
,
j
);
output
(
"
\t
ldr PC,[PC,#-4]
\n
"
);
output
(
"
\t
%s %s
\n
"
,
get_asm_ptr_keyword
(),
asm_name
(
"__wine_delay_load_asm"
)
);
break
;
case
CPU_POWERPC
:
switch
(
target_platform
)
...
...
tools/winebuild/spec32.c
View file @
bbfc0d1d
...
...
@@ -396,8 +396,6 @@ static void output_asm_constructor( const char *constructor )
output
(
"
\t
jsr $26,%s
\n
"
,
asm_name
(
constructor
)
);
break
;
case
CPU_ARM
:
output
(
"
\t
blx %s
\n
"
,
asm_name
(
constructor
)
);
break
;
case
CPU_POWERPC
:
output
(
"
\t
bl %s
\n
"
,
asm_name
(
constructor
)
);
break
;
...
...
tools/winebuild/utils.c
View file @
bbfc0d1d
...
...
@@ -840,11 +840,11 @@ unsigned int get_alignment(unsigned int align)
case
CPU_x86
:
case
CPU_x86_64
:
case
CPU_SPARC
:
case
CPU_ARM
:
if
(
target_platform
!=
PLATFORM_APPLE
)
return
align
;
/* fall through */
case
CPU_POWERPC
:
case
CPU_ALPHA
:
case
CPU_ARM
:
n
=
0
;
while
((
1u
<<
n
)
!=
align
)
n
++
;
return
n
;
...
...
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