Revision 8984bd2e target-arm/helper.c
b/target-arm/helper.c | ||
---|---|---|
470 | 470 |
} |
471 | 471 |
|
472 | 472 |
/* These should probably raise undefined insn exceptions. */ |
473 |
void helper_set_cp(CPUState *env, uint32_t insn, uint32_t val)
|
|
473 |
void HELPER(set_cp)(CPUState *env, uint32_t insn, uint32_t val)
|
|
474 | 474 |
{ |
475 | 475 |
int op1 = (insn >> 8) & 0xf; |
476 | 476 |
cpu_abort(env, "cp%i insn %08x\n", op1, insn); |
477 | 477 |
return; |
478 | 478 |
} |
479 | 479 |
|
480 |
uint32_t helper_get_cp(CPUState *env, uint32_t insn)
|
|
480 |
uint32_t HELPER(get_cp)(CPUState *env, uint32_t insn)
|
|
481 | 481 |
{ |
482 | 482 |
int op1 = (insn >> 8) & 0xf; |
483 | 483 |
cpu_abort(env, "cp%i insn %08x\n", op1, insn); |
484 | 484 |
return 0; |
485 | 485 |
} |
486 | 486 |
|
487 |
void helper_set_cp15(CPUState *env, uint32_t insn, uint32_t val)
|
|
487 |
void HELPER(set_cp15)(CPUState *env, uint32_t insn, uint32_t val)
|
|
488 | 488 |
{ |
489 | 489 |
cpu_abort(env, "cp15 insn %08x\n", insn); |
490 | 490 |
} |
491 | 491 |
|
492 |
uint32_t helper_get_cp15(CPUState *env, uint32_t insn)
|
|
492 |
uint32_t HELPER(get_cp15)(CPUState *env, uint32_t insn)
|
|
493 | 493 |
{ |
494 | 494 |
cpu_abort(env, "cp15 insn %08x\n", insn); |
495 | 495 |
return 0; |
496 | 496 |
} |
497 | 497 |
|
498 | 498 |
/* These should probably raise undefined insn exceptions. */ |
499 |
void helper_v7m_msr(CPUState *env, int reg, uint32_t val)
|
|
499 |
void HELPER(v7m_msr)(CPUState *env, uint32_t reg, uint32_t val)
|
|
500 | 500 |
{ |
501 | 501 |
cpu_abort(env, "v7m_mrs %d\n", reg); |
502 | 502 |
} |
503 | 503 |
|
504 |
uint32_t helper_v7m_mrs(CPUState *env, int reg)
|
|
504 |
uint32_t HELPER(v7m_mrs)(CPUState *env, uint32_t reg)
|
|
505 | 505 |
{ |
506 | 506 |
cpu_abort(env, "v7m_mrs %d\n", reg); |
507 | 507 |
return 0; |
... | ... | |
1191 | 1191 |
env->mmon_addr = -1; |
1192 | 1192 |
} |
1193 | 1193 |
|
1194 |
void helper_set_cp(CPUState *env, uint32_t insn, uint32_t val)
|
|
1194 |
void HELPER(set_cp)(CPUState *env, uint32_t insn, uint32_t val)
|
|
1195 | 1195 |
{ |
1196 | 1196 |
int cp_num = (insn >> 8) & 0xf; |
1197 | 1197 |
int cp_info = (insn >> 5) & 7; |
... | ... | |
1203 | 1203 |
cp_info, src, operand, val); |
1204 | 1204 |
} |
1205 | 1205 |
|
1206 |
uint32_t helper_get_cp(CPUState *env, uint32_t insn)
|
|
1206 |
uint32_t HELPER(get_cp)(CPUState *env, uint32_t insn)
|
|
1207 | 1207 |
{ |
1208 | 1208 |
int cp_num = (insn >> 8) & 0xf; |
1209 | 1209 |
int cp_info = (insn >> 5) & 7; |
... | ... | |
1246 | 1246 |
return ret; |
1247 | 1247 |
} |
1248 | 1248 |
|
1249 |
void helper_set_cp15(CPUState *env, uint32_t insn, uint32_t val)
|
|
1249 |
void HELPER(set_cp15)(CPUState *env, uint32_t insn, uint32_t val)
|
|
1250 | 1250 |
{ |
1251 | 1251 |
int op1; |
1252 | 1252 |
int op2; |
... | ... | |
1530 | 1530 |
(insn >> 16) & 0xf, crm, op1, op2); |
1531 | 1531 |
} |
1532 | 1532 |
|
1533 |
uint32_t helper_get_cp15(CPUState *env, uint32_t insn)
|
|
1533 |
uint32_t HELPER(get_cp15)(CPUState *env, uint32_t insn)
|
|
1534 | 1534 |
{ |
1535 | 1535 |
int op1; |
1536 | 1536 |
int op2; |
... | ... | |
1803 | 1803 |
return env->banked_r13[bank_number(mode)]; |
1804 | 1804 |
} |
1805 | 1805 |
|
1806 |
uint32_t helper_v7m_mrs(CPUState *env, int reg)
|
|
1806 |
uint32_t HELPER(v7m_mrs)(CPUState *env, uint32_t reg)
|
|
1807 | 1807 |
{ |
1808 | 1808 |
switch (reg) { |
1809 | 1809 |
case 0: /* APSR */ |
... | ... | |
1840 | 1840 |
} |
1841 | 1841 |
} |
1842 | 1842 |
|
1843 |
void helper_v7m_msr(CPUState *env, int reg, uint32_t val)
|
|
1843 |
void HELPER(v7m_msr)(CPUState *env, uint32_t reg, uint32_t val)
|
|
1844 | 1844 |
{ |
1845 | 1845 |
switch (reg) { |
1846 | 1846 |
case 0: /* APSR */ |
Also available in: Unified diff