/// <summary> /// Initializes a ReloadedFunction with its default parameters supplied in the constructor. /// </summary> /// <param name="sourceRegister">Registers in left to right parameter order passed to the custom function.</param> /// <param name="returnRegister">The register that the function returns its value in.</param> /// <param name="stackCleanup">Defines the stack cleanup rule for the function. See <see cref="StackCleanup"/> for more details.</param> /// <param name="reservedStackSpace">Allocates an extra amount of uninitialized (not zero-written) stack space for the function to use when calling. Required by some compiler optimized functions.</param> public FunctionAttribute(Register sourceRegister, Register returnRegister, StackCleanup stackCleanup, int reservedStackSpace = 0) { SourceRegisters = new[] { sourceRegister }; ReturnRegister = returnRegister; Cleanup = stackCleanup; ReservedStackSpace = reservedStackSpace; }
/// <summary> /// Initializes a ReloadedFunction with its default parameters supplied in the constructor. /// </summary> /// <param name="sourceRegisters">Specifies the registers in left to right parameter order to pass to the custom function to be called.</param> /// <param name="returnRegister">Specifies the register to return the value from the funtion in (mov eax, source). This is typically eax.</param> /// <param name="stackCleanup">Defines the stack cleanup rule for the function. See <see cref="StackCleanup"/> for more details.</param> /// <param name="reservedStackSpace">Allocates an extra amount of uninitialized (not zero-written) stack space for the function to use when calling. Required by some compiler optimized functions.</param> public ReloadedFunctionAttribute(Register[] sourceRegisters, Register returnRegister, StackCleanup stackCleanup, int reservedStackSpace = 0) { SourceRegisters = sourceRegisters; ReturnRegister = returnRegister; Cleanup = stackCleanup; ReservedStackSpace = reservedStackSpace; }
/// <summary> /// Initializes a ReloadedFunction with its default parameters supplied in the constructor. /// </summary> /// <param name="sourceRegisters">Registers in left to right parameter order passed to the custom function.</param> /// <param name="returnRegister">The register that the function returns its value in.</param> /// <param name="stackCleanup">Defines the stack cleanup rule for the function. See <see cref="StackCleanup"/> for more details.</param> /// <param name="calleeSavedRegisters">A list of registers that should be preserved by this function.</param> /// <param name="reservedStackSpace">Allocates an extra amount of uninitialized (not zero-written) stack space for the function to use when calling. Required by some compiler optimized functions.</param> public FunctionAttribute(Register[] sourceRegisters, Register returnRegister, StackCleanup stackCleanup, Register[] calleeSavedRegisters, int reservedStackSpace = 0) { SourceRegisters = sourceRegisters; ReturnRegister = returnRegister; Cleanup = stackCleanup; ReservedStackSpace = reservedStackSpace; CalleeSavedRegisters = calleeSavedRegisters; }
/// <inheritdoc /> public ManagedFunctionAttribute(Register sourceRegister, Register returnRegister, StackCleanup stackCleanup, Register[] calleeSavedRegisters, int reservedStackSpace) : base(sourceRegister, returnRegister, stackCleanup, calleeSavedRegisters, reservedStackSpace) { }
// BACKCOMPAT OVERLOAD -- DO NOT TOUCH /// <inheritdoc /> public ManagedFunctionAttribute(Register sourceRegister, Register returnRegister, StackCleanup stackCleanup, Register[] calleeSavedRegisters) : base(sourceRegister, returnRegister, stackCleanup, calleeSavedRegisters, 0) { }
// BACKCOMPAT OVERLOAD -- DO NOT TOUCH /// <inheritdoc /> public ManagedFunctionAttribute(Register sourceRegister, Register returnRegister, StackCleanup stackCleanup) : base(sourceRegister, returnRegister, stackCleanup, 0) { }
/// <summary> /// Initializes a ReloadedFunction with its default parameters supplied in the constructor. /// </summary> /// <param name="sourceRegisters">Specifies the registers in left to right parameter order to pass to the custom function to be called.</param> /// <param name="returnRegister">Specifies the register to return the value from the funtion in (mov eax, source). This is typically eax.</param> /// <param name="stackCleanup">Defines the stack cleanup rule for the function. See <see cref="StackCleanup"/> for more details.</param> public ReloadedFunctionAttribute(Register[] sourceRegisters, Register returnRegister, StackCleanup stackCleanup) { SourceRegisters = sourceRegisters; ReturnRegister = returnRegister; Cleanup = stackCleanup; }
/// <summary> /// Initializes a ReloadedFunction with its default parameters supplied in the constructor. /// </summary> /// <param name="sourceRegister">Specifies the registers for the parameter.</param> /// <param name="returnRegister">Specifies the register to return the value from the funtion in (mov eax, source). This is typically eax.</param> /// <param name="stackCleanup">Defines the stack cleanup rule for the function. See <see cref="StackCleanup"/> for more details.</param> public ReloadedFunctionAttribute(Register sourceRegister, Register returnRegister, StackCleanup stackCleanup) { SourceRegisters = new[] { sourceRegister }; ReturnRegister = returnRegister; Cleanup = stackCleanup; }