Revision 9fddaa0c linux-user/main.c

b/linux-user/main.c
504 504
#endif
505 505

  
506 506
#ifdef TARGET_PPC
507

  
508
static inline uint64_t cpu_ppc_get_tb (CPUState *env)
509
{
510
    /* TO FIX */
511
    return 0;
512
}
513
  
514
uint32_t cpu_ppc_load_tbl (CPUState *env)
515
{
516
    return cpu_ppc_get_tb(env) & 0xFFFFFFFF;
517
}
518
  
519
uint32_t cpu_ppc_load_tbu (CPUState *env)
520
{
521
    return cpu_ppc_get_tb(env) >> 32;
522
}
523
  
524
static void cpu_ppc_store_tb (CPUState *env, uint64_t value)
525
{
526
    /* TO FIX */
527
}
528

  
529
void cpu_ppc_store_tbu (CPUState *env, uint32_t value)
530
{
531
    cpu_ppc_store_tb(env, ((uint64_t)value << 32) | cpu_ppc_load_tbl(env));
532
}
533
 
534
void cpu_ppc_store_tbl (CPUState *env, uint32_t value)
535
{
536
    cpu_ppc_store_tb(env, ((uint64_t)cpu_ppc_load_tbl(env) << 32) | value);
537
}
538
  
539
uint32_t cpu_ppc_load_decr (CPUState *env)
540
{
541
    /* TO FIX */
542
    return -1;
543
}
544
 
545
void cpu_ppc_store_decr (CPUState *env, uint32_t value)
546
{
547
    /* TO FIX */
548
}
549
 
507 550
void cpu_loop(CPUPPCState *env)
508 551
{
509 552
    target_siginfo_t info;
......
812 855
            abort();
813 856
        case EXCP_MTMSR:
814 857
            /* We reloaded the msr, just go on */
815
            if (msr_pr) {
858
            if (msr_pr == 0) {
816 859
                fprintf(stderr, "Tried to go into supervisor mode !\n");
817 860
                if (loglevel)
818 861
                    fprintf(logfile, "Tried to go into supervisor mode !\n");
......
842 885
            }
843 886
            abort();
844 887
        }
845
        if (trapnr < EXCP_PPC_MAX)
846
            env->exceptions &= ~(1 << trapnr);
847 888
        process_pending_signals(env);
848
        if (env->exceptions != 0) {
849
            check_exception_state(env);
850
        }
851 889
    }
852 890
}
853 891
#endif

Also available in: Unified diff