mirror of
https://github.com/open-goal/jak-project
synced 2026-05-23 23:05:43 -04:00
recognize dotimes (#310)
This commit is contained in:
@@ -650,13 +650,7 @@ TEST_F(FormRegressionTest, ExprRef) {
|
||||
std::string type = "(function object int object)";
|
||||
|
||||
std::string expected =
|
||||
"(begin\n"
|
||||
" (let\n"
|
||||
" ((v1-0 0))\n"
|
||||
" (while (< v1-0 arg1) (nop!) (nop!) (set! arg0 (cdr arg0)) (+! v1-0 1))\n"
|
||||
" )\n"
|
||||
" (car arg0)\n"
|
||||
" )";
|
||||
"(begin (dotimes (v1-0 arg1) (nop!) (nop!) (set! arg0 (cdr arg0))) (car arg0))";
|
||||
test_with_expr(func, type, expected, true, "");
|
||||
}
|
||||
|
||||
@@ -1862,15 +1856,11 @@ TEST_F(FormRegressionTest, ExprMemCopy) {
|
||||
std::string expected =
|
||||
"(let\n"
|
||||
" ((v0-0 arg0))\n"
|
||||
" (let\n"
|
||||
" ((v1-0 0))\n"
|
||||
" (while\n"
|
||||
" (< v1-0 arg2)\n"
|
||||
" (set! (-> (the-as (pointer int8) arg0)) (-> (the-as (pointer uint8) arg1)))\n"
|
||||
" (&+! arg0 1)\n"
|
||||
" (&+! arg1 1)\n"
|
||||
" (+! v1-0 1)\n"
|
||||
" )\n"
|
||||
" (dotimes\n"
|
||||
" (v1-0 arg2)\n"
|
||||
" (set! (-> (the-as (pointer int8) arg0)) (-> (the-as (pointer uint8) arg1)))\n"
|
||||
" (&+! arg0 1)\n"
|
||||
" (&+! arg1 1)\n"
|
||||
" )\n"
|
||||
" v0-0\n"
|
||||
" )";
|
||||
@@ -1905,15 +1895,11 @@ TEST_F(FormRegressionTest, ExprMemSet32) {
|
||||
std::string expected =
|
||||
"(let\n"
|
||||
" ((v0-0 arg0))\n"
|
||||
" (let\n"
|
||||
" ((v1-0 0))\n"
|
||||
" (while\n"
|
||||
" (< v1-0 arg1)\n"
|
||||
" (set! (-> (the-as (pointer int32) arg0)) arg2)\n"
|
||||
" (&+! arg0 4)\n"
|
||||
" (nop!)\n"
|
||||
" (+! v1-0 1)\n"
|
||||
" )\n"
|
||||
" (dotimes\n"
|
||||
" (v1-0 arg1)\n"
|
||||
" (set! (-> (the-as (pointer int32) arg0)) arg2)\n"
|
||||
" (&+! arg0 4)\n"
|
||||
" (nop!)\n"
|
||||
" )\n"
|
||||
" v0-0\n"
|
||||
" )";
|
||||
@@ -1951,21 +1937,17 @@ TEST_F(FormRegressionTest, ExprMemOr) {
|
||||
std::string expected =
|
||||
"(let\n"
|
||||
" ((v0-0 arg0))\n"
|
||||
" (let\n"
|
||||
" ((v1-0 0))\n"
|
||||
" (while\n"
|
||||
" (< v1-0 arg2)\n"
|
||||
" (set!\n"
|
||||
" (-> (the-as (pointer int8) arg0))\n"
|
||||
" (logior\n"
|
||||
" (-> (the-as (pointer uint8) arg0))\n"
|
||||
" (-> (the-as (pointer uint8) arg1))\n"
|
||||
" )\n"
|
||||
" (dotimes\n"
|
||||
" (v1-0 arg2)\n"
|
||||
" (set!\n"
|
||||
" (-> (the-as (pointer int8) arg0))\n"
|
||||
" (logior\n"
|
||||
" (-> (the-as (pointer uint8) arg0))\n"
|
||||
" (-> (the-as (pointer uint8) arg1))\n"
|
||||
" )\n"
|
||||
" (&+! arg0 1)\n"
|
||||
" (&+! arg1 1)\n"
|
||||
" (+! v1-0 1)\n"
|
||||
" )\n"
|
||||
" (&+! arg0 1)\n"
|
||||
" (&+! arg1 1)\n"
|
||||
" )\n"
|
||||
" v0-0\n"
|
||||
" )";
|
||||
@@ -2171,14 +2153,10 @@ TEST_F(FormRegressionTest, ExprPrintTreeBitmask) {
|
||||
|
||||
std::string expected =
|
||||
"(begin\n"
|
||||
" (let\n"
|
||||
" ((s4-0 0))\n"
|
||||
" (while\n"
|
||||
" (< s4-0 arg1)\n"
|
||||
" (if (zero? (logand arg0 1)) (format #t \" \") (format #t \"| \"))\n"
|
||||
" (set! arg0 (shr arg0 1))\n"
|
||||
" (+! s4-0 1)\n"
|
||||
" )\n"
|
||||
" (dotimes\n"
|
||||
" (s4-0 arg1)\n"
|
||||
" (if (zero? (logand arg0 1)) (format #t \" \") (format #t \"| \"))\n"
|
||||
" (set! arg0 (shr arg0 1))\n"
|
||||
" )\n"
|
||||
" #f\n"
|
||||
" )";
|
||||
@@ -2494,15 +2472,13 @@ TEST_F(FormRegressionTest, StringLt) {
|
||||
" ((method-of-type string length) arg1)\n"
|
||||
" )\n"
|
||||
" )\n"
|
||||
" (v1-4 0)\n"
|
||||
" )\n"
|
||||
" (while\n"
|
||||
" (< v1-4 s4-1)\n"
|
||||
" (dotimes\n"
|
||||
" (v1-4 s4-1)\n"
|
||||
" (cond\n"
|
||||
" ((< (-> arg0 data v1-4) (-> arg1 data v1-4)) (return #t))\n"
|
||||
" ((< (-> arg1 data v1-4) (-> arg0 data v1-4)) (return #f))\n"
|
||||
" )\n"
|
||||
" (+! v1-4 1)\n"
|
||||
" )\n"
|
||||
" )\n"
|
||||
" #f\n"
|
||||
|
||||
Reference in New Issue
Block a user