commit 95f5b525d2eecb5ea90a056cff47f3bf946540aa from: rsc date: Sun Jan 23 22:51:28 2005 UTC changes mainly for threading support commit - 4a727cddffde2f877ddfb5a5514411c86f35140a commit + 95f5b525d2eecb5ea90a056cff47f3bf946540aa blob - 1e49453034933cbf91e788d0b7a0f39eccfe77c9 blob + 4e2741d1b6bfb27bf9c674cd160001b82c1d1e58 --- acid/port +++ acid/port @@ -406,6 +406,29 @@ defn asm(addr) defn casm() { asm(lasmaddr); +} + +defn xasm(addr) +{ + local bound; + + bound = fnbound(addr); + + addr = fmt(addr, 'i'); + loop 1,_asmlines do { + print(fmt(addr, 'a'), " ", fmt(addr, 'X')); + print("\t", *addr++, "\n"); + if bound != {} && addr > bound[1] then { + lasmaddr = addr; + return {}; + } + } + lasmaddr = addr; +} + +defn xcasm() +{ + xasm(lasmaddr); } defn win() @@ -611,8 +634,57 @@ defn acidtypes() l = tail l; } includepipe(syms); + } +} + +defn getregs() +{ + local regs, l; + + regs = {}; + l = registers; + while l != {} do { + regs = append regs, var(l[0]); + l = tail l; + } + return regs; +} + +defn setregs(regs) +{ + local l; + + l = registers; + while l != {} do { + var(l[0]) = regs[0]; + l = tail l; + regs = tail regs; } + return regs; } +defn resetregs() +{ + local l; + + l = registers; + while l != {} do { + var(l[0]) = register(l[0]); + l = tail l; + } +} + +defn clearregs() +{ + local l; + + l = registers; + while l != {} do { + var(l[0]) = refconst(~0); + l = tail l; + } +} + progargs=""; print(acidfile); +