tchanges mainly for threading support - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 95f5b525d2eecb5ea90a056cff47f3bf946540aa
 (DIR) parent 4a727cddffde2f877ddfb5a5514411c86f35140a
 (HTM) Author: rsc <devnull@localhost>
       Date:   Sun, 23 Jan 2005 22:51:28 +0000
       
       changes mainly for threading support
       
       Diffstat:
         M acid/port                           |      72 +++++++++++++++++++++++++++++++
       
       1 file changed, 72 insertions(+), 0 deletions(-)
       ---
 (DIR) diff --git a/acid/port b/acid/port
       t@@ -408,6 +408,29 @@ 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()
        {
                local npid, estr;
       t@@ -614,5 +637,54 @@ defn acidtypes()
                }
        }
        
       +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);
       +