/[smarc]/smarc/src/vmachine/registers.h
ViewVC logotype

Diff of /smarc/src/vmachine/registers.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by misto, Tue Dec 3 15:36:16 2002 UTC revision 1.3 by misto, Sat Dec 28 12:45:29 2002 UTC
# Line 36  Line 36 
36  // out[2] - R  // out[2] - R
37  class registers : public circuit {  class registers : public circuit {
38          private:          private:
39                    const int win_num;
40                  vector<unsigned long> regs;                  vector<unsigned long> regs;
41                  instr_word iw;                  instr_word iw;
42          public:          public:
43                  registers( int nin , int nout )                  registers( int nin , int nout )
44                          : circuit(nin, nout), regs(512) {};                          : circuit(nin, nout), win_num(32),
45                  void process(int /*CWP*/) {                                  regs(8 + 16*win_num) {};
46                          int src1 = 0, src2 = 0, dst = 0;                  void set_reg( int CWP, int n, unsigned long val );
47                          iw = get_in(0);                  unsigned long get_reg( int CWP, int n );
48                    void process_out(int CWP);
49                          if (iw.format == instr_word::primary_reg ||                  void process_in(int CWP);
                                         iw.format == instr_word::primary_imm )  
                                 src1 = iw.src1;  
                         if (iw.format == instr_word::primary_reg )  
                                 src2 = iw.src2;  
                         if (iw.format == instr_word::primary_reg ||  
                                         iw.format == instr_word::primary_imm ||  
                                         iw.format == instr_word::sethi_format )  
                                 dst = iw.dst;  
   
                         set_out( 0, regs[src1] );  
                         set_out( 1, regs[src2] );  
                         set_out( 2, regs[dst] );  
                           
                         int in = get_in(2);  
                         regs[in] = get_in(1);  
                 }  
50                    
51  };  };
52    

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26