[Bug 38780] New: AArch64 platforms: register X18 must remain reserved for Wine to run 64-bit ARM Windows applications (Distro aarch64 toolchains need '-ffixed-x18' default, loader/libc/userland)

wine-bugs at winehq.org wine-bugs at winehq.org
Thu Jun 18 14:16:29 CDT 2015


https://bugs.winehq.org/show_bug.cgi?id=38780

            Bug ID: 38780
           Summary: AArch64 platforms: register X18 must remain reserved
                    for Wine to run 64-bit ARM Windows applications
                    (Distro aarch64 toolchains need '-ffixed-x18' default,
                    loader/libc/userland)
           Product: Wine
           Version: 1.7.45
          Hardware: aarch64
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: -unknown
          Assignee: wine-bugs at winehq.org
          Reporter: focht at gmx.net
      Distribution: ---

Hello folks,

split off from bug 38719 ("64-bit ARM Windows applications from Windows SDK for
Windows 10 crash when accessing TEB/PEB members (AArch64 platform specific
register X18 must be reserved for TEB)")

Resolution is 'upstream' here, the Wine part is bug 38719

http://infocenter.arm.com/help/topic/com.arm.doc.ihi0055b/IHI0055B_aapcs64.pdf

Chapter 5 "THE BASE PROCEDURE CALL STANDARD"

--- quote ---
The role of register r18 is platform specific. 
If a platform ABI has need of a dedicated general purpose register to carry
interprocedural state (for example, the thread context) then it should use this
register for that purpose. If the platform ABI has no such requirements, then
it should use r18 as an additional temporary register.
The platform ABI specification must document the usage for this register.

Note

Software developers creating platform independent code are advised to avoid
using r18 if at all possible. Most compilers provide a mechanism to prevent
specific registers from being used for general allocation; portable hand-coded
assembler should avoid it entirely.  It should not be assumed that treating the 
register as callee saved will be sufficient to satisfy the requirements of the
platform. Virtualization code must, of course, treat the register as they would
any other resource provided to the virtual machine.
--- quote ---

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list