Changeset fe56609d in mainline


Ignore:
Timestamp:
2005-09-03T09:08:02Z (19 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
6b0e31d
Parents:
82a80d3
Message:

fix stupid assembler bugs in cpu_priority_* (PPC)

Location:
arch/ppc
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • arch/ppc/include/asm.h

    r82a80d3 rfe56609d  
    4040static inline pri_t cpu_priority_low(void) {
    4141        pri_t v;
     42        pri_t tmp;
     43       
    4244        __asm__ volatile (
    4345                "mfmsr %0\n"
    44                 "mfmsr %%r31\n"
    45                 "ori %%r31, %%r31, 1 << 15\n"
    46                 "mtmsr %%r31\n"
    47                 : "=r" (v)
    48                 :
    49                 : "%r31"
     46                "mfmsr %1\n"
     47                "ori %1, %1, 1 << 15\n"
     48                "mtmsr %1\n"
     49                : "=r" (v), "=r" (tmp)
    5050        );
    5151        return v;
     
    5959static inline pri_t cpu_priority_high(void) {
    6060        pri_t v;
     61        pri_t tmp;
     62       
    6163        __asm__ volatile (
    6264                "mfmsr %0\n"
    63                 "mfmsr %%r31\n"
    64                 "rlwinm %%r31, %%r31, 0, 17, 15\n"
    65                 "mtmsr %%r31\n"
    66                 : "=r" (v)
    67                 :
    68                 : "%r31"
     65                "mfmsr %1\n"
     66                "rlwinm %1, %1, 0, 17, 15\n"
     67                "mtmsr %1\n"
     68                : "=r" (v), "=r" (tmp)
    6969        );
    7070        return v;
     
    7676 */
    7777static inline void cpu_priority_restore(pri_t pri) {
     78        pri_t tmp;
     79       
    7880        __asm__ volatile (
    79                 "mfmsr %%r31\n"
    80                 "rlwimi  %0, %%r31, 0, 17, 15\n"
    81                 "cmpw 0, %0, %%r31\n"
     81                "mfmsr %1\n"
     82                "rlwimi  %0, %1, 0, 17, 15\n"
     83                "cmpw 0, %0, %1\n"
    8284                "beq 0f\n"
    8385                "mtmsr %0\n"
    8486                "0:\n"
    85                 : "=r" (pri)
     87                : "=r" (pri), "=r" (tmp)
    8688                : "0" (pri)
    87                 : "%r31"
    8889        );
    8990}
     
    117118}
    118119
     120void cpu_halt(void);
    119121void cpu_sleep(void);
    120122void asm_delay_loop(__u32 t);
  • arch/ppc/src/drivers/ofw.c

    r82a80d3 rfe56609d  
    2828
    2929#include <arch/drivers/ofw.h>
     30#include <arch/asm.h>
    3031#include <stdarg.h>
    3132#include <cpu.h>
Note: See TracChangeset for help on using the changeset viewer.