Skip to content

Commit 16ff538

Browse files
committed
fix up regs
1 parent 27e10e0 commit 16ff538

File tree

1 file changed

+14
-4
lines changed
  • macaw-aarch32/src/Data/Macaw/ARM

1 file changed

+14
-4
lines changed

macaw-aarch32/src/Data/Macaw/ARM/Arch.hs

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,8 @@ instance MC.IsArchFn ARMPrimFn where
393393
let ppUnary s v' = s PP.<+> v'
394394
ppBinary s v1' v2' = s PP.<+> v1' PP.<+> v2'
395395
ppTernary s v1' v2' v3' = s PP.<+> v1' PP.<+> v2' PP.<+> v3'
396-
ppSC s imm r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 = s PP.<+> PP.viaShow imm PP.<+> r0 PP.<+> r1 PP.<+> r2 PP.<+> r3 PP.<+> r4 PP.<+> r5 PP.<+> r6 PP.<+> r7
396+
ppSC s imm r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 = s PP.<+> PP.viaShow imm PP.<+> r0 PP.<+> r1 PP.<+> r2 PP.<+> r3 PP.<+> r4 PP.<+> r5 PP.<+> r6 PP.<+> r7
397+
PP.<+> r8 PP.<+> r9 PP.<+> r10 PP.<+> r11 PP.<+> r12 PP.<+> r13 PP.<+> r14
397398
in case f of
398399
ARMSyscall imm r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 ->
399400
ppSC "arm_syscall" imm <$> pp r0 <*> pp r1 <*> pp r2 <*> pp r3 <*> pp r4 <*> pp r5 <*> pp r6 <*> pp r7 <*> pp r8 <*> pp r9 <*> pp r10 <*> pp r11 <*> pp r12 <*> pp r13 <*> pp r14
@@ -436,8 +437,9 @@ instance FCls.FoldableFC ARMPrimFn where
436437
instance FCls.TraversableFC ARMPrimFn where
437438
traverseFC go f =
438439
case f of
439-
ARMSyscall imm r0 r1 r2 r3 r4 r5 r6 r7 ->
440-
ARMSyscall imm <$> go r0 <*> go r1 <*> go r2 <*> go r3 <*> go r4 <*> go r5 <*> go r6 <*> go r7
440+
ARMSyscall imm r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 ->
441+
ARMSyscall imm <$> go r0 <*> go r1 <*> go r2 <*> go r3 <*> go r4 <*> go r5 <*> go r6
442+
<*> go r7 <*> go r8 <*> go r9 <*> go r10 <*> go r11 <*> go r12 <*> go r13 <*> go r14
441443
UDiv rep lhs rhs -> UDiv rep <$> go lhs <*> go rhs
442444
SDiv rep lhs rhs -> SDiv rep <$> go lhs <*> go rhs
443445
URem rep lhs rhs -> URem rep <$> go lhs <*> go rhs
@@ -567,8 +569,9 @@ rewritePrimFn :: ARMPrimFn (MC.Value ARM.AArch32 src) tp
567569
-> Rewriter ARM.AArch32 s src tgt (MC.Value ARM.AArch32 tgt tp)
568570
rewritePrimFn f =
569571
case f of
570-
ARMSyscall imm r0 r1 r2 r3 r4 r5 r6 r7 -> do
572+
ARMSyscall imm r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 -> do
571573
tgtFn <- ARMSyscall imm <$> rewriteValue r0 <*> rewriteValue r1 <*> rewriteValue r2 <*> rewriteValue r3 <*> rewriteValue r4 <*> rewriteValue r5 <*> rewriteValue r6 <*> rewriteValue r7
574+
<*> rewriteValue r8 <*> rewriteValue r9 <*> rewriteValue r10 <*> rewriteValue r11 <*> rewriteValue r12 <*> rewriteValue r13 <*> rewriteValue r14
572575
evalRewrittenArchFn tgtFn
573576
UDiv rep lhs rhs -> do
574577
tgtFn <- UDiv rep <$> rewriteValue lhs <*> rewriteValue rhs
@@ -728,6 +731,13 @@ t32InstructionMatcher (ThumbDis.Instruction opc operands) =
728731
<*> G.getRegVal ARMReg.r5
729732
<*> G.getRegVal ARMReg.r6
730733
<*> G.getRegVal ARMReg.r7
734+
<*> G.getRegVal ARMReg.r8
735+
<*> G.getRegVal ARMReg.r9
736+
<*> G.getRegVal ARMReg.r10
737+
<*> G.getRegVal ARMReg.r11
738+
<*> G.getRegVal ARMReg.r12
739+
<*> G.getRegVal ARMReg.r13
740+
<*> G.getRegVal ARMReg.r14
731741
res <- G.addExpr =<< evalArchFn sc
732742
-- res is a tuple of form (R1, R0). This is reversed from the
733743
-- user provided return Assignment of empty :> R0 :> R1 because

0 commit comments

Comments
 (0)