Declare compiler intrinsics with proper symbol names
All checks were successful
Builds / ExectOS (amd64, debug) (push) Successful in -59m26s
Builds / ExectOS (amd64, release) (push) Successful in -59m27s
Builds / ExectOS (i686, release) (push) Successful in -59m28s
Builds / ExectOS (i686, debug) (push) Successful in -59m25s

This commit is contained in:
2026-04-26 23:10:42 +02:00
parent 119679c996
commit 534aaba27e
4 changed files with 51 additions and 10 deletions

View File

@@ -11,6 +11,8 @@
#include <xtos.hh>
#include XTOS_ARCH_HEADER(rtl, intrin.hh)
#include <rtl/atomic.hh>
#include <rtl/bitmap.hh>
#include <rtl/dispatch.hh>

View File

@@ -0,0 +1,17 @@
/**
* PROJECT: ExectOS
* COPYRIGHT: See COPYING.md in the top level directory
* FILE: xtoskrnl/includes/rtl/amd64/intrin.hh
* DESCRIPTION: Compiler intrinsic support routines
* DEVELOPERS: Aiken Harris <harraiken91@gmail.com>
*/
#ifndef __XTOSKRNL_RTL_AMD64_INTRIN_HH
#define __XTOSKRNL_RTL_AMD64_INTRIN_HH
#include <xtos.hh>
/* Forward declarations enforcing the XTAPI calling convention and preserving the raw unmangled symbol names */
#endif /* __XTOSKRNL_RTL_AMD64_INTRIN_HH */

View File

@@ -0,0 +1,23 @@
/**
* PROJECT: ExectOS
* COPYRIGHT: See COPYING.md in the top level directory
* FILE: xtoskrnl/includes/rtl/i686/intrin.hh
* DESCRIPTION: Compiler intrinsic support routines
* DEVELOPERS: Aiken Harris <harraiken91@gmail.com>
*/
#ifndef __XTOSKRNL_RTL_I686_INTRIN_HH
#define __XTOSKRNL_RTL_I686_INTRIN_HH
#include <xtos.hh>
/* Forward declarations enforcing the XTAPI calling convention and preserving the raw unmangled symbol names */
XTCLINK XTAPI LONGLONG _alldiv(IN LONGLONG Dividend, IN LONGLONG Divisor) XTSYMBOL("__alldiv");
XTCLINK XTAPI LONGLONG _alldvrm(IN LONGLONG Dividend, IN LONGLONG Divisor, OUT PLONGLONG Remainder) XTSYMBOL("__alldvrm");
XTCLINK XTAPI LONGLONG _allrem(IN LONGLONG Dividend, IN LONGLONG Divisor) XTSYMBOL("__allrem");
XTCLINK XTAPI ULONGLONG _aulldiv(IN ULONGLONG Dividend, IN ULONGLONG Divisor) XTSYMBOL("__aulldiv");
XTCLINK XTAPI ULONGLONG _aulldvrm(IN ULONGLONG Dividend, IN ULONGLONG Divisor, OUT PULONGLONG Remainder) XTSYMBOL("__aulldvrm");
XTCLINK XTAPI ULONGLONG _aullrem(IN ULONGLONG Dividend, IN ULONGLONG Divisor) XTSYMBOL("__aullrem");
#endif /* __XTOSKRNL_RTL_I686_INTRIN_HH */

View File

@@ -9,7 +9,6 @@
#include <xtos.hh>
/**
* Divides a 64-bit signed integer by a 64-bit signed integer.
*
@@ -24,7 +23,7 @@
* @since XT 1.0
*/
XTCLINK
XTCDECL
XTAPI
LONGLONG
_alldiv(IN LONGLONG Dividend,
IN LONGLONG Divisor)
@@ -50,7 +49,7 @@ _alldiv(IN LONGLONG Dividend,
* @since XT 1.0
*/
XTCLINK
XTCDECL
XTAPI
LONGLONG
_alldvrm(IN LONGLONG Dividend,
IN LONGLONG Divisor,
@@ -73,7 +72,7 @@ _alldvrm(IN LONGLONG Dividend,
* @since XT 1.0
*/
XTCLINK
XTCDECL
XTAPI
LONGLONG
_allrem(IN LONGLONG Dividend,
IN LONGLONG Divisor)
@@ -99,7 +98,7 @@ _allrem(IN LONGLONG Dividend,
* @since XT 1.0
*/
XTCLINK
XTCDECL
XTAPI
ULONGLONG
_aulldiv(IN ULONGLONG Dividend,
IN ULONGLONG Divisor)
@@ -125,11 +124,11 @@ _aulldiv(IN ULONGLONG Dividend,
* @since XT 1.0
*/
XTCLINK
XTCDECL
XTAPI
ULONGLONG
_aulldvrm(ULONGLONG Dividend,
ULONGLONG Divisor,
PULONGLONG Remainder)
_aulldvrm(IN ULONGLONG Dividend,
IN ULONGLONG Divisor,
OUT PULONGLONG Remainder)
{
/* Call the internal unsigned division routine to compute both quotient and remainder */
return RTL::Math::DivideUnsigned64(Dividend, Divisor, Remainder);
@@ -149,7 +148,7 @@ _aulldvrm(ULONGLONG Dividend,
* @since XT 1.0
*/
XTCLINK
XTCDECL
XTAPI
ULONGLONG
_aullrem(IN ULONGLONG Dividend,
IN ULONGLONG Divisor)