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
85f1fbdb
Commit
85f1fbdb
authored
Nov 04, 2019
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
server: Clarify naming of ARM64 floating-point registers.
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
0b2e65f5
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
17 additions
and
7 deletions
+17
-7
signal_arm64.c
dlls/ntdll/signal_arm64.c
+10
-2
server_protocol.h
include/wine/server_protocol.h
+1
-1
protocol.def
server/protocol.def
+1
-1
trace.c
server/trace.c
+5
-3
No files found.
dlls/ntdll/signal_arm64.c
View file @
85f1fbdb
...
...
@@ -369,7 +369,11 @@ NTSTATUS context_to_server( context_t *to, const CONTEXT *from )
if
(
flags
&
CONTEXT_FLOATING_POINT
)
{
to
->
flags
|=
SERVER_CTX_FLOATING_POINT
;
for
(
i
=
0
;
i
<
64
;
i
++
)
to
->
fp
.
arm64_regs
.
d
[
i
]
=
from
->
V
[
i
/
2
].
D
[
i
%
2
];
for
(
i
=
0
;
i
<
32
;
i
++
)
{
to
->
fp
.
arm64_regs
.
q
[
i
].
low
=
from
->
V
[
i
].
s
.
Low
;
to
->
fp
.
arm64_regs
.
q
[
i
].
high
=
from
->
V
[
i
].
s
.
High
;
}
to
->
fp
.
arm64_regs
.
fpcr
=
from
->
Fpcr
;
to
->
fp
.
arm64_regs
.
fpsr
=
from
->
Fpsr
;
}
...
...
@@ -414,7 +418,11 @@ NTSTATUS context_from_server( CONTEXT *to, const context_t *from )
if
(
from
->
flags
&
SERVER_CTX_FLOATING_POINT
)
{
to
->
ContextFlags
|=
CONTEXT_FLOATING_POINT
;
for
(
i
=
0
;
i
<
64
;
i
++
)
to
->
V
[
i
/
2
].
D
[
i
%
2
]
=
from
->
fp
.
arm64_regs
.
d
[
i
];
for
(
i
=
0
;
i
<
32
;
i
++
)
{
to
->
V
[
i
].
s
.
Low
=
from
->
fp
.
arm64_regs
.
q
[
i
].
low
;
to
->
V
[
i
].
s
.
High
=
from
->
fp
.
arm64_regs
.
q
[
i
].
high
;
}
to
->
Fpcr
=
from
->
fp
.
arm64_regs
.
fpcr
;
to
->
Fpsr
=
from
->
fp
.
arm64_regs
.
fpsr
;
}
...
...
include/wine/server_protocol.h
View file @
85f1fbdb
...
...
@@ -156,7 +156,7 @@ typedef struct
struct
{
struct
{
unsigned
__int64
low
,
high
;
}
fpregs
[
32
];
}
x86_64_regs
;
struct
{
double
fpr
[
32
],
fpscr
;
}
powerpc_regs
;
struct
{
unsigned
__int64
d
[
32
];
unsigned
int
fpscr
;
}
arm_regs
;
struct
{
unsigned
__int64
d
[
64
];
unsigned
int
fpcr
,
fpsr
;
}
arm64_regs
;
struct
{
struct
{
unsigned
__int64
low
,
high
;
}
q
[
32
];
unsigned
int
fpcr
,
fpsr
;
}
arm64_regs
;
}
fp
;
union
{
...
...
server/protocol.def
View file @
85f1fbdb
...
...
@@ -172,7 +172,7 @@ typedef struct
struct { struct { unsigned __int64 low, high; } fpregs[32]; } x86_64_regs;
struct { double fpr[32], fpscr; } powerpc_regs;
struct { unsigned __int64 d[32]; unsigned int fpscr; } arm_regs;
struct {
unsigned __int64 d[64
]; unsigned int fpcr, fpsr; } arm64_regs;
struct {
struct { unsigned __int64 low, high; } q[32
]; unsigned int fpcr, fpsr; } arm64_regs;
} fp; /* selected by SERVER_CTX_FLOATING_POINT */
union
{
...
...
server/trace.c
View file @
85f1fbdb
...
...
@@ -727,10 +727,11 @@ static void dump_varargs_context( const char *prefix, data_size_t size )
}
if
(
ctx
.
flags
&
SERVER_CTX_FLOATING_POINT
)
{
for
(
i
=
0
;
i
<
64
;
i
++
)
for
(
i
=
0
;
i
<
32
;
i
++
)
{
fprintf
(
stderr
,
",d%u="
,
i
);
dump_uint64
(
""
,
&
ctx
.
fp
.
arm64_regs
.
d
[
i
]
);
fprintf
(
stderr
,
",q%u="
,
i
);
dump_uint64
(
""
,
&
ctx
.
fp
.
arm64_regs
.
q
[
i
].
high
);
dump_uint64
(
""
,
&
ctx
.
fp
.
arm64_regs
.
q
[
i
].
low
);
}
fprintf
(
stderr
,
",fpcr=%08x,fpsr=%08x"
,
ctx
.
fp
.
arm64_regs
.
fpcr
,
ctx
.
fp
.
arm64_regs
.
fpsr
);
}
...
...
@@ -5602,6 +5603,7 @@ static const struct
{
"PIPE_CLOSING"
,
STATUS_PIPE_CLOSING
},
{
"PIPE_CONNECTED"
,
STATUS_PIPE_CONNECTED
},
{
"PIPE_DISCONNECTED"
,
STATUS_PIPE_DISCONNECTED
},
{
"PIPE_EMPTY"
,
STATUS_PIPE_EMPTY
},
{
"PIPE_LISTENING"
,
STATUS_PIPE_LISTENING
},
{
"PIPE_NOT_AVAILABLE"
,
STATUS_PIPE_NOT_AVAILABLE
},
{
"PRIVILEGE_NOT_HELD"
,
STATUS_PRIVILEGE_NOT_HELD
},
...
...
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