Changeset 32eadeb in rtems


Ignore:
Timestamp:
Apr 20, 2010, 1:27:48 PM (10 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, master
Children:
452e5b08
Parents:
25ddacd
Message:

2010-04-20 Allan Hessenflow <allanh@…>

  • cpu_asm.S: L0-L3 were part of the interrupt context, but as Mike Frysinger noted they were not being zeroed before calling the C handlers. A patch that corrects this, as well as improving some of the push/pop order to avoid stalls.
Location:
cpukit/score/cpu/bfin
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • cpukit/score/cpu/bfin/ChangeLog

    r25ddacd r32eadeb  
     12010-04-20      Allan Hessenflow <allanh@kallisti.com>
     2
     3        * cpu_asm.S: L0-L3 were part of the interrupt context, but as
     4        Mike Frysinger noted they were not being zeroed before calling
     5        the C handlers. A patch that corrects this, as well as improving
     6        some of the push/pop order to avoid stalls.
     7
    182010-04-17      Allan Hessenflow <allanh@kallisti.com>
    29
  • cpukit/score/cpu/bfin/cpu_asm.S

    r25ddacd r32eadeb  
    384384        [--sp] = p3;
    385385        [--sp] = p2;
     386        [--sp] = lc1;
     387        [--sp] = lc0;
    386388        [--sp] = lt1;
    387389        [--sp] = lt0;
    388         [--sp] = lc1;
    389         [--sp] = lc0;
    390390        [--sp] = lb1;
    391391        [--sp] = lb0;
     
    407407        [--sp] = b0;
    408408        [--sp] = rets;
     409        /* call user isr; r0 = vector number, r1 = frame pointer */
    409410        r1 = fp; /* is this really what should be passed here? */
    410         /* call user isr; r0 = vector number, r1 = frame pointer */
     411        r2 = 0;
     412        l0 = r2;
     413        l1 = r2;
     414        l2 = r2;
     415        l3 = r2;
    411416        sp += -12; /* bizarre abi... */
    412417        call (p0);
     
    431436        lb0 = [sp++];
    432437        lb1 = [sp++];
     438        lt0 = [sp++];
     439        lt1 = [sp++];
    433440        lc0 = [sp++];
    434441        lc1 = [sp++];
    435         lt0 = [sp++];
    436         lt1 = [sp++];
    437442        p2 = [sp++];
    438443        p3 = [sp++];
     
    516521        [--sp] = p1;
    517522        [--sp] = p0;
     523        [--sp] = lc1;
     524        [--sp] = lc0;
    518525        [--sp] = lt1;
    519526        [--sp] = lt0;
    520         [--sp] = lc1;
    521         [--sp] = lc0;
    522527        [--sp] = lb1;
    523528        [--sp] = lb0;
     
    538543        [--sp] = b1;
    539544        [--sp] = b0;
     545        r2 = 0;
     546        l0 = r2;
     547        l1 = r2;
     548        l2 = r2;
     549        l3 = r2;
    540550        sp += -12; /* bizarre abi... */
    541551        call __Thread_Dispatch;
     
    559569        lb0 = [sp++];
    560570        lb1 = [sp++];
     571        lt0 = [sp++];
     572        lt1 = [sp++];
    561573        lc0 = [sp++];
    562574        lc1 = [sp++];
    563         lt0 = [sp++];
    564         lt1 = [sp++];
    565575        p0 = [sp++];
    566576        p1 = [sp++];
Note: See TracChangeset for help on using the changeset viewer.