Subversion Repositories Kolibri OS

Rev

Rev 1053 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1053 heavyiron 1
 
2
3
 
4
 
1115 heavyiron 5
1053 heavyiron 6
 
1115 heavyiron 7
1053 heavyiron 8
 
1115 heavyiron 9
1053 heavyiron 10
 
1115 heavyiron 11
    64-bit variants of respective instructions.
12
1053 heavyiron 13
 
1115 heavyiron 14
    mnemonics to allow choosing between 16-bit and 32-bit variants of
15
    structures used by the "fstenv", "fsave" and "frstor" instructions.
16
1053 heavyiron 17
 
1115 heavyiron 18
1053 heavyiron 19
 
1115 heavyiron 20
    added "static" keyword for the "public" directive.
21
1053 heavyiron 22
 
1115 heavyiron 23
1053 heavyiron 24
 
1115 heavyiron 25
    should be used, depending on whether the fixups directory is placed
26
    somewhere into executable by programer, or not. This makes possible the
27
    more flexible use of the addressing symbols in case of PE executable fixed
28
    at some position.
29
1053 heavyiron 30
 
1115 heavyiron 31
    64-bit object formats and PE executable. This makes some specific
32
    instructions compilable, but it also forces linker to put such
33
    generated code into the low 2 gigabytes of addressing space.
34
1053 heavyiron 35
 
1115 heavyiron 36
1053 heavyiron 37
 
1115 heavyiron 38
    The symbol escaping now has always the higher priority than symbol conversion,
39
    and both have higher precedence than concatenation.
40
1053 heavyiron 41
 
42
43
 
44
    placed at the end of the "format" directive line.
45
46
 
1115 heavyiron 47
    is no longer allowed.
48
1053 heavyiron 49
 
1115 heavyiron 50
    to help improve long numbers readability.
51
1053 heavyiron 52
 
1115 heavyiron 53
    various kinds of information from it.
54
1053 heavyiron 55
 
1115 heavyiron 56
1053 heavyiron 57
 
58
 
59
60
 
1115 heavyiron 61
    the same kind as "equ" directive, however there's an important difference
62
    that "define" doesn't process symbolic constants in the value before
63
    assigning it. For example:
1053 heavyiron 64
65
 
1115 heavyiron 66
	a equ a+a
67
1053 heavyiron 68
 
1115 heavyiron 69
	define b b+b
70
1053 heavyiron 71
 
72
    value "b+b". This directive may be useful in some advanced
73
    macroinstructions.
74
75
 
76
    for slightly better performance and lesser memory usage by assembler.
77
    The logical values defined with "eq", "eqtype" and "in" operators are now
78
    evaluated by the parser and if they are enough to determine the condition,
79
    the whole block is processed accordingly. Thus this block:
80
81
 
1115 heavyiron 82
		nop
83
	end if
84
1053 heavyiron 85
 
1115 heavyiron 86
    that the condition is true, even though one of the logical values makes no
1053 heavyiron 87
    sense - but since this is none of the "eq", "eqtype" and "in" expressions,
88
    the parser doesn't investigate.
89
90
 
91
    needs to determine the condition. So this block:
92
93
 
1115 heavyiron 94
1053 heavyiron 95
 
1115 heavyiron 96
1053 heavyiron 97
 
98
    versions. This is because after checking that "defined alpha" is false
99
    condition it doesn't need to know the second logical value to determine the
100
    value of conjunction.
101
102
 
103
    obsolete and no longer correct - use "jmp short" instead.
104
105
 
106
    displacement - now it applies to the size of target address.
107
108
 
1115 heavyiron 109
    unless you force using the 16-bit immediate with "word" operator.
1053 heavyiron 110
111
 
112
113
 
114
115
 
116
    when making position-independent code for shared libraries. For any label
117
    you can get its offset relative to GOT by preceding it with "rva" operator
118
    (the same keyword as for PE format is used, to avoid adding a new one,
119
    while this one has very similar meaning).
120
121
 
122
    to make the distinction between the run-time segments and linkable
123
    sections. If you had a "section" directive in your ELF executables and they
124
    no longer assemble, replace it with "segment".
125
126
 
127
    even when there are no fixups to be put there (in such case it creates the
128
    directory with one empty block).
129
130
 
131
    possibility of making extensive symbol dumps.
132
133
 
1115 heavyiron 134
    prioritized constant.
1053 heavyiron 135
136
 
137
    string it simply does nothing. Thus the sequence of ` operators applied to
138
    one symbol work the same as if there was just one. In similar manner, the
139
    sequence of # operators now works as if it was a single one - using such a
140
    sequence instead of escaping, which was kept for some backward
141
    compatibility, is now deprecated.
142
143
 
144
    incorrectly interpreted as data definition).
145
146
 
147
148
 
149
 
150
151
 
152
    setting).
153
154
 
155
156
 
157
158
 
159
160
 
161
    must always fit in the range of signed 64 integer now.
162
163
 
164
    as a second addressing register - fixed.
165
166
 
167
168
 
169
    wrongly signaled - fixed.
170
171
 
172
173
 
174
 
175
176
 
177
178
 
179
    (with "format MS64 COFF" setting).
180
181
 
182
183
 
184
185
 
186
187
 
188
    label.
189
190
 
191
    than one resource of the same string name, the separate resource
192
    directories were created with the same names - fixed.
193
194
 
195
196
 
197
198
 
199
    macros to be processed the wrong way.
200