Annotation of qemu/target-ppc/machine.c, revision 1.1.1.6

1.1       root        1: #include "hw/hw.h"
                      2: #include "hw/boards.h"
1.1.1.2   root        3: #include "kvm.h"
1.1       root        4: 
                      5: void cpu_save(QEMUFile *f, void *opaque)
                      6: {
1.1.1.6 ! root        7:     CPUPPCState *env = (CPUPPCState *)opaque;
1.1       root        8:     unsigned int i, j;
                      9: 
                     10:     for (i = 0; i < 32; i++)
                     11:         qemu_put_betls(f, &env->gpr[i]);
                     12: #if !defined(TARGET_PPC64)
                     13:     for (i = 0; i < 32; i++)
                     14:         qemu_put_betls(f, &env->gprh[i]);
                     15: #endif
                     16:     qemu_put_betls(f, &env->lr);
                     17:     qemu_put_betls(f, &env->ctr);
                     18:     for (i = 0; i < 8; i++)
                     19:         qemu_put_be32s(f, &env->crf[i]);
                     20:     qemu_put_betls(f, &env->xer);
1.1.1.3   root       21:     qemu_put_betls(f, &env->reserve_addr);
1.1       root       22:     qemu_put_betls(f, &env->msr);
                     23:     for (i = 0; i < 4; i++)
                     24:         qemu_put_betls(f, &env->tgpr[i]);
                     25:     for (i = 0; i < 32; i++) {
                     26:         union {
                     27:             float64 d;
                     28:             uint64_t l;
                     29:         } u;
                     30:         u.d = env->fpr[i];
                     31:         qemu_put_be64(f, u.l);
                     32:     }
                     33:     qemu_put_be32s(f, &env->fpscr);
                     34:     qemu_put_sbe32s(f, &env->access_type);
                     35: #if defined(TARGET_PPC64)
                     36:     qemu_put_betls(f, &env->asr);
                     37:     qemu_put_sbe32s(f, &env->slb_nr);
                     38: #endif
1.1.1.5   root       39:     qemu_put_betls(f, &env->spr[SPR_SDR1]);
1.1       root       40:     for (i = 0; i < 32; i++)
                     41:         qemu_put_betls(f, &env->sr[i]);
                     42:     for (i = 0; i < 2; i++)
                     43:         for (j = 0; j < 8; j++)
                     44:             qemu_put_betls(f, &env->DBAT[i][j]);
                     45:     for (i = 0; i < 2; i++)
                     46:         for (j = 0; j < 8; j++)
                     47:             qemu_put_betls(f, &env->IBAT[i][j]);
                     48:     qemu_put_sbe32s(f, &env->nb_tlb);
                     49:     qemu_put_sbe32s(f, &env->tlb_per_way);
                     50:     qemu_put_sbe32s(f, &env->nb_ways);
                     51:     qemu_put_sbe32s(f, &env->last_way);
                     52:     qemu_put_sbe32s(f, &env->id_tlbs);
                     53:     qemu_put_sbe32s(f, &env->nb_pids);
1.1.1.5   root       54:     if (env->tlb.tlb6) {
1.1       root       55:         // XXX assumes 6xx
                     56:         for (i = 0; i < env->nb_tlb; i++) {
1.1.1.5   root       57:             qemu_put_betls(f, &env->tlb.tlb6[i].pte0);
                     58:             qemu_put_betls(f, &env->tlb.tlb6[i].pte1);
                     59:             qemu_put_betls(f, &env->tlb.tlb6[i].EPN);
1.1       root       60:         }
                     61:     }
                     62:     for (i = 0; i < 4; i++)
                     63:         qemu_put_betls(f, &env->pb[i]);
                     64:     for (i = 0; i < 1024; i++)
                     65:         qemu_put_betls(f, &env->spr[i]);
                     66:     qemu_put_be32s(f, &env->vscr);
                     67:     qemu_put_be64s(f, &env->spe_acc);
                     68:     qemu_put_be32s(f, &env->spe_fscr);
                     69:     qemu_put_betls(f, &env->msr_mask);
                     70:     qemu_put_be32s(f, &env->flags);
                     71:     qemu_put_sbe32s(f, &env->error_code);
                     72:     qemu_put_be32s(f, &env->pending_interrupts);
                     73:     qemu_put_be32s(f, &env->irq_input_state);
                     74:     for (i = 0; i < POWERPC_EXCP_NB; i++)
                     75:         qemu_put_betls(f, &env->excp_vectors[i]);
                     76:     qemu_put_betls(f, &env->excp_prefix);
1.1.1.2   root       77:     qemu_put_betls(f, &env->hreset_excp_prefix);
1.1       root       78:     qemu_put_betls(f, &env->ivor_mask);
                     79:     qemu_put_betls(f, &env->ivpr_mask);
                     80:     qemu_put_betls(f, &env->hreset_vector);
                     81:     qemu_put_betls(f, &env->nip);
                     82:     qemu_put_betls(f, &env->hflags);
                     83:     qemu_put_betls(f, &env->hflags_nmsr);
                     84:     qemu_put_sbe32s(f, &env->mmu_idx);
                     85:     qemu_put_sbe32s(f, &env->power_mode);
                     86: }
                     87: 
                     88: int cpu_load(QEMUFile *f, void *opaque, int version_id)
                     89: {
1.1.1.6 ! root       90:     CPUPPCState *env = (CPUPPCState *)opaque;
1.1       root       91:     unsigned int i, j;
1.1.1.5   root       92:     target_ulong sdr1;
1.1       root       93: 
                     94:     for (i = 0; i < 32; i++)
                     95:         qemu_get_betls(f, &env->gpr[i]);
                     96: #if !defined(TARGET_PPC64)
                     97:     for (i = 0; i < 32; i++)
                     98:         qemu_get_betls(f, &env->gprh[i]);
                     99: #endif
                    100:     qemu_get_betls(f, &env->lr);
                    101:     qemu_get_betls(f, &env->ctr);
                    102:     for (i = 0; i < 8; i++)
                    103:         qemu_get_be32s(f, &env->crf[i]);
                    104:     qemu_get_betls(f, &env->xer);
1.1.1.3   root      105:     qemu_get_betls(f, &env->reserve_addr);
1.1       root      106:     qemu_get_betls(f, &env->msr);
                    107:     for (i = 0; i < 4; i++)
                    108:         qemu_get_betls(f, &env->tgpr[i]);
                    109:     for (i = 0; i < 32; i++) {
                    110:         union {
                    111:             float64 d;
                    112:             uint64_t l;
                    113:         } u;
                    114:         u.l = qemu_get_be64(f);
                    115:         env->fpr[i] = u.d;
                    116:     }
                    117:     qemu_get_be32s(f, &env->fpscr);
                    118:     qemu_get_sbe32s(f, &env->access_type);
                    119: #if defined(TARGET_PPC64)
                    120:     qemu_get_betls(f, &env->asr);
                    121:     qemu_get_sbe32s(f, &env->slb_nr);
                    122: #endif
1.1.1.5   root      123:     qemu_get_betls(f, &sdr1);
1.1       root      124:     for (i = 0; i < 32; i++)
                    125:         qemu_get_betls(f, &env->sr[i]);
                    126:     for (i = 0; i < 2; i++)
                    127:         for (j = 0; j < 8; j++)
                    128:             qemu_get_betls(f, &env->DBAT[i][j]);
                    129:     for (i = 0; i < 2; i++)
                    130:         for (j = 0; j < 8; j++)
                    131:             qemu_get_betls(f, &env->IBAT[i][j]);
                    132:     qemu_get_sbe32s(f, &env->nb_tlb);
                    133:     qemu_get_sbe32s(f, &env->tlb_per_way);
                    134:     qemu_get_sbe32s(f, &env->nb_ways);
                    135:     qemu_get_sbe32s(f, &env->last_way);
                    136:     qemu_get_sbe32s(f, &env->id_tlbs);
                    137:     qemu_get_sbe32s(f, &env->nb_pids);
1.1.1.5   root      138:     if (env->tlb.tlb6) {
1.1       root      139:         // XXX assumes 6xx
                    140:         for (i = 0; i < env->nb_tlb; i++) {
1.1.1.5   root      141:             qemu_get_betls(f, &env->tlb.tlb6[i].pte0);
                    142:             qemu_get_betls(f, &env->tlb.tlb6[i].pte1);
                    143:             qemu_get_betls(f, &env->tlb.tlb6[i].EPN);
1.1       root      144:         }
                    145:     }
                    146:     for (i = 0; i < 4; i++)
                    147:         qemu_get_betls(f, &env->pb[i]);
                    148:     for (i = 0; i < 1024; i++)
                    149:         qemu_get_betls(f, &env->spr[i]);
1.1.1.5   root      150:     ppc_store_sdr1(env, sdr1);
1.1       root      151:     qemu_get_be32s(f, &env->vscr);
                    152:     qemu_get_be64s(f, &env->spe_acc);
                    153:     qemu_get_be32s(f, &env->spe_fscr);
                    154:     qemu_get_betls(f, &env->msr_mask);
                    155:     qemu_get_be32s(f, &env->flags);
                    156:     qemu_get_sbe32s(f, &env->error_code);
                    157:     qemu_get_be32s(f, &env->pending_interrupts);
                    158:     qemu_get_be32s(f, &env->irq_input_state);
                    159:     for (i = 0; i < POWERPC_EXCP_NB; i++)
                    160:         qemu_get_betls(f, &env->excp_vectors[i]);
                    161:     qemu_get_betls(f, &env->excp_prefix);
1.1.1.2   root      162:     qemu_get_betls(f, &env->hreset_excp_prefix);
1.1       root      163:     qemu_get_betls(f, &env->ivor_mask);
                    164:     qemu_get_betls(f, &env->ivpr_mask);
                    165:     qemu_get_betls(f, &env->hreset_vector);
                    166:     qemu_get_betls(f, &env->nip);
                    167:     qemu_get_betls(f, &env->hflags);
                    168:     qemu_get_betls(f, &env->hflags_nmsr);
                    169:     qemu_get_sbe32s(f, &env->mmu_idx);
                    170:     qemu_get_sbe32s(f, &env->power_mode);
                    171: 
                    172:     return 0;
                    173: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.