diff --git a/dynamo/dispatch.S b/dynamo/dispatch.S index 6d29b26..eb13184 100644 --- a/dynamo/dispatch.S +++ b/dynamo/dispatch.S @@ -14,7 +14,7 @@ dispatch: @ TODO: Load release format string BL printf @ TODO: POP the value from the link register to lo register - @ TODO: Branch and eXecute (BX) to location POP'd above + @ TODO: Branch and eXecute to location POP'd above get_msb: @ TODO: Evaluate if number is 0 @@ -32,7 +32,7 @@ return_to_launcher: @ TODO: Finish this label's functionality to return to the main @ loop (i.e. the launcher) in order to grab the next number @ from the array (it's 2 instructions) - @ HINT: This will likely require POP'ing a value and then BX to glo + @ HINT: This will likely require POP'ing a value and then branch and eXecute @ back to the original location; keep track of these values in the @ stack on paper -- it's the only way .data diff --git a/gatorgrade.yml b/gatorgrade.yml index faa5490..c101803 100644 --- a/gatorgrade.yml +++ b/gatorgrade.yml @@ -92,7 +92,7 @@ check: MatchFileRegex options: regex: '[bx|BX](\s|\t)+[a-zA-Z0-9_]+' - count: 6 + count: 5 exact: false - dynamo/dispatch.S: - description: dynamo/dispatch.S uses CMP instructions to evaluate conditional logic @@ -118,6 +118,70 @@ fragment: 'TODO' count: 0 exact: true +- sifter/program.S: + - description: sifter/program.S branches and links to sifter + category: ARMv6 Assembly + check: MatchFileRegex + options: + regex: '[bl|BL](\s|\t)+sifter' + count: 1 + exact: true +- sifter/sifter.S: + - description: sifter/sifter.S POPs from the stack + category: ARMv6 Assembly + check: MatchFileRegex + options: + regex: '[pop|POP](\s|\t)+\{' + count: 1 + exact: false +- sifter/sifter.S: + - description: sifter/sifter.S PUSHes from the stack + category: ARMv6 Assembly + check: MatchFileRegex + options: + regex: '[push|PUSH](\s|\t)+\{' + count: 1 + exact: false +- sifter/sifter.S: + - description: sifter/sifter.S uses BX to jump to appropriate point + category: ARMv6 Assembly + check: MatchFileRegex + options: + regex: '[bx|BX](\s|\t)+[a-zA-Z0-9]+' + count: 1 + exact: false +- sifter/sifter.S: + - description: sifter/sifter.S contains no TODOs + category: TODOs + check: MatchFileFragment + options: + fragment: 'TODO' + count: 0 + exact: true +- sifter/program.S: + - description: sifter/program.S contains no TODOs + category: TODOs + check: MatchFileFragment + options: + fragment: 'TODO' + count: 0 + exact: true +- sifter/sifter.S: + - description: sifter/sifter.S compares values to branch appropriately + category: ARMv6 Assembly + check: MatchFileRegex + options: + regex: 'CMP(\s|\t)+[r|R][0-7],(\s)+[r|R][0-7]' + count: 0 + exact: true +- sifter/sifter.S: + - description: sifter/sifter.S compares uses branch and link to return to appropriate point in previous subroutine + category: ARMv6 Assembly + check: MatchFileRegex + options: + regex: 'BL(\s|\t)+[a-zA-z0-9]+' + count: 3 + exact: false - docs/report.md: - description: docs/report.md contains no TODOs check: MatchFileFragment @@ -125,4 +189,4 @@ options: fragment: 'TODO' count: 0 - exact: true \ No newline at end of file + exact: true