windows-nt/Source/XPSP1/NT/base/ntdll/alpha/ldrthunk.s
2020-09-26 16:20:57 +08:00

96 lines
1.7 KiB
ArmAsm
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// TITLE("LdrInitializeThunk")
//++
//
// Copyright (c) 1989 Microsoft Corporation
// Copyright (c) 1992 Digital Equipment Corporation
//
// Module Name:
//
// ldrthunk.s
//
// Abstract:
//
// This module implements the thunk for the LdrpInitialize APC routine.
//
// Author:
//
// Steven R. Wood (stevewo) 27-Apr-1990
//
// Environment:
//
// Any mode.
//
// Revision History:
//
// Thomas Van Baak (tvb) 18-May-1992
//
// Adapted for Alpha AXP.
//
//--
#include "ksalpha.h"
//++
//
// VOID
// LdrInitializeThunk (
// IN PVOID NormalContext,
// IN PVOID SystemArgument1,
// IN PVOID SystemArgument2
// )
//
// Routine Description:
//
// This function computes a pointer to the context record on the stack
// and jumps to the LdrpInitialize function with that pointer as its
// parameter.
//
// Arguments:
//
// NormalContext (a0) - User Mode APC context parameter (ignored).
//
// SystemArgument1 (a1) - User Mode APC system argument 1 (ignored).
//
// SystemArgument2 (a2) - User Mode APC system argument 2 (ignored).
//
// Return Value:
//
// None.
//
//--
LEAF_ENTRY(LdrInitializeThunk)
mov sp, a0 // get address of context record
br zero, LdrpInitialize // jump to LdrpInitialize
.end LdrInitializeThunk
//++
//
// VOID
// LdrpSetGp(
// IN ULONG GpValue
// )
//
// Routine Description:
//
// This function sets the value of the Gp register.
//
// Arguments:
//
// GpValue (a0) - Supplies the value for Gp.
//
// Return Value:
//
// None.
//
//--
LEAF_ENTRY(LdrpSetGp)
mov a0, gp // set global pointer register
ret zero, (ra) // return
.end LdrpSetGp