You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
891 B
38 lines
891 B
#ifndef __VIRTUALIZER_H
|
|
#define __VIRTUALIZER_H
|
|
|
|
#include "Code.h"
|
|
#include "VmCode.h"
|
|
#include "NativeCode.h"
|
|
|
|
|
|
/*
|
|
* Structure:
|
|
*
|
|
* Instructions:
|
|
* - Two byte opcode
|
|
* -
|
|
*
|
|
*
|
|
* LOC register(Frame pointer):
|
|
* - A register for which all local variables are addressed from
|
|
* - Specific instructions for quick access of stuff around this ptr
|
|
* - Example Frame:
|
|
* - [Previous function variables
|
|
* - [Return Address
|
|
* - [Previous Functions LOC
|
|
* - LOC->[Empty Stack Space
|
|
*
|
|
*
|
|
* -VmEnter will essentially "call into" the vm and will be created using a function to rearrange and push arguments based on the arguments passed to said function.
|
|
*/
|
|
|
|
|
|
|
|
BOOL ViCanHandleInst(PNATIVE_CODE_LINK Link);
|
|
BOOL ViValidateNativeCodeBlock(PNATIVE_CODE_BLOCK Block);
|
|
|
|
BOOL VmEmitEnter(ULONG ArgumentCount, PNATIVE_CODE_BLOCK Block);
|
|
BOOL VmEmitExit(ULONG ArgumentCount, PNATIVE_CODE_BLOCK Block);
|
|
|
|
#endif |