@@ -205,18 +205,25 @@ void REGISTERS::write(const id::reg register_id, const u32 value) {
205205 case id::mode::FIQ:
206206 case id::mode::FIQ_26:
207207 switch (register_id) {
208+ case id::reg::R8:
208209 case id::reg::R8_fiq: R8_fiq = value; return ;
210+ case id::reg::R9:
209211 case id::reg::R9_fiq: R9_fiq = value; return ;
212+ case id::reg::R10:
210213 case id::reg::R10_fiq: R10_fiq = value; return ;
214+ case id::reg::R11:
211215 case id::reg::R11_fiq: R11_fiq = value; return ;
216+ case id::reg::R12:
212217 case id::reg::R12_fiq: R12_fiq = value; return ;
218+ case id::reg::R13:
213219 case id::reg::R13_fiq: R13_fiq = value; return ;
220+ case id::reg::R14:
214221 case id::reg::R14_fiq: R14_fiq = value; return ;
215222 case id::reg::SPSR_fiq: SPSR_fiq = value; return ;
216223 default : break ;
217224 }
218225 break ;
219-
226+
220227 case id::mode::IRQ:
221228 case id::mode::IRQ_26:
222229 switch (register_id) {
@@ -225,9 +232,11 @@ void REGISTERS::write(const id::reg register_id, const u32 value) {
225232 case id::reg::R10: R10 = value; return ;
226233 case id::reg::R11: R11 = value; return ;
227234 case id::reg::R12: R12 = value; return ;
235+ case id::reg::R13:
228236 case id::reg::R13_irq: R13_irq = value; return ;
237+ case id::reg::R14:
229238 case id::reg::R14_irq: R14_irq = value; return ;
230- case id::reg::SPSR_irq: SPSR_irq = value; return ;
239+ case id::reg::SPSR_irq: SPSR_irq = value; return ;
231240 default : break ;
232241 }
233242 break ;
@@ -240,9 +249,11 @@ void REGISTERS::write(const id::reg register_id, const u32 value) {
240249 case id::reg::R10: R10 = value; return ;
241250 case id::reg::R11: R11 = value; return ;
242251 case id::reg::R12: R12 = value; return ;
252+ case id::reg::R13:
243253 case id::reg::R13_svc: R13_svc = value; return ;
254+ case id::reg::R14:
244255 case id::reg::R14_svc: R14_svc = value; return ;
245- case id::reg::SPSR_svc: SPSR_svc = value; return ;
256+ case id::reg::SPSR_svc: SPSR_svc = value; return ;
246257 default : break ;
247258 }
248259 break ;
@@ -254,9 +265,11 @@ void REGISTERS::write(const id::reg register_id, const u32 value) {
254265 case id::reg::R10: R10 = value; return ;
255266 case id::reg::R11: R11 = value; return ;
256267 case id::reg::R12: R12 = value; return ;
268+ case id::reg::R13:
257269 case id::reg::R13_abt: R13_abt = value; return ;
270+ case id::reg::R14:
258271 case id::reg::R14_abt: R14_abt = value; return ;
259- case id::reg::SPSR_abt: SPSR_abt = value; return ;
272+ case id::reg::SPSR_abt: SPSR_abt = value; return ;
260273 default : break ;
261274 }
262275 break ;
@@ -268,9 +281,11 @@ void REGISTERS::write(const id::reg register_id, const u32 value) {
268281 case id::reg::R10: R10 = value; return ;
269282 case id::reg::R11: R11 = value; return ;
270283 case id::reg::R12: R12 = value; return ;
284+ case id::reg::R13:
271285 case id::reg::R13_und: R13_und = value; return ;
286+ case id::reg::R14:
272287 case id::reg::R14_und: R14_und = value; return ;
273- case id::reg::SPSR_und: SPSR_und = value; return ;
288+ case id::reg::SPSR_und: SPSR_und = value; return ;
274289 default : break ;
275290 }
276291 break ;
@@ -459,18 +474,25 @@ u32 REGISTERS::read(const id::reg reg_id) const {
459474 case id::mode::FIQ:
460475 case id::mode::FIQ_26:
461476 switch (reg_id) {
477+ case id::reg::R8:
462478 case id::reg::R8_fiq: return R8_fiq;
479+ case id::reg::R9:
463480 case id::reg::R9_fiq: return R9_fiq;
481+ case id::reg::R10:
464482 case id::reg::R10_fiq: return R10_fiq;
483+ case id::reg::R11:
465484 case id::reg::R11_fiq: return R11_fiq;
485+ case id::reg::R12:
466486 case id::reg::R12_fiq: return R12_fiq;
487+ case id::reg::R13:
467488 case id::reg::R13_fiq: return R13_fiq;
489+ case id::reg::R14:
468490 case id::reg::R14_fiq: return R14_fiq;
469491 case id::reg::SPSR_fiq: return SPSR_fiq;
470492 default : break ;
471493 }
472494 break ;
473-
495+
474496 case id::mode::IRQ:
475497 case id::mode::IRQ_26:
476498 switch (reg_id) {
@@ -479,9 +501,11 @@ u32 REGISTERS::read(const id::reg reg_id) const {
479501 case id::reg::R10: return R10;
480502 case id::reg::R11: return R11;
481503 case id::reg::R12: return R12;
504+ case id::reg::R13:
482505 case id::reg::R13_irq: return R13_irq;
506+ case id::reg::R14:
483507 case id::reg::R14_irq: return R14_irq;
484- case id::reg::SPSR_irq: return SPSR_irq;
508+ case id::reg::SPSR_irq: return SPSR_irq;
485509 default : break ;
486510 }
487511 break ;
@@ -494,9 +518,11 @@ u32 REGISTERS::read(const id::reg reg_id) const {
494518 case id::reg::R10: return R10;
495519 case id::reg::R11: return R11;
496520 case id::reg::R12: return R12;
521+ case id::reg::R13:
497522 case id::reg::R13_svc: return R13_svc;
523+ case id::reg::R14:
498524 case id::reg::R14_svc: return R14_svc;
499- case id::reg::SPSR_svc: return SPSR_svc;
525+ case id::reg::SPSR_svc: return SPSR_svc;
500526 default : break ;
501527 }
502528 break ;
@@ -508,9 +534,11 @@ u32 REGISTERS::read(const id::reg reg_id) const {
508534 case id::reg::R10: return R10;
509535 case id::reg::R11: return R11;
510536 case id::reg::R12: return R12;
537+ case id::reg::R13:
511538 case id::reg::R13_abt: return R13_abt;
539+ case id::reg::R14:
512540 case id::reg::R14_abt: return R14_abt;
513- case id::reg::SPSR_abt: return SPSR_abt;
541+ case id::reg::SPSR_abt: return SPSR_abt;
514542 default : break ;
515543 }
516544 break ;
@@ -522,9 +550,11 @@ u32 REGISTERS::read(const id::reg reg_id) const {
522550 case id::reg::R10: return R10;
523551 case id::reg::R11: return R11;
524552 case id::reg::R12: return R12;
553+ case id::reg::R13:
525554 case id::reg::R13_und: return R13_und;
555+ case id::reg::R14:
526556 case id::reg::R14_und: return R14_und;
527- case id::reg::SPSR_und: return SPSR_und;
557+ case id::reg::SPSR_und: return SPSR_und;
528558 default : break ;
529559 }
530560 break ;
0 commit comments