Subversion Repositories Kolibri OS

Rev

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

Rev Author Line No. Line
2665 dunkaist 1
 
2
3
 
4
 
3010 dunkaist 5
6
 
7
    object format between the 32-bit or 64-bit size.
8
9
 
10
 
11
12
 
13
    of some string instructions ("cmps", "lods", "movs" and "outs") is
14
    used in long mode. Now it is consistent with optimizations done with
15
    all the other instructions.
16
17
 
18
 
2665 dunkaist 19
20
 
3010 dunkaist 21
    address expressions to cause an error prematurely during the
2665 dunkaist 22
    parsing stage.
23
24
 
25
 
26
27
 
28
    FMA4, XOP, MOVBE, BMI, TBM, INVPCID, HLE and RTM instruction sets.
29
30
 
31
32
 
33
    to be calculated by preprocessor in its arguments.
34
35
 
3010 dunkaist 36
2665 dunkaist 37
 
38
39
 
40
    "format ELF executable" setting.
41
42
 
43
    special segments in ELF executables.
44
45
 
46
    generated with "qword" keyword inside square brackets.
47
48
 
49
50
 
51
    In such case it contains only the preprocessed source that can be extracted
52
    with PREPSRC tool. If error occured during preprocessing, only the source up
53
    to the point of error is provided.
54
55
 
56
57
 
58
    state from the final assembly pass.
59
60
 
61
62
 
63
    context of formatter directives, and thus are no longer disallowed as
64
    labels.
65
66
 
67
    symbol followed by value after the argument name in definition.
68
69
 
70
    to test whether two values differ only by a constant and not relocatable
71
    amount.
72
73
 
74
    calculations in signed and unsigned ranges in full 64-bit. This fixes
75
    a number of issues - the overflow will now be correctly detected for
76
    64-bit values in cases, where previous versions could not distinguish
77
    whether it was an overflow or not. The effect of these corrections is
78
    that "dq" directive will now behave consistently with behavior of the
79
    data directives for smaller sizes, and the same applies to all the
80
    places where "qword" size for value is used.
81
82
 
83
 
84
85
 
86
87
 
88
89
 
90
    64-bit variants of respective instructions.
91
92
 
93
    mnemonics to allow choosing between 16-bit and 32-bit variants of
94
    structures used by the "fstenv", "fsave" and "frstor" instructions.
95
96
 
97
98
 
99
    added "static" keyword for the "public" directive.
100
101
 
102
103
 
104
    should be used, depending on whether the fixups directory is placed
105
    somewhere into executable by programer, or not. This makes possible the
106
    more flexible use of the addressing symbols in case of PE executable fixed
107
    at some position.
108
109
 
110
    64-bit object formats and PE executable. This makes some specific
111
    instructions compilable, but it also forces linker to put such
112
    generated code into the low 2 gigabytes of addressing space.
113
114
 
115
116
 
117
    The symbol escaping now has always the higher priority than symbol conversion,
118
    and both have higher precedence than concatenation.
119
120
 
121
122
 
123
    placed at the end of the "format" directive line.
124
125
 
126
    is no longer allowed.
127
128
 
129
    to help improve long numbers readability.
130
131
 
132
    various kinds of information from it.
133
134
 
135
136
 
137
 
138
139
 
140
    the same kind as "equ" directive, however there's an important difference
141
    that "define" doesn't process symbolic constants in the value before
142
    assigning it. For example:
143
144
 
145
        a equ a+a
146
147
 
148
        define b b+b
149
150
 
151
    value "b+b". This directive may be useful in some advanced
152
    macroinstructions.
153
154
 
155
    for slightly better performance and lesser memory usage by assembler.
156
    The logical values defined with "eq", "eqtype" and "in" operators are now
157
    evaluated by the parser and if they are enough to determine the condition,
158
    the whole block is processed accordingly. Thus this block:
159
160
 
161
                nop
162
        end if
163
164
 
165
    that the condition is true, even though one of the logical values makes no
166
    sense - but since this is none of the "eq", "eqtype" and "in" expressions,
167
    the parser doesn't investigate.
168
169
 
170
    needs to determine the condition. So this block:
171
172
 
173
174
 
175
176
 
177
    versions. This is because after checking that "defined alpha" is false
178
    condition it doesn't need to know the second logical value to determine the
179
    value of conjunction.
180
181
 
182
    obsolete and no longer correct - use "jmp short" instead.
183
184
 
185
    displacement - now it applies to the size of target address.
186
187
 
188
    unless you force using the 16-bit immediate with "word" operator.
189
190
 
191
192
 
193
194
 
195
    when making position-independent code for shared libraries. For any label
196
    you can get its offset relative to GOT by preceding it with "rva" operator
197
    (the same keyword as for PE format is used, to avoid adding a new one,
198
    while this one has very similar meaning).
199
200
 
201
    to make the distinction between the run-time segments and linkable
202
    sections. If you had a "section" directive in your ELF executables and they
203
    no longer assemble, replace it with "segment".
204
205
 
206
    even when there are no fixups to be put there (in such case it creates the
207
    directory with one empty block).
208
209
 
210
    possibility of making extensive symbol dumps.
211
212
 
213
    prioritized constant.
214
215
 
216
    string it simply does nothing. Thus the sequence of ` operators applied to
217
    one symbol work the same as if there was just one. In similar manner, the
218
    sequence of # operators now works as if it was a single one - using such a
219
    sequence instead of escaping, which was kept for some backward
220
    compatibility, is now deprecated.
221
222
 
223
    incorrectly interpreted as data definition).
224
225
 
226
227
 
228
 
229
230
 
231
    setting).
232
233
 
234
235
 
236
237
 
238
239
 
240
    must always fit in the range of signed 64 integer now.
241
242
 
243
    as a second addressing register - fixed.
244
245
 
246
247
 
248
    wrongly signaled - fixed.
249
250
 
251
252
 
253
 
254
255
 
256
257
 
258
    (with "format MS64 COFF" setting).
259
260
 
261
262
 
263
264
 
265
266
 
267
    label.
268
269
 
270
    than one resource of the same string name, the separate resource
271
    directories were created with the same names - fixed.
272
273
 
274
275
 
276
277
 
278
    macros to be processed the wrong way.
279