[haiku-bugs] [Haiku] #10800: UEFI: assembly files need to take calling convention into account

  • From: "jessicah" <trac@xxxxxxxxxxxx>
  • Date: Wed, 30 Apr 2014 00:31:09 -0000

#10800: UEFI: assembly files need to take calling convention into account
-------------------------------+------------------------------
 Reporter:  jessicah           |        Owner:  axeld
     Type:  bug                |       Status:  new
 Priority:  normal             |    Milestone:  R1
Component:  System/libroot.so  |      Version:  R1/Development
 Keywords:                     |   Blocked By:
 Blocking:                     |  Has a Patch:  0
 Platform:  All                |
-------------------------------+------------------------------
 For UEFI, the calling conventions on x86_64 follow the Microsoft calling
 conventions, which are not compatible with Haiku's calling conventions.

 As a result, existing functions written in assembly fail to run as
 expected. E.g. [http://cgit.haiku-
 os.org/haiku/tree/src/system/libroot/os/arch/x86_64/byteorder.S
 byteorder.S] currently returns 0 for all of the byteswap routines, which
 are used elsewhere, such as the definitions for the B_BENDIAN_xyz macros,
 and the ntohs function.

 References:
 
[http://en.wikipedia.org/wiki/X86_calling_conventions#x86-64_calling_conventions
 Wikipedia], [http://wiki.osdev.org/UEFI OSDev Wiki]

--
Ticket URL: <https://dev.haiku-os.org/ticket/10800>
Haiku <https://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: