~ubuntu-branches/ubuntu/trusty/erlang/trusty

« back to all changes in this revision

Viewing changes to erts/emulator/hipe/hipe_amd64_bifs.m4

  • Committer: Bazaar Package Importer
  • Author(s): Clint Byrum
  • Date: 2011-05-05 15:48:43 UTC
  • mfrom: (3.5.13 sid)
  • Revision ID: james.westby@ubuntu.com-20110505154843-0om6ekzg6m7ugj27
Tags: 1:14.b.2-dfsg-3ubuntu1
* Merge from debian unstable.  Remaining changes:
  - Drop libwxgtk2.8-dev build dependency. Wx isn't in main, and not
    supposed to.
  - Drop erlang-wx binary.
  - Drop erlang-wx dependency from -megaco, -common-test, and -reltool, they
    do not really need wx. Also drop it from -debugger; the GUI needs wx,
    but it apparently has CLI bits as well, and is also needed by -megaco,
    so let's keep the package for now.
  - debian/patches/series: Do what I meant, and enable build-options.patch
    instead.
* Additional changes:
  - Drop erlang-wx from -et
* Dropped Changes:
  - patches/pcre-crash.patch: CVE-2008-2371: outer level option with
    alternatives caused crash. (Applied Upstream)
  - fix for ssl certificate verification in newSSL: 
    ssl_cacertfile_fix.patch (Applied Upstream)
  - debian/patches/series: Enable native.patch again, to get stripped beam
    files and reduce the package size again. (build-options is what
    actually accomplished this)
  - Remove build-options.patch on advice from upstream and because it caused
    odd build failures.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
changecom(`/*', `*/')dnl
2
2
/*
3
3
 * %CopyrightBegin%
4
 
 * 
5
 
 * Copyright Ericsson AB 2004-2009. All Rights Reserved.
6
 
 * 
 
4
 *
 
5
 * Copyright Ericsson AB 2004-2010. All Rights Reserved.
 
6
 *
7
7
 * The contents of this file are subject to the Erlang Public License,
8
8
 * Version 1.1, (the "License"); you may not use this file except in
9
9
 * compliance with the License. You should have received a copy of the
10
10
 * Erlang Public License along with this software. If not, it can be
11
11
 * retrieved online at http://www.erlang.org/.
12
 
 * 
 
12
 *
13
13
 * Software distributed under the License is distributed on an "AS IS"
14
14
 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
15
15
 * the License for the specific language governing rights and limitations
16
16
 * under the License.
17
 
 * 
 
17
 *
18
18
 * %CopyrightEnd%
19
19
 */
20
20
/*
46
46
`
47
47
#ifndef HAVE_$1
48
48
#`define' HAVE_$1
49
 
        .section ".text"
 
49
        TEXT
50
50
        .align  4
51
 
        .global $1
52
 
$1:
 
51
        GLOBAL(ASYM($1))
 
52
ASYM($1):
53
53
        /* set up the parameters */
54
54
        movq    P, %rdi
55
55
        NBIF_ARG(%rsi,1,0)
56
56
 
57
57
        /* make the call on the C stack */
58
58
        SWITCH_ERLANG_TO_C
59
 
        call    $2
 
59
        call    CSYM($2)
60
60
        TEST_GOT_MBUF
61
61
        SWITCH_C_TO_ERLANG
62
62
 
65
65
        jz      nbif_1_simple_exception
66
66
        NBIF_RET(1)
67
67
        HANDLE_GOT_MBUF(1)
68
 
        .size   $1,.-$1
69
 
        .type   $1,@function
 
68
        SET_SIZE(ASYM($1))
 
69
        TYPE_FUNCTION(ASYM($1))
70
70
#endif')
71
71
 
72
72
define(standard_bif_interface_2,
73
73
`
74
74
#ifndef HAVE_$1
75
75
#`define' HAVE_$1
76
 
        .section ".text"
 
76
        TEXT
77
77
        .align  4
78
 
        .global $1
79
 
$1:
 
78
        GLOBAL(ASYM($1))
 
79
ASYM($1):
80
80
        /* set up the parameters */
81
81
        movq    P, %rdi
82
82
        NBIF_ARG(%rsi,2,0)
84
84
 
85
85
        /* make the call on the C stack */
86
86
        SWITCH_ERLANG_TO_C
87
 
        call    $2
 
87
        call    CSYM($2)
88
88
        TEST_GOT_MBUF
89
89
        SWITCH_C_TO_ERLANG
90
90
 
93
93
        jz      nbif_2_simple_exception
94
94
        NBIF_RET(2)
95
95
        HANDLE_GOT_MBUF(2)
96
 
        .size   $1,.-$1
97
 
        .type   $1,@function
 
96
        SET_SIZE(ASYM($1))
 
97
        TYPE_FUNCTION(ASYM($1))
98
98
#endif')
99
99
 
100
100
define(standard_bif_interface_3,
101
101
`
102
102
#ifndef HAVE_$1
103
103
#`define' HAVE_$1
104
 
        .section ".text"
 
104
        TEXT
105
105
        .align  4
106
 
        .global $1
107
 
$1:
 
106
        GLOBAL(ASYM($1))
 
107
ASYM($1):
108
108
        /* set up the parameters */
109
109
        movq    P, %rdi
110
110
        NBIF_ARG(%rsi,3,0)
113
113
 
114
114
        /* make the call on the C stack */
115
115
        SWITCH_ERLANG_TO_C
116
 
        call    $2
 
116
        call    CSYM($2)
117
117
        TEST_GOT_MBUF
118
118
        SWITCH_C_TO_ERLANG
119
119
 
122
122
        jz      nbif_3_simple_exception
123
123
        NBIF_RET(3)
124
124
        HANDLE_GOT_MBUF(3)
125
 
        .size   $1,.-$1
126
 
        .type   $1,@function
 
125
        SET_SIZE(ASYM($1))
 
126
        TYPE_FUNCTION(ASYM($1))
127
127
#endif')
128
128
 
129
129
/*
136
136
`
137
137
#ifndef HAVE_$1
138
138
#`define' HAVE_$1
139
 
        .section ".text"
 
139
        TEXT
140
140
        .align  4
141
 
        .global $1
142
 
$1:
 
141
        GLOBAL(ASYM($1))
 
142
ASYM($1):
143
143
        /* set up the parameters */
144
144
        movq    P, %rdi
145
145
 
146
146
        /* make the call on the C stack */
147
147
        SWITCH_ERLANG_TO_C
148
 
        call    $2
 
148
        call    CSYM($2)
149
149
        TEST_GOT_MBUF
150
150
        SWITCH_C_TO_ERLANG
151
151
 
154
154
        jz      nbif_0_simple_exception
155
155
        NBIF_RET(0)
156
156
        HANDLE_GOT_MBUF(0)
157
 
        .size   $1,.-$1
158
 
        .type   $1,@function
 
157
        SET_SIZE(ASYM($1))
 
158
        TYPE_FUNCTION(ASYM($1))
159
159
#endif')
160
160
 
161
161
/*
172
172
`
173
173
#ifndef HAVE_$1
174
174
#`define' HAVE_$1
175
 
        .section ".text"
 
175
        TEXT
176
176
        .align  4
177
 
        .global $1
178
 
$1:
 
177
        GLOBAL(ASYM($1))
 
178
ASYM($1):
179
179
        /* set up the parameters */
180
180
        movq    P, %rdi
181
181
 
182
182
        /* make the call on the C stack */
183
183
        SWITCH_ERLANG_TO_C
184
 
        call    $2
 
184
        call    CSYM($2)
185
185
        TEST_GOT_MBUF
186
186
        SWITCH_C_TO_ERLANG
187
187
 
188
188
        /* return */
189
189
        NBIF_RET(0)
190
190
        HANDLE_GOT_MBUF(0)
191
 
        .size   $1,.-$1
192
 
        .type   $1,@function
 
191
        SET_SIZE(ASYM($1))
 
192
        TYPE_FUNCTION(ASYM($1))
193
193
#endif')
194
194
 
195
195
define(nofail_primop_interface_1,
196
196
`
197
197
#ifndef HAVE_$1
198
198
#`define' HAVE_$1
199
 
        .section ".text"
 
199
        TEXT
200
200
        .align  4
201
 
        .global $1
202
 
$1:
 
201
        GLOBAL(ASYM($1))
 
202
ASYM($1):
203
203
        /* set up the parameters */
204
204
        movq    P, %rdi
205
205
        NBIF_ARG(%rsi,1,0)
206
206
 
207
207
        /* make the call on the C stack */
208
208
        SWITCH_ERLANG_TO_C
209
 
        call    $2
 
209
        call    CSYM($2)
210
210
        TEST_GOT_MBUF
211
211
        SWITCH_C_TO_ERLANG
212
212
 
213
213
        /* return */
214
214
        NBIF_RET(1)
215
215
        HANDLE_GOT_MBUF(1)
216
 
        .size   $1,.-$1
217
 
        .type   $1,@function
 
216
        SET_SIZE(ASYM($1))
 
217
        TYPE_FUNCTION(ASYM($1))
218
218
#endif')
219
219
 
220
220
define(nofail_primop_interface_2,
221
221
`
222
222
#ifndef HAVE_$1
223
223
#`define' HAVE_$1
224
 
        .section ".text"
 
224
        TEXT
225
225
        .align  4
226
 
        .global $1
227
 
$1:
 
226
        GLOBAL(ASYM($1))
 
227
ASYM($1):
228
228
        /* set up the parameters */
229
229
        movq    P, %rdi
230
230
        NBIF_ARG(%rsi,2,0)
232
232
 
233
233
        /* make the call on the C stack */
234
234
        SWITCH_ERLANG_TO_C
235
 
        call    $2
 
235
        call    CSYM($2)
236
236
        TEST_GOT_MBUF
237
237
        SWITCH_C_TO_ERLANG
238
238
 
239
239
        /* return */
240
240
        NBIF_RET(2)
241
241
        HANDLE_GOT_MBUF(2)
242
 
        .size   $1,.-$1
243
 
        .type   $1,@function
 
242
        SET_SIZE(ASYM($1))
 
243
        TYPE_FUNCTION(ASYM($1))
244
244
#endif')
245
245
 
246
246
define(nofail_primop_interface_3,
247
247
`
248
248
#ifndef HAVE_$1
249
249
#`define' HAVE_$1
250
 
        .section ".text"
 
250
        TEXT
251
251
        .align  4
252
 
        .global $1
253
 
$1:
 
252
        GLOBAL(ASYM($1))
 
253
ASYM($1):
254
254
        /* set up the parameters */
255
255
        movq    P, %rdi
256
256
        NBIF_ARG(%rsi,3,0)
259
259
 
260
260
        /* make the call on the C stack */
261
261
        SWITCH_ERLANG_TO_C
262
 
        call    $2
 
262
        call    CSYM($2)
263
263
        TEST_GOT_MBUF
264
264
        SWITCH_C_TO_ERLANG
265
265
 
266
266
        /* return */
267
267
        NBIF_RET(3)
268
268
        HANDLE_GOT_MBUF(3)
269
 
        .size   $1,.-$1
270
 
        .type   $1,@function
 
269
        SET_SIZE(ASYM($1))
 
270
        TYPE_FUNCTION(ASYM($1))
271
271
#endif')
272
272
 
273
273
/*
285
285
`
286
286
#ifndef HAVE_$1
287
287
#`define' HAVE_$1
288
 
        .section ".text"
 
288
        TEXT
289
289
        .align  4
290
 
        .global $1
291
 
$1:
 
290
        GLOBAL(ASYM($1))
 
291
ASYM($1):
292
292
        /* set up the parameters */
293
293
        movq    P, %rdi
294
294
 
295
295
        /* make the call on the C stack */
296
296
        SWITCH_ERLANG_TO_C_QUICK
297
 
        call    $2
 
297
        call    CSYM($2)
298
298
        SWITCH_C_TO_ERLANG_QUICK
299
299
 
300
300
        /* return */
301
301
        NBIF_RET(0)
302
 
        .size   $1,.-$1
303
 
        .type   $1,@function
 
302
        SET_SIZE(ASYM($1))
 
303
        TYPE_FUNCTION(ASYM($1))
304
304
#endif')
305
305
 
306
306
define(nocons_nofail_primop_interface_1,
307
307
`
308
308
#ifndef HAVE_$1
309
309
#`define' HAVE_$1
310
 
        .section ".text"
 
310
        TEXT
311
311
        .align  4
312
 
        .global $1
313
 
$1:
 
312
        GLOBAL(ASYM($1))
 
313
ASYM($1):
314
314
        /* set up the parameters */
315
315
        movq    P, %rdi
316
316
        NBIF_ARG(%rsi,1,0)
317
317
 
318
318
        /* make the call on the C stack */
319
319
        SWITCH_ERLANG_TO_C_QUICK
320
 
        call    $2
 
320
        call    CSYM($2)
321
321
        SWITCH_C_TO_ERLANG_QUICK
322
322
 
323
323
        /* return */
324
324
        NBIF_RET(1)
325
 
        .size   $1,.-$1
326
 
        .type   $1,@function
 
325
        SET_SIZE(ASYM($1))
 
326
        TYPE_FUNCTION(ASYM($1))
327
327
#endif')
328
328
 
329
329
define(nocons_nofail_primop_interface_2,
330
330
`
331
331
#ifndef HAVE_$1
332
332
#`define' HAVE_$1
333
 
        .section ".text"
 
333
        TEXT
334
334
        .align  4
335
 
        .global $1
336
 
$1:
 
335
        GLOBAL(ASYM($1))
 
336
ASYM($1):
337
337
        /* set up the parameters */
338
338
        movq    P, %rdi
339
339
        NBIF_ARG(%rsi,2,0)
341
341
 
342
342
        /* make the call on the C stack */
343
343
        SWITCH_ERLANG_TO_C_QUICK
344
 
        call    $2
 
344
        call    CSYM($2)
345
345
        SWITCH_C_TO_ERLANG_QUICK
346
346
 
347
347
        /* return */
348
348
        NBIF_RET(2)
349
 
        .size   $1,.-$1
350
 
        .type   $1,@function
 
349
        SET_SIZE(ASYM($1))
 
350
        TYPE_FUNCTION(ASYM($1))
351
351
#endif')
352
352
 
353
353
define(nocons_nofail_primop_interface_3,
354
354
`
355
355
#ifndef HAVE_$1
356
356
#`define' HAVE_$1
357
 
        .section ".text"
 
357
        TEXT
358
358
        .align  4
359
 
        .global $1
360
 
$1:
 
359
        GLOBAL(ASYM($1))
 
360
ASYM($1):
361
361
        /* set up the parameters */
362
362
        movq    P, %rdi
363
363
        NBIF_ARG(%rsi,3,0)
366
366
 
367
367
        /* make the call on the C stack */
368
368
        SWITCH_ERLANG_TO_C_QUICK
369
 
        call    $2
 
369
        call    CSYM($2)
370
370
        SWITCH_C_TO_ERLANG_QUICK
371
371
 
372
372
        /* return */
373
373
        NBIF_RET(3)
374
 
        .size   $1,.-$1
375
 
        .type   $1,@function
 
374
        SET_SIZE(ASYM($1))
 
375
        TYPE_FUNCTION(ASYM($1))
376
376
#endif')
377
377
 
378
378
define(nocons_nofail_primop_interface_5,
379
379
`
380
380
#ifndef HAVE_$1
381
381
#`define' HAVE_$1
382
 
        .section ".text"
 
382
        TEXT
383
383
        .align  4
384
 
        .global $1
385
 
$1:
 
384
        GLOBAL(ASYM($1))
 
385
ASYM($1):
386
386
        /* set up the parameters */
387
387
        movq    P, %rdi
388
388
        NBIF_ARG(%rsi,5,0)
393
393
 
394
394
        /* make the call on the C stack */
395
395
        SWITCH_ERLANG_TO_C_QUICK
396
 
        call    $2
 
396
        call    CSYM($2)
397
397
        SWITCH_C_TO_ERLANG_QUICK
398
398
 
399
399
        /* return */
400
400
        NBIF_RET(5)
401
 
        .size   $1,.-$1
402
 
        .type   $1,@function
 
401
        SET_SIZE(ASYM($1))
 
402
        TYPE_FUNCTION(ASYM($1))
403
403
#endif')
404
404
 
405
405
/*
417
417
`
418
418
#ifndef HAVE_$1
419
419
#`define' HAVE_$1
420
 
        .section ".text"
 
420
        TEXT
421
421
        .align  4
422
 
        .global $1
423
 
$1:
 
422
        GLOBAL(ASYM($1))
 
423
ASYM($1):
424
424
        /* make the call on the C stack */
425
425
        SWITCH_ERLANG_TO_C_QUICK
426
 
        call    $2
 
426
        call    CSYM($2)
427
427
        SWITCH_C_TO_ERLANG_QUICK
428
428
 
429
429
        /* return */
430
430
        NBIF_RET(0)
431
 
        .size   $1,.-$1
432
 
        .type   $1,@function
 
431
        SET_SIZE(ASYM($1))
 
432
        TYPE_FUNCTION(ASYM($1))
433
433
#endif')
434
434
 
435
435
define(noproc_primop_interface_1,
436
436
`
437
437
#ifndef HAVE_$1
438
438
#`define' HAVE_$1
439
 
        .section ".text"
 
439
        TEXT
440
440
        .align  4
441
 
        .global $1
442
 
$1:
 
441
        GLOBAL(ASYM($1))
 
442
ASYM($1):
443
443
        /* set up the parameters */
444
444
        NBIF_ARG(%rdi,1,0)
445
445
 
446
446
        /* make the call on the C stack */
447
447
        SWITCH_ERLANG_TO_C_QUICK
448
 
        call    $2
 
448
        call    CSYM($2)
449
449
        SWITCH_C_TO_ERLANG_QUICK
450
450
 
451
451
        /* return */
452
452
        NBIF_RET(1)
453
 
        .size   $1,.-$1
454
 
        .type   $1,@function
 
453
        SET_SIZE(ASYM($1))
 
454
        TYPE_FUNCTION(ASYM($1))
455
455
#endif')
456
456
 
457
457
define(noproc_primop_interface_2,
458
458
`
459
459
#ifndef HAVE_$1
460
460
#`define' HAVE_$1
461
 
        .section ".text"
 
461
        TEXT
462
462
        .align  4
463
 
        .global $1
464
 
$1:
 
463
        GLOBAL(ASYM($1))
 
464
ASYM($1):
465
465
        /* set up the parameters */
466
466
        NBIF_ARG(%rdi,2,0)
467
467
        NBIF_ARG(%rsi,2,1)
468
468
 
469
469
        /* make the call on the C stack */
470
470
        SWITCH_ERLANG_TO_C_QUICK
471
 
        call    $2
 
471
        call    CSYM($2)
472
472
        SWITCH_C_TO_ERLANG_QUICK
473
473
 
474
474
        /* return */
475
475
        NBIF_RET(2)
476
 
        .size   $1,.-$1
477
 
        .type   $1,@function
 
476
        SET_SIZE(ASYM($1))
 
477
        TYPE_FUNCTION(ASYM($1))
478
478
#endif')
479
479
 
480
480
define(noproc_primop_interface_3,
481
481
`
482
482
#ifndef HAVE_$1
483
483
#`define' HAVE_$1
484
 
        .section ".text"
 
484
        TEXT
485
485
        .align  4
486
 
        .global $1
487
 
$1:
 
486
        GLOBAL(ASYM($1))
 
487
ASYM($1):
488
488
        /* set up the parameters */
489
489
        NBIF_ARG(%rdi,3,0)
490
490
        NBIF_ARG(%rsi,3,1)
492
492
 
493
493
        /* make the call on the C stack */
494
494
        SWITCH_ERLANG_TO_C_QUICK
495
 
        call    $2
 
495
        call    CSYM($2)
496
496
        SWITCH_C_TO_ERLANG_QUICK
497
497
 
498
498
        /* return */
499
499
        NBIF_RET(3)
500
 
        .size   $1,.-$1
501
 
        .type   $1,@function
 
500
        SET_SIZE(ASYM($1))
 
501
        TYPE_FUNCTION(ASYM($1))
502
502
#endif')
503
503
 
504
504
define(noproc_primop_interface_5,
505
505
`
506
506
#ifndef HAVE_$1
507
507
#`define' HAVE_$1
508
 
        .section ".text"
 
508
        TEXT
509
509
        .align  4
510
 
        .global $1
511
 
$1:
 
510
        GLOBAL(ASYM($1))
 
511
ASYM($1):
512
512
        /* set up the parameters */
513
513
        NBIF_ARG(%rdi,5,0)
514
514
        NBIF_ARG(%rsi,5,1)
518
518
 
519
519
        /* make the call on the C stack */
520
520
        SWITCH_ERLANG_TO_C_QUICK
521
 
        call    $2
 
521
        call    CSYM($2)
522
522
        SWITCH_C_TO_ERLANG_QUICK
523
523
 
524
524
        /* return */
525
525
        NBIF_RET(5)
526
 
        .size   $1,.-$1
527
 
        .type   $1,@function
 
526
        SET_SIZE(ASYM($1))
 
527
        TYPE_FUNCTION(ASYM($1))
528
528
#endif')
529
529
 
530
530
/*