blob: 34c7f1d83867a7b4bc5a1753fa4713d2f8d5c255 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
//===---------------------------------------------------------------------===//
Vector instructions support.
ShuffleVector
ExtractElement
InsertElement
//===---------------------------------------------------------------------===//
Add "OpaqueType" type.
//===---------------------------------------------------------------------===//
Variable argument functions support, "VAArg" instruction and some intrinsics.
CLI instruction "arglist" can get argument list descriptor for current function
that can be passed to other functions.
va_arg = Function "System.ArgIterator::GetNextArg()"
va_list = Class "System.ArgIterator"
va_start = Instruction "arglist"
va_end = Do nothing
//===---------------------------------------------------------------------===//
If possible get used types inside of "MSILWriter" class, do not pass trougth
"MSILModule" class.
getAnalysis<FindUsedTypes>().getTypes()
//===---------------------------------------------------------------------===//
"switch" instruction emulation with CLI "switch" instruction.
//===---------------------------------------------------------------------===//
Write linker for external function, because function export need to know
dynamic library where function located.
.method static hidebysig pinvokeimpl("msvcrt.dll" cdecl)
void free(void*) preservesig {}
//===---------------------------------------------------------------------===//
DLLImport'ed variables support with the help of win32 envoronment.
"LoadLibrary" - to load dynamic library into address space.
"GetProcAddress" - to recive variable address by name.
|