(c) 2022 YSI contibutors, licensed under MPL 1.1
CTRL_FoundLCTRL(scanner[])| Name | Info |
|---|---|
scanner |
[172] The codescan scanner that found a matching pattern. |
This function is called for every single LCTRL in the compiled AMX, after they are found by the code scanner. It checks if the found register load is for one of the new registers and replaces LCTRL with a special CALL.
AMX_GetPointerBinaryAMX_HEADER_CODAMX_TABLE_PUBLICSAsmContextAsmEmitCallAbsAsmEmitNopAsmInitPtrCodeScanGetMatchAddressCodeScanGetMatchHoleFIXES_formatFUNCTION_LENGTH__2_cells__4_cellstrue
63 cells
CTRL_FoundSCTRL(scanner[])| Name | Info |
|---|---|
scanner |
[172] The codescan scanner that found a matching pattern. |
This function is called for every single SCTRL in the compiled AMX, after they are found by the code scanner. It checks if the found register store is for one of the new registers and replaces SCTRL with a special CALL.
AMX_GetPointerBinaryAMX_HEADER_CODAMX_TABLE_PUBLICSAsmContextAsmEmitCallAbsAsmEmitNopAsmInitPtrCodeScanGetMatchAddressCodeScanGetMatchHoleFIXES_formatFUNCTION_LENGTH__2_cells__4_cellstrue
63 cells
CTRL_LCTRLStub()For every custom readable control register we define we need a special call stub that can convert from passing the parameters in registers to passing the parameters on the stack, without clobbering alt. A lot of the code is common to all of these stubs, and this function implements that common code. The final handler and return addresses are passed to this, and the parameters are extracted from pri and alt.
__2_cells__4_cells__9_cells__cip__jmp__param0_offset__param1_offset__param2_offset__param3_offset__return_offset
1 cells
CTRL_SCTRLStub()For every custom writable control register we define we need a special call stub that can convert from passing the parameters in registers to passing the parameters on the stack, without clobbering the registers. A lot of the code is common to all of these stubs, and this function implements that common code. The final handler and return addresses are passed to this, and the parameters are extracted from pri and alt.
__2_cells__4_cells__9_cells__cip__jmp__param0_offset__param1_offset__param2_offset__param3_offset__return_offset
1 cells
CTRL_WriteLCTRLStub(addr)| Name | Info |
|---|---|
addr |
The address to write to. |
For every custom readable control register we define we need a special call stub that can convert from passing the parameters in registers to passing the parameters on the stack, without clobbering alt. This generates those stubs.
AMX_HEADER_CODAsmContextAsmEmitCallAbsAsmEmitJumpAsmEmitProcAsmEmitPushCAsmEmitRetnAsmInitPtrDisasmContextDisasmGetOpcodeDisasmGetOperandRelocDisasmInitDisasmNextOP_CALLYSI_g_sLCTRLStubAddress__4_cells__8_cells
33 cells
CTRL_WriteSCTRLStub(addr)| Name | Info |
|---|---|
addr |
The address to write to. |
For every custom writable control register we define we need a special call stub that can convert from passing the parameters in registers to passing the parameters on the stack, without clobbering the registers. This generates those stubs.
AMX_HEADER_CODAsmContextAsmEmitCallAbsAsmEmitJumpAsmEmitProcAsmEmitPushCAsmEmitRetnAsmInitPtrDisasmContextDisasmContext_opcodeDisasmGetOperandRelocDisasmInitDisasmNextOP_CALLYSI_g_sSCTRLStubAddress__4_cells__8_cells
33 cells
Timers_OnCodeInit()Initialise the library.
AMX_GetPointerPrefixBinaryAMX_TABLE_PUBLICSCTRL_FoundLCTRLCTRL_FoundSCTRLCTRL_LCTRLStubCTRL_SCTRLStubCTRL_WriteLCTRLStubCTRL_WriteSCTRLStubCodeScanAddMatcherCodeScanInitCodeScanMatcherCodeScanMatcherInit_CodeScanMatcherPattern_CodeScanRunCodeScannerDisasmRelocO@A_O@V_OP_LCTRLOP_SCTRLYSI_g_sBaseRelocationYSI_g_sLCTRLStubAddressYSI_g_sSCTRLStubAddress__1_cellgCodeScanCallback_match
public
526 cells