stack
This commit is contained in:
parent
ed03945762
commit
08b931e911
20
vm/pc/main.c
20
vm/pc/main.c
|
@ -12,17 +12,23 @@ static ushort *fwprog;
|
|||
|
||||
ushort bget(ctx_t *ctx)
|
||||
{
|
||||
if (rip % 2) {
|
||||
_except(ctx, E_ALI, "Misaligned RIP register: 0x%016lX",
|
||||
rip);
|
||||
ulong addr = rip + cr1;
|
||||
|
||||
|
||||
if (addr % 2) {
|
||||
_except(ctx, E_ALI, "Misaligned RIP and/or CR1: "
|
||||
"rip=0x%lX cr1=0x%lX",
|
||||
rip, cr1);
|
||||
}
|
||||
|
||||
if (addr2real(rip) >= ctx->mz) {
|
||||
_except(ctx, E_ACC, "Executing out of memory: 0x%016lX",
|
||||
rip);
|
||||
|
||||
if (addr2real(addr) >= ctx->mz) {
|
||||
_except(ctx, E_ACC, "Executing out of memory: "
|
||||
"rip=0x%lX cr1=0x%lX",
|
||||
rip, cr1);
|
||||
}
|
||||
|
||||
ushort c = ctx->mp[addr2real(rip)];
|
||||
ushort c = ctx->mp[addr2real(addr)];
|
||||
|
||||
rip += 2;
|
||||
|
||||
|
|
Loading…
Reference in New Issue