~noskcaj/ubuntu/saucy/sflphone/merge-1.2.3-2

« back to all changes in this revision

Viewing changes to daemon/libs/pjproject-2.0.1/third_party/gsm/add-test/add_test.dta

  • Committer: Jackson Doak
  • Date: 2013-07-10 21:04:46 UTC
  • mfrom: (20.1.3 sid)
  • Revision ID: noskcaj@ubuntu.com-20130710210446-y8f587vza807icr9
Properly merged from upstream.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
;
 
2
; Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
 
3
; Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
 
4
; details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
 
5
;
 
6
;
 
7
;       Lines starting with ' (in the first col) are echoed.
 
8
;       Lines starting with " (in the first col) are echoed to stderr.
 
9
;       Lines starting with ; or empty lines are ignored.
 
10
;
 
11
;       The part after (including) a trailing '=' is what you expect;
 
12
;       there will be output if the result is different.
 
13
;
 
14
;       -  and +  by itself mean MIN_WORD and MAX_WORD, respectively;
 
15
;       -- and ++ mean MIN_LONGWORD and MAX_LONGWORD.
 
16
;
 
17
 
 
18
'test the basic arithmetic operations used for the rpe-ltd filtering.
 
19
'
 
20
'add ================
 
21
'  basic
 
22
 
 
23
        add  0  0       =  0
 
24
        add  7  4       = 11
 
25
        add  4  6       = 10
 
26
        add  1  1       =  2
 
27
 
 
28
'  negative operands
 
29
 
 
30
        add  -7  4      = -3
 
31
        add   4 -6      = -2
 
32
        add  -1 -3      = -4
 
33
        add   7 -4      =  3
 
34
        add  -4  6      =  2
 
35
 
 
36
'  positive overflow
 
37
; (max-word = 32767)
 
38
        add  + 1        = +
 
39
        add  + +        = +
 
40
        add  -1 +       = 32766
 
41
        add  32766 2    = +
 
42
        add  1 32766    = +
 
43
 
 
44
'  underflow
 
45
; (min-word = 32768)
 
46
 
 
47
        add  - -1       = -
 
48
        add  - -        = -
 
49
        add  1 -        = -32767
 
50
        add  -32767 -2  = -
 
51
        add  -1 -32766  = -32767
 
52
        add  -32767 -1  = -
 
53
        add  - +        = -1
 
54
        add  + -        = -1
 
55
        add  0 -        = -
 
56
        add  0 +        = +
 
57
'
 
58
 
 
59
'L_add ================
 
60
'  basic
 
61
 
 
62
        L_add  0  0     =  0
 
63
        L_add  7  4     = 11
 
64
        L_add  4  6     = 10
 
65
        L_add  1  1     =  2
 
66
 
 
67
'  negative operands
 
68
 
 
69
        L_add  -7  4    = -3
 
70
        L_add   4 -6    = -2
 
71
        L_add  -1 -3    = -4
 
72
        L_add   7 -4    =  3
 
73
        L_add  -4  6    =  2
 
74
        L_add   0 -1    = -1
 
75
 
 
76
'  positive overflow
 
77
; (max-longword = 2147483647)
 
78
        L_add  ++ 1     = ++
 
79
        L_add  ++ ++    = ++
 
80
        L_add  -1 ++    = 2147483646
 
81
        L_add  2147483646 2 = ++
 
82
        L_add  1 2147483645 = 2147483646
 
83
 
 
84
'  underflow
 
85
; (min-longword = -2147483648)
 
86
 
 
87
        L_add  -- -1    = --
 
88
        L_add  -- --    = --
 
89
        L_add  1 --     = -2147483647
 
90
        L_add  -2147483647 -2   = --
 
91
        L_add  -1 -2147483646   = -2147483647
 
92
        L_add  -2147483647 -1   = --
 
93
        L_add  -- ++    = -1
 
94
        L_add  ++ --    = -1
 
95
        L_add  0 --     = --
 
96
        L_add  0 ++     = ++
 
97
'
 
98
 
 
99
'sub ================
 
100
'  basic
 
101
 
 
102
        sub  0  0       =  0
 
103
        sub  7  4       =  3
 
104
        sub  4  6       = -2
 
105
        sub  1  0       =  1
 
106
 
 
107
'  negative operands
 
108
 
 
109
        sub  -7  4      = -11
 
110
        sub   4 -6      =  10
 
111
        sub  -1 -3      =  2
 
112
        sub   7 -4      =  11
 
113
        sub  -4  6      = -10
 
114
 
 
115
'  positive overflow
 
116
; (max-word = 32767)
 
117
        sub  1 -        = +
 
118
        sub  + +        = 0
 
119
        sub  + 0        = +
 
120
        sub  + -1       = +
 
121
        sub  + 1        = 32766
 
122
        sub  1 +        = -32766
 
123
        sub  0 +        = -32767
 
124
 
 
125
'  underflow
 
126
; (min-word = 32768)
 
127
 
 
128
        sub  - -1       = -32767
 
129
        sub  - 1        = -
 
130
        sub  - -        = 0
 
131
        sub  - +        = -
 
132
        sub  + -        = +
 
133
        sub  1 -        = +
 
134
        sub  -1 -       = +
 
135
        sub  -32767 2   = -
 
136
        sub  0 -        = +
 
137
'
 
138
 
 
139
'L_sub ================
 
140
'  basic
 
141
 
 
142
        L_sub  0  0     =  0
 
143
        L_sub  7  4     =  3
 
144
        L_sub  4  6     = -2
 
145
        L_sub  1  0     =  1
 
146
 
 
147
'  negative operands
 
148
 
 
149
        L_sub  -7  4    = -11
 
150
        L_sub   4 -6    =  10
 
151
        L_sub  -1 -3    =  2
 
152
        L_sub   7 -4    =  11
 
153
        L_sub  -4  6    = -10
 
154
 
 
155
'  positive overflow
 
156
        L_sub  1 --     = ++
 
157
        L_sub  ++ ++    = 0
 
158
        L_sub  ++ 0     = ++
 
159
        L_sub  ++ -1    = ++
 
160
        L_sub  ++ 1     =  2147483646
 
161
        L_sub  1 ++     = -2147483646
 
162
        L_sub  0 ++     = -2147483647
 
163
 
 
164
'  underflow
 
165
 
 
166
        L_sub  -- -1    = -2147483647
 
167
        L_sub  -- 1     = --
 
168
        L_sub  -- --    = 0
 
169
        L_sub  -- ++    = --
 
170
        L_sub  + --     = ++
 
171
        L_sub  1 --     = ++
 
172
        L_sub  -1 --    = ++
 
173
        L_sub  -2147483647 2 = --
 
174
        L_sub  0 --     = ++
 
175
 
 
176
'
 
177
'abs ================
 
178
'  basic
 
179
 
 
180
        abs        0    =   0
 
181
        abs        2    =   2
 
182
        abs     -459    = 459
 
183
 
 
184
'  overflow
 
185
 
 
186
        abs      +      =   +
 
187
        abs      -      =   +
 
188
        abs     -32767  =   +
 
189
        abs      32766  = 32766
 
190
        abs     -32766  = 32766
 
191
 
 
192
'
 
193
'mult ================
 
194
;  actually, a * b >> 15
 
195
 
 
196
'  basic
 
197
        mult    0  0            = 0
 
198
        mult    0x100 0x100     = 2
 
199
        mult    4711 0x4000     = 2355
 
200
 
 
201
'  negative operands
 
202
        mult    -1  0           =  0
 
203
 
 
204
        mult    -0x100   0x100  = -2
 
205
        mult     0x100  -0x100  = -2
 
206
        mult    -0x100  -0x100  =  2
 
207
 
 
208
        mult    -4711   0x4000  = -2356
 
209
        mult     4711  -0x4000  = -2356
 
210
        mult    -4711  -0x4000  =  2355
 
211
 
 
212
'  overflow
 
213
        mult    + +      = 32766
 
214
        mult    + 0x4000 = 0x3fff
 
215
        mult    0x4000 + = 0x3fff
 
216
        mult    + 1      = 0
 
217
        mult    + 2      = 1
 
218
        mult    + 3      = 2
 
219
 
 
220
'  underflow
 
221
        mult    - -      = +
 
222
        mult    - +      = -32767
 
223
        mult    + -      = -32767
 
224
        mult    - 1      = -1
 
225
        mult    - 2      = -2
 
226
        mult    - 3      = -3
 
227
 
 
228
'
 
229
'mult_r ================
 
230
;  actually, (a * b + 16384) >> 15
 
231
 
 
232
'  basic
 
233
        mult_r  0  0            = 0
 
234
        mult_r  0x100 0x100     = 2
 
235
        mult_r  4711 0x4000     = 2356
 
236
 
 
237
'  negative operands
 
238
        mult_r  -1  0           =  0
 
239
 
 
240
        mult_r  -0x100   0x100  = -2
 
241
        mult_r   0x100  -0x100  = -2
 
242
        mult_r  -0x100  -0x100  =  2
 
243
 
 
244
        mult_r  -4711   0x4000  = -2355
 
245
        mult_r   4711  -0x4000  = -2355
 
246
        mult_r  -4711  -0x4000  =  2356
 
247
 
 
248
'  overflow
 
249
        mult_r  + +      = 32766
 
250
        mult_r  + 32766  = 32765
 
251
        mult_r  32766 +  = 32765
 
252
        mult_r  + 0x4000 = 0x4000
 
253
        mult_r  0x4000 + = 0x4000
 
254
        mult_r  + 0x4001 = 0x4000
 
255
        mult_r  0x4001 + = 0x4000
 
256
        mult_r  + 2      = 2
 
257
        mult_r  + 1      = 1
 
258
        mult_r  1 +      = 1
 
259
        mult_r  + 0      = 0
 
260
        mult_r  0 +      = 0
 
261
 
 
262
'  underflow
 
263
        mult_r  - -      = +
 
264
        mult_r  - +      = -32767
 
265
        mult_r  + -      = -32767
 
266
        mult_r  - 1      = -1
 
267
        mult_r  - 2      = -2
 
268
        mult_r  - 3      = -3
 
269
 
 
270
'
 
271
'L_mult ================
 
272
;  actually, (a * b) << 1
 
273
;  assert (a != MIN_WORD && b != MIN_WORD)
 
274
 
 
275
'  basic
 
276
        L_mult  0  0    = 0
 
277
        L_mult  2  3    = 12
 
278
        L_mult  4711 5  = 47110
 
279
 
 
280
'  negative operands
 
281
 
 
282
        L_mult  -2  3   = -12
 
283
        L_mult   2 -3   = -12
 
284
        L_mult  -2 -3   =  12
 
285
        L_mult -4711  5 = -47110
 
286
        L_mult  4711 -5 = -47110
 
287
        L_mult -4711 -5 =  47110
 
288
 
 
289
'  overflow
 
290
        L_mult  + +      = 2147352578
 
291
        L_mult  + -32767 = -2147352578
 
292
        L_mult  -32767 + = -2147352578
 
293
        L_mult  + 2      = 131068
 
294
        L_mult  + 1      = 65534
 
295
        L_mult  1 +      = 65534
 
296
        L_mult  + 0      = 0
 
297
        L_mult  0 +      = 0
 
298
 
 
299
'
 
300
'div ================
 
301
;  actually, (32767 * a) / b
 
302
;  assert (a > 0 && b >= a)
 
303
 
 
304
'  basic
 
305
        div     1 1             = +
 
306
        div     4711 4711       = +
 
307
        div     5 10            = 0x4000
 
308
        div     5 20            = 0x2000
 
309
        div     5 40            = 0x1000
 
310
 
 
311
'  overflow
 
312
        div     + +             = +
 
313
        div     0x4000 +        = 0x4000
 
314
        div     1 +             = 1
 
315
        div     1 2             = 0x4000
 
316
'
 
317
'norm ================
 
318
 
 
319
'  positive
 
320
        norm    1               = 30
 
321
        norm    2               = 29
 
322
        norm    3               = 29
 
323
        norm    4               = 28
 
324
        norm    5               = 28
 
325
; etc, etc...
 
326
        norm    0x08000000      = 3
 
327
        norm    0x10000000      = 2
 
328
        norm    0x20000000      = 1
 
329
        norm    0x20000001      = 1
 
330
        norm    0x3fffffff      = 1
 
331
        norm    0x40000000      = 0
 
332
        norm    0x40000001      = 0
 
333
        norm    0x4ffffffe      = 0
 
334
        norm    ++              = 0
 
335
 
 
336
'  negative
 
337
        norm    -1              = 31
 
338
        norm    -2              = 30
 
339
        norm    -3              = 29
 
340
        norm    -4              = 29
 
341
        norm    -5              = 28
 
342
; etc, etc...
 
343
        norm    0x4fffffff      = 0
 
344
        norm    --              = 0
 
345
'
 
346
'>> ================
 
347
 
 
348
'  basic
 
349
        >>      1 1             = 0
 
350
        >>      4 2             = 1
 
351
        >>      0x1100 5        = 0x88
 
352
 
 
353
'  negative operand
 
354
 
 
355
        >>      1 -1            = 2
 
356
        >>      1 -2            = 4
 
357
        >>      0x88 -5         = 0x1100
 
358
 
 
359
'  overflow
 
360
        >>      -1 4711         = -1
 
361
        >>      1  4711         = 0
 
362
        >>      -4711 4711      = -1
 
363
        >>      4711 4711       = 0
 
364
        >>      + 1             =  16383
 
365
        >>      - 1             = -16384
 
366
'
 
367
'L_>> ================
 
368
 
 
369
'  basic
 
370
        L_>>    1 1             = 0
 
371
        L_>>    4 2             = 1
 
372
        L_>>    0x1100 5        = 0x88
 
373
 
 
374
'  negative operand
 
375
 
 
376
        L_>>    1 -1            = 2
 
377
        L_>>    1 -2            = 4
 
378
        L_>>    0x88 -5         = 0x1100
 
379
 
 
380
'  overflow
 
381
        L_>>    -1 4711         = -1
 
382
        L_>>    1  4711         = 0
 
383
        L_>>    -4711 4711      = -1
 
384
        L_>>    4711 4711       = 0
 
385
        L_>>    ++ 1            =  1073741823
 
386
        L_>>    -- 1            = -1073741824
 
387
 
 
388
'
 
389
'<< ================
 
390
 
 
391
'  basic
 
392
        <<      1 1             = 2
 
393
        <<      4 2             = 16
 
394
        <<      0x0088 5        = 0x1100
 
395
 
 
396
'  negative operand
 
397
 
 
398
        <<      1 -1            = 0
 
399
        <<      4 -2            = 1
 
400
        <<      0x1100 -5       = 0x0088
 
401
 
 
402
'  overflow
 
403
        <<      -1 4711         = 0
 
404
        <<      1  4711         = 0
 
405
        <<      -4711 4711      = 0
 
406
        <<      4711 4711       = 0
 
407
        <<      4711 -4711      = 0
 
408
        <<      -4711 -4711     = -1
 
409
        <<      + 1             = 0xfffe
 
410
        <<      -1 1            = 0xfffe
 
411
        <<      - 1             = 0
 
412
'
 
413
'L_<< ================
 
414
 
 
415
'  basic
 
416
        L_<<    1 1             = 2
 
417
        L_<<    4 2             = 16
 
418
        L_<<    0x0088 5        = 0x1100
 
419
 
 
420
'  negative operand
 
421
 
 
422
        L_<<    1 -1            = 0
 
423
        L_<<    4 -2            = 1
 
424
        L_<<    0x1100 -5       = 0x0088
 
425
 
 
426
'  overflow
 
427
        L_<<    -1 4711         = 0
 
428
        L_<<    1  4711         = 0
 
429
        L_<<    -4711 4711      = 0
 
430
        L_<<    4711 4711       = 0
 
431
        L_<<    4711 -4711      = 0
 
432
        L_<<    -4711 -4711     = -1
 
433
        L_<<    ++ 1            = -2
 
434
        L_<<    -1 1            = -2
 
435
        L_<<    -- 1            = 0
 
436
 
 
437
'macros
 
438
'
 
439
'add ================
 
440
'  basic
 
441
 
 
442
        M_add  0  0     =  0
 
443
        M_add  7  4     = 11
 
444
        M_add  4  6     = 10
 
445
        M_add  1  1     =  2
 
446
 
 
447
'  negative operands
 
448
 
 
449
        M_add  -7  4    = -3
 
450
        M_add   4 -6    = -2
 
451
        M_add  -1 -3    = -4
 
452
        M_add   7 -4    =  3
 
453
        M_add  -4  6    =  2
 
454
 
 
455
'  positive overflow
 
456
; (max-word = 32767)
 
457
        M_add  + 1      = +
 
458
        M_add  + +      = +
 
459
        M_add  -1 +     = 32766
 
460
        M_add  32766 2  = +
 
461
        M_add  1 32766          = +
 
462
 
 
463
'  underflow
 
464
; (min-word = 32768)
 
465
 
 
466
        M_add  - -1     = -
 
467
        M_add  - -      = -
 
468
        M_add  1 -      = -32767
 
469
        M_add  -32767 -2 = -
 
470
        M_add  -1 -32766 = -32767
 
471
        M_add  -32767 -1 = -
 
472
        M_add  - +      = -1
 
473
        M_add  + -      = -1
 
474
        M_add  0 -      = -
 
475
        M_add  0 +      = +
 
476
'
 
477
 
 
478
'L_add ================
 
479
'  basic
 
480
 
 
481
        M_L_add  0  0   =  0
 
482
        M_L_add  7  4   = 11
 
483
        M_L_add  4  6   = 10
 
484
        M_L_add  1  1   =  2
 
485
 
 
486
'  negative operands
 
487
 
 
488
        M_L_add  -7  4  = -3
 
489
        M_L_add   4 -6  = -2
 
490
        M_L_add  -1 -3  = -4
 
491
        M_L_add   7 -4  =  3
 
492
        M_L_add  -4  6  =  2
 
493
        M_L_add   0 -1  = -1
 
494
 
 
495
'  positive overflow
 
496
; (max-longword = 2147483647)
 
497
        M_L_add  ++ 1   = ++
 
498
        M_L_add  ++ ++  = ++
 
499
        M_L_add  -1 ++  = 2147483646
 
500
        M_L_add  2147483646 2 = ++
 
501
        M_L_add  1 2147483645 = 2147483646
 
502
 
 
503
'  underflow
 
504
; (min-longword = -2147483648)
 
505
 
 
506
        M_L_add  -- -1  = --
 
507
        M_L_add  -- --  = --
 
508
        M_L_add  1 --   = -2147483647
 
509
        M_L_add  -2147483647 -2 = --
 
510
        M_L_add  -1 -2147483646         = -2147483647
 
511
        M_L_add  -2147483647 -1 = --
 
512
        M_L_add  -- ++  = -1
 
513
        M_L_add  ++ --  = -1
 
514
        M_L_add  0 --   = --
 
515
        M_L_add  0 ++   = ++
 
516
'
 
517
 
 
518
'sub ================
 
519
'  basic
 
520
 
 
521
        M_sub  0  0     =  0
 
522
        M_sub  7  4     =  3
 
523
        M_sub  4  6     = -2
 
524
        M_sub  1  0     =  1
 
525
 
 
526
'  negative operands
 
527
 
 
528
        M_sub  -7  4    = -11
 
529
        M_sub   4 -6    =  10
 
530
        M_sub  -1 -3    =  2
 
531
        M_sub   7 -4    =  11
 
532
        M_sub  -4  6    = -10
 
533
 
 
534
'  positive overflow
 
535
; (max-word = 32767)
 
536
        M_sub  1 -      = +
 
537
        M_sub  + +      = 0
 
538
        M_sub  + 0      = +
 
539
        M_sub  + -1     = +
 
540
        M_sub  + 1      = 32766
 
541
        M_sub  1 +      = -32766
 
542
        M_sub  0 +      = -32767
 
543
 
 
544
'  underflow
 
545
; (min-word = 32768)
 
546
 
 
547
        M_sub  - -1     = -32767
 
548
        M_sub  - 1      = -
 
549
        M_sub  - -      = 0
 
550
        M_sub  - +      = -
 
551
        M_sub  + -      = +
 
552
        M_sub  1 -      = +
 
553
        M_sub  -1 -     = +
 
554
        M_sub  -32767 2 = -
 
555
        M_sub  0 -      = +
 
556
'
 
557
'
 
558
'abs ================
 
559
'  basic
 
560
 
 
561
        M_abs      0    =   0
 
562
        M_abs      2    =   2
 
563
        M_abs   -459    = 459
 
564
 
 
565
'  overflow
 
566
 
 
567
        M_abs    +      =   +
 
568
        M_abs    -      =   +
 
569
        M_abs   -32767  =   +
 
570
        M_abs    32766  = 32766
 
571
        M_abs   -32766  = 32766
 
572
 
 
573
'
 
574
'mult ================
 
575
;  actually, a * b >> 15
 
576
 
 
577
'  basic
 
578
        M_mult  0  0            = 0
 
579
        M_mult  0x100 0x100     = 2
 
580
        M_mult  4711 0x4000     = 2355
 
581
 
 
582
'  negative operands
 
583
        M_mult  -1  0           =  0
 
584
 
 
585
        M_mult  -0x100   0x100  = -2
 
586
        M_mult   0x100  -0x100  = -2
 
587
        M_mult  -0x100  -0x100  =  2
 
588
 
 
589
        M_mult  -4711   0x4000  = -2356
 
590
        M_mult   4711  -0x4000  = -2356
 
591
        M_mult  -4711  -0x4000  =  2355
 
592
 
 
593
'  overflow
 
594
        M_mult  + +      = 32766
 
595
        M_mult  + 0x4000 = 0x3fff
 
596
        M_mult  0x4000 + = 0x3fff
 
597
        M_mult  + 1      = 0
 
598
        M_mult  + 2      = 1
 
599
        M_mult  + 3      = 2
 
600
 
 
601
'  underflow
 
602
;       M_mult - -      = +                     assert !(a == b && b == MIN_WORD)
 
603
        M_mult - -32767 = +
 
604
        M_mult -32767 - = +
 
605
        M_mult  - +     = -32767
 
606
        M_mult  + -     = -32767
 
607
        M_mult  - 1     = -1
 
608
        M_mult  - 2     = -2
 
609
        M_mult  - 3     = -3
 
610
 
 
611
'
 
612
'mult_r ================
 
613
;  actually, (a * b + 16384) >> 15
 
614
 
 
615
'  basic
 
616
        M_mult_r 0  0           = 0
 
617
        M_mult_r 0x100 0x100    = 2
 
618
        M_mult_r 4711 0x4000    = 2356
 
619
 
 
620
'  negative operands
 
621
        M_mult_r -1  0          =  0
 
622
 
 
623
        M_mult_r -0x100   0x100 = -2
 
624
        M_mult_r  0x100  -0x100 = -2
 
625
        M_mult_r -0x100  -0x100 =  2
 
626
 
 
627
        M_mult_r -4711   0x4000 = -2355
 
628
        M_mult_r  4711  -0x4000 = -2355
 
629
        M_mult_r -4711  -0x4000 =  2356
 
630
 
 
631
'  overflow
 
632
        M_mult_r + +     = 32766
 
633
        M_mult_r + 32766  = 32765
 
634
        M_mult_r 32766 +  = 32765
 
635
        M_mult_r + 0x4000 = 0x4000
 
636
        M_mult_r 0x4000 + = 0x4000
 
637
        M_mult_r + 0x4001 = 0x4000
 
638
        M_mult_r 0x4001 + = 0x4000
 
639
        M_mult_r + 2     = 2
 
640
        M_mult_r + 1     = 1
 
641
        M_mult_r 1 +     = 1
 
642
        M_mult_r + 0     = 0
 
643
        M_mult_r 0 +     = 0
 
644
 
 
645
'  underflow
 
646
;       M_mult_r - -     = +                    assert !(a == b && b == MIN_WORD)
 
647
        M_mult_r - -32767 = +
 
648
        M_mult_r -32767 - = +
 
649
        M_mult_r - +     = -32767
 
650
        M_mult_r + -     = -32767
 
651
        M_mult_r - 1     = -1
 
652
        M_mult_r - 2     = -2
 
653
        M_mult_r - 3     = -3
 
654
 
 
655
'
 
656
'L_mult ================
 
657
;  actually, (a * b) << 1
 
658
;  assert (a != MIN_WORD && b != MIN_WORD)
 
659
 
 
660
'  basic
 
661
        M_L_mult        0  0    = 0
 
662
        M_L_mult        2  3    = 12
 
663
        M_L_mult        4711 5  = 47110
 
664
 
 
665
'  negative operands
 
666
 
 
667
        M_L_mult        -2  3   = -12
 
668
        M_L_mult         2 -3   = -12
 
669
        M_L_mult        -2 -3   =  12
 
670
        M_L_mult -4711  5       = -47110
 
671
        M_L_mult        4711 -5 = -47110
 
672
        M_L_mult -4711 -5       =  47110
 
673
 
 
674
'  overflow
 
675
        M_L_mult        + +      = 2147352578
 
676
        M_L_mult        + -32767 = -2147352578
 
677
        M_L_mult        -32767 + = -2147352578
 
678
        M_L_mult        + 2      = 131068
 
679
        M_L_mult        + 1      = 65534
 
680
        M_L_mult        1 +      = 65534
 
681
        M_L_mult        + 0      = 0
 
682
        M_L_mult        0 +      = 0