-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathNOTES
More file actions
41 lines (32 loc) · 1.42 KB
/
NOTES
File metadata and controls
41 lines (32 loc) · 1.42 KB
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
List of LOWL constants:
- LCH LNM LICH: Basic type size information.
- NLREP SPREP TABREP QUTREP: Character-set independent information.
List of LOWL registers:
- A, the Numerical Register
- B, the Index Register
- C, the Character Register
List of LOWL system variables:
- FFPT, LFPT: Forward and Backward stack pointers.
- SRCPT, DSTPT: Source and Destination pointers for FMOVE and MOVE.
Errors in Lowl Documentation.
LOWL Map Manual.
Pg. 24: CON N-OF doesn't list CON -N-OF.
LOWL Supplement 3: ML/I
Pg. 7: MDOP has 2 exits: 1 for overflow and 2 for normal op.
MAJOR ISSUES IN MAPPING TO LLVM:
- LLVM doesn't have the concept of PC.
This means that we have to find articulate ways to implement
EXIT n and GOADD. While EXIT n could be solved by a double
pass system (which could actually get rid as well of the
table and string declaration systems) would be unhelpful
for GOADD, where LOWL doesn't give us any idea about the
maximum value contained in the variable.
- LLVM cannot let us use the stack, as it is function based.
This means that in order to implement subroutines (which
cannot be mplemented as LLVM function as some of them
might arbitrarily jump to basic block in the main function)
we need to implement an artificial stack.
The LLOWL manual help us by telling that "a dozen" --
unknown if literal or figurative -- stack entries would
be enough. It's still to test whether this applies to
ML/I or not.