diff options
| author | 2023-02-12 20:37:45 +0000 | |
|---|---|---|
| committer | 2023-02-12 20:37:45 +0000 | |
| commit | 304e5d63c57512cfa32de26fcf4915b45e7c5b0a (patch) | |
| tree | 8fe934df3e6a6e7768c2607681ab786b5347f242 /asm/ffi.py | |
| parent | more loop tests (diff) | |
syscall test
Diffstat (limited to 'asm/ffi.py')
| -rw-r--r-- | asm/ffi.py | 13 |
1 files changed, 11 insertions, 2 deletions
@@ -89,7 +89,7 @@ class Environment: return creole.from_2c(self.cenv.reg[reg]) else: return self.cenv.reg[reg] - def getstk(self, stk): + def getstk(self, stk, signed=False): """ Get the value at the stack position. :param reg: Register number. @@ -98,7 +98,16 @@ class Environment: """ if stk >= self.cenv.stklen or stk < 0: raise StackOverflowError(r) - return creole.from_2c(self.cenv.stk[stk]) + if signed: + return creole.from_2c(self.cenv.stk[stk]) + else: + return self.cenv.stk[stk] + + def pop(self): + if stk == 0: + return None + stk = stk - 1 + return self.cenv.stk[stk] def __init__(self, prog=None, reglen=32, lablen=32, stklen=4096, prglen=4096): cenv = CEnv() |
