Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
955664c8
Commit
955664c8
authored
Nov 13, 2023
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winebuild: Add a helper to build an ARM64EC function name.
parent
7b216b69
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
19 additions
and
4 deletions
+19
-4
build.h
tools/winebuild/build.h
+1
-0
import.c
tools/winebuild/import.c
+3
-3
utils.c
tools/winebuild/utils.c
+15
-1
No files found.
tools/winebuild/build.h
View file @
955664c8
...
...
@@ -287,6 +287,7 @@ extern int sort_func_list( ORDDEF **list, int count, int (*compare)(const void *
extern
unsigned
int
get_page_size
(
void
);
extern
unsigned
int
get_args_size
(
const
ORDDEF
*
odp
);
extern
const
char
*
asm_name
(
const
char
*
func
);
extern
const
char
*
arm64_name
(
const
char
*
func
);
extern
const
char
*
asm_globl
(
const
char
*
func
);
extern
const
char
*
get_asm_ptr_keyword
(
void
);
extern
const
char
*
get_asm_string_keyword
(
void
);
...
...
tools/winebuild/import.c
View file @
955664c8
...
...
@@ -1347,7 +1347,7 @@ void output_stubs( DLLSPEC *spec )
break
;
case
CPU_ARM64
:
case
CPU_ARM64EC
:
output_seh
(
".seh_proc %s"
,
a
sm
_name
(
name
)
);
output_seh
(
".seh_proc %s"
,
a
rm64
_name
(
name
)
);
output_seh
(
".seh_endprologue"
);
output
(
"
\t
adrp x0, %s
\n
"
,
arm64_page
(
".L__wine_spec_file_name"
)
);
output
(
"
\t
add x0, x0, #%s
\n
"
,
arm64_pageoff
(
".L__wine_spec_file_name"
)
);
...
...
@@ -1360,7 +1360,7 @@ void output_stubs( DLLSPEC *spec )
}
else
output
(
"
\t
mov x1, %u
\n
"
,
odp
->
ordinal
);
output
(
"
\t
b %s
\n
"
,
a
sm
_name
(
"__wine_spec_unimplemented_stub"
)
);
output
(
"
\t
b %s
\n
"
,
a
rm64
_name
(
"__wine_spec_unimplemented_stub"
)
);
output_seh
(
".seh_endproc"
);
break
;
}
...
...
@@ -1476,7 +1476,7 @@ void output_syscalls( DLLSPEC *spec )
break
;
case
CPU_ARM64
:
case
CPU_ARM64EC
:
output_seh
(
".seh_proc %s"
,
a
sm
_name
(
name
)
);
output_seh
(
".seh_proc %s"
,
a
rm64
_name
(
name
)
);
output_seh
(
".seh_endprologue"
);
output
(
"
\t
mov x8, #%u
\n
"
,
id
);
output
(
"
\t
mov x9, x30
\n
"
);
...
...
tools/winebuild/utils.c
View file @
955664c8
...
...
@@ -828,10 +828,24 @@ const char *asm_name( const char *sym )
}
}
/* return the assembly name for an ARM64/ARM64EC function */
const
char
*
arm64_name
(
const
char
*
sym
)
{
switch
(
target
.
platform
)
{
case
PLATFORM_MINGW
:
case
PLATFORM_WINDOWS
:
if
(
target
.
cpu
==
CPU_ARM64EC
)
return
strmake
(
"
\"
#%s
\"
"
,
sym
);
/* fall through */
default:
return
asm_name
(
sym
);
}
}
/* return an assembly function declaration for a C function name */
void
output_function_header
(
const
char
*
func
,
int
global
)
{
const
char
*
name
=
a
sm
_name
(
func
);
const
char
*
name
=
a
rm64
_name
(
func
);
output
(
"
\t
.text
\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