/[gxemul]/trunk/src/cpus/cpu_arm_coproc.c
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/src/cpus/cpu_arm_coproc.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 17 by dpavlin, Mon Oct 8 16:18:51 2007 UTC revision 18 by dpavlin, Mon Oct 8 16:19:11 2007 UTC
# Line 25  Line 25 
25   *  SUCH DAMAGE.   *  SUCH DAMAGE.
26   *   *
27   *   *
28   *  $Id: cpu_arm_coproc.c,v 1.10 2005/10/07 22:10:51 debug Exp $   *  $Id: cpu_arm_coproc.c,v 1.13 2005/10/26 14:37:02 debug Exp $
29   *   *
30   *  ARM coprocessor emulation.   *  ARM coprocessor emulation.
31   */   */
# Line 83  void arm_coproc_15(struct cpu *cpu, int Line 83  void arm_coproc_15(struct cpu *cpu, int
83                  old_control = cpu->cd.arm.control;                  old_control = cpu->cd.arm.control;
84                  cpu->cd.arm.control = cpu->cd.arm.r[rd];                  cpu->cd.arm.control = cpu->cd.arm.r[rd];
85                  if ((old_control & ARM_CONTROL_MMU) !=                  if ((old_control & ARM_CONTROL_MMU) !=
86                      (cpu->cd.arm.control & ARM_CONTROL_MMU))                      (cpu->cd.arm.control & ARM_CONTROL_MMU)) {
87                          debug("[ %s the MMU ]\n", cpu->cd.arm.control &                          debug("[ %s the MMU ]\n", cpu->cd.arm.control &
88                              ARM_CONTROL_MMU? "enabling" : "disabling");                              ARM_CONTROL_MMU? "enabling" : "disabling");
89                            cpu->translate_address =
90                                cpu->cd.arm.control & ARM_CONTROL_MMU?
91                                arm_translate_address_mmu : arm_translate_address;
92                    }
93                  if ((old_control & ARM_CONTROL_ALIGN) !=                  if ((old_control & ARM_CONTROL_ALIGN) !=
94                      (cpu->cd.arm.control & ARM_CONTROL_ALIGN))                      (cpu->cd.arm.control & ARM_CONTROL_ALIGN))
95                          debug("[ %s alignment checks ]\n", cpu->cd.arm.control &                          debug("[ %s alignment checks ]\n", cpu->cd.arm.control &
# Line 163  void arm_coproc_15(struct cpu *cpu, int Line 167  void arm_coproc_15(struct cpu *cpu, int
167                  /*  fatal("[ arm_coproc_15: TLB: op2=%i crm=%i rd=0x%08x ]\n",                  /*  fatal("[ arm_coproc_15: TLB: op2=%i crm=%i rd=0x%08x ]\n",
168                      opcode2, crm, cpu->cd.arm.r[rd]);  */                      opcode2, crm, cpu->cd.arm.r[rd]);  */
169                  if (opcode2 == 0)                  if (opcode2 == 0)
170                          cpu->invalidate_translation_caches_paddr(cpu, 0,                          cpu->invalidate_translation_caches(cpu, 0,
171                              INVALIDATE_ALL);                              INVALIDATE_ALL);
172                  else                  else
173                          cpu->invalidate_translation_caches_paddr(cpu,                          cpu->invalidate_translation_caches(cpu,
174                              cpu->cd.arm.r[rd], INVALIDATE_VADDR);                              cpu->cd.arm.r[rd], INVALIDATE_VADDR);
175                  break;                  break;
176    
# Line 188  void arm_coproc_15(struct cpu *cpu, int Line 192  void arm_coproc_15(struct cpu *cpu, int
192                  }                  }
193                  break;                  break;
194    
195          case 15:/*  IMPLEMENTATION DEPENDANT!  */          case 15:/*  IMPLEMENTATION DEPENDENT!  */
196                  fatal("[ arm_coproc_15: TODO: IMPLEMENTATION DEPENDANT! ]\n");                  fatal("[ arm_coproc_15: TODO: IMPLEMENTATION DEPENDENT! ]\n");
197                  break;                  break;
198    
199          default:fatal("arm_coproc_15: unimplemented crn = %i\n", crn);          default:fatal("arm_coproc_15: unimplemented crn = %i\n", crn);

Legend:
Removed from v.17  
changed lines
  Added in v.18

  ViewVC Help
Powered by ViewVC 1.1.26