Mercurial > repos > tabletprog
diff modules/x86.tp @ 195:7856f0916549
Add save il instruction to save callee saved registers in function prolog
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 26 Aug 2013 21:04:44 -0700 |
parents | 30bed95cbb18 |
children | 3606a7cb3999 |
line wrap: on
line diff
--- a/modules/x86.tp Mon Aug 26 20:42:20 2013 -0700 +++ b/modules/x86.tp Mon Aug 26 21:04:44 2013 -0700 @@ -518,7 +518,7 @@ regs <- reglists get: curlist len <- regs length while: { found < 0 && cur < len } do: { - bit <- lshift: 1 by: cur + bit <- lshift: 1 by: ((regs get: cur) num) if: (_used and bit) = 0 { found <- cur foundlist <- regs @@ -586,7 +586,8 @@ needSaveProlog <- { retval <- #[] foreach: _calleesave :idx reg { - if: (_usedAllTime and (lshift: 1 by: (reg num))) != 0 { + bit <- lshift: 1 by: (reg num) + if: (_usedAllTime and bit) != 0 { retval append: reg } }