~rdoering/ubuntu/karmic/erlang/fix-535090

« back to all changes in this revision

Viewing changes to erts/emulator/hipe/hipe_x86_glue.S

  • Committer: Bazaar Package Importer
  • Author(s): Sergei Golovan
  • Date: 2009-02-15 16:42:52 UTC
  • mfrom: (3.1.2 squeeze)
  • Revision ID: james.westby@ubuntu.com-20090215164252-q5x4rcf8a5pbesb1
Tags: 1:12.b.5-dfsg-2
Upload to unstable after lenny is released.

Show diffs side-by-side

added added

removed removed

Lines of Context:
312
312
 
313
313
/*
314
314
 * We end up here when a BIF called from native signals an
315
 
 * exceptional condition, and RESCHEDULE cannot occur.
 
315
 * exceptional condition.
316
316
 * The stack/heap registers were just read from P.
317
317
 */
318
318
        GLOBAL(nbif_1_simple_exception)
363
363
        jmp     .nosave_exit
364
364
 
365
365
/*
366
 
 * We end up here when a BIF called from native signals an
367
 
 * exceptional condition, and RESCHEDULE can occur.
368
 
 * %edx contains the address of the nbif which failed.
369
 
 * The stack/heap registers were just read from P.
370
 
 * P_ARG0(P) is the first actual parameter, if X86_NR_ARG_REGS > 0.
371
 
 * P_ARG1(P) is the second actual parameter (if defined), if X86_NR_ARG_REGS > 1.
372
 
 * P_ARG2(P) is the third actual parameter (if defined), if X86_NR_ARG_REGS > 2.
373
 
 */
374
 
        GLOBAL(nbif_1_hairy_exception)
375
 
        GLOBAL(nbif_2_hairy_exception)
376
 
        GLOBAL(nbif_3_hairy_exception)
377
 
        .align  4
378
 
nbif_1_hairy_exception:
379
 
        movl    $1, %eax
380
 
        jmp     .nbif_hairy_exception
381
 
        .align  4
382
 
nbif_2_hairy_exception:
383
 
        movl    $2, %eax
384
 
        jmp     .nbif_hairy_exception
385
 
        .align  4
386
 
nbif_3_hairy_exception:
387
 
        movl    $3, %eax
388
 
        /*FALLTHROUGH*/
389
 
        .align  4
390
 
.nbif_hairy_exception:
391
 
        cmpl    $FREASON_RESCHEDULE, P_FREASON(P)
392
 
        jne     .nbif_simple_exception
393
 
        /* handle reschedule */
394
 
        movl    %edx, P_NCALLEE(P)
395
 
        movl    %eax, P_ARITY(P)
396
 
        movl    $HIPE_MODE_SWITCH_RES_RESCHEDULE, %eax
397
 
        jmp     .nosave_exit
398
 
 
399
 
/*
400
366
 * nbif_stack_trap_ra: trap return address for maintaining
401
367
 * the gray/white stack boundary
402
368
 */