summaryrefslogtreecommitdiff
path: root/lib/Target/MSIL/README.TXT
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.