Changeset 37c8975 in mainline for arch/ppc32/src/context.S


Ignore:
Timestamp:
2006-02-17T11:40:46Z (19 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
0e4dd7b
Parents:
ba52899
Message:

fix stupid bug in ppc32 context_save_arch
save only non-volatile registers in context

File:
1 edited

Legend:

Unmodified
Added
Removed
  • arch/ppc32/src/context.S

    rba52899 r37c8975  
    2727#
    2828
    29 #include <arch/asm/macro.h>
     29#include <arch/asm/regname.h>
     30#include <arch/context_offset.h>
    3031
    3132.text   
     
    3435.global context_restore_arch
    3536
     37.macro CONTEXT_STORE r
     38        stw sp, OFFSET_SP(\r)
     39        stw r2, OFFSET_R2(\r)
     40        stw r13, OFFSET_R13(\r)
     41        stw r14, OFFSET_R14(\r)
     42        stw r15, OFFSET_R15(\r)
     43        stw r16, OFFSET_R16(\r)
     44        stw r17, OFFSET_R17(\r)
     45        stw r18, OFFSET_R18(\r)
     46        stw r19, OFFSET_R19(\r)
     47        stw r20, OFFSET_R20(\r)
     48        stw r21, OFFSET_R21(\r)
     49        stw r22, OFFSET_R22(\r)
     50        stw r23, OFFSET_R23(\r)
     51        stw r24, OFFSET_R24(\r)
     52        stw r25, OFFSET_R25(\r)
     53        stw r26, OFFSET_R26(\r)
     54        stw r27, OFFSET_R27(\r)
     55        stw r28, OFFSET_R28(\r)
     56        stw r29, OFFSET_R29(\r)
     57        stw r30, OFFSET_R30(\r)
     58        stw r31, OFFSET_R31(\r)
     59.endm
     60
     61.macro CONTEXT_LOAD r
     62        lwz sp, OFFSET_SP(\r)
     63        lwz r2, OFFSET_R2(\r)
     64        lwz r13, OFFSET_R13(\r)
     65        lwz r14, OFFSET_R14(\r)
     66        lwz r15, OFFSET_R15(\r)
     67        lwz r16, OFFSET_R16(\r)
     68        lwz r17, OFFSET_R17(\r)
     69        lwz r18, OFFSET_R18(\r)
     70        lwz r19, OFFSET_R19(\r)
     71        lwz r20, OFFSET_R20(\r)
     72        lwz r21, OFFSET_R21(\r)
     73        lwz r22, OFFSET_R22(\r)
     74        lwz r23, OFFSET_R23(\r)
     75        lwz r24, OFFSET_R24(\r)
     76        lwz r25, OFFSET_R25(\r)
     77        lwz r26, OFFSET_R26(\r)
     78        lwz r27, OFFSET_R27(\r)
     79        lwz r28, OFFSET_R28(\r)
     80        lwz r29, OFFSET_R29(\r)
     81        lwz r30, OFFSET_R30(\r)
     82        lwz r31, OFFSET_R31(\r)
     83.endm
     84
    3685context_save_arch:
    37         REGISTERS_STORE r3
     86        CONTEXT_STORE r3
    3887       
    39         mflr r3
    40         stw r3, 128(r3)
     88        mflr r4
     89        stw r4, OFFSET_PC(r3)
     90       
     91        mfcr r4
     92        stw r4, OFFSET_CR(r3)
    4193       
    4294        # context_save returns 1
     
    4597       
    4698context_restore_arch:
    47         REGISTERS_LOAD r3
     99        CONTEXT_LOAD r3
    48100       
    49         lwz r3, 128(r3)
    50         mtlr r3
     101        lwz r4, OFFSET_CR(r3)
     102        mtcr r4
     103       
     104        lwz r4, OFFSET_PC(r3)
     105        mtlr r4
    51106       
    52107        # context_restore returns 0
Note: See TracChangeset for help on using the changeset viewer.