Beispiel #1
0
// initializes only the first access; #bytes is an expression & not a prefetch
BPatch_memoryAccess::BPatch_memoryAccess(const void *buf, int _sz, Address _addr,
        bool _isLoad, bool _isStore, long _imm_s, int _ra_s, int _rb_s,
        long _imm_c, int _ra_c, int _rb_c) :
    BPatch_instruction(buf, _sz, _addr)
{
    start = new BPatch_addrSpec_NP[nmaxacc_NP];
    count = new BPatch_countSpec_NP[nmaxacc_NP];
    set1st(_isLoad, _isStore, _imm_s, _ra_s, _rb_s, _imm_c, _ra_c, _rb_c);
}
Beispiel #2
0
  // initializes only the first access; #bytes is an expression & not a prefetch
BPatch_memoryAccess::BPatch_memoryAccess(internal_instruction *insn, Address _addr,
	       bool _isLoad, bool _isStore, long _imm_s, int _ra_s, int _rb_s,
	       long _imm_c, int _ra_c, int _rb_c) : 
   BPatch_instruction(insn, _addr)
{
   start = new BPatch_addrSpec_NP[nmaxacc_NP];
   count = new BPatch_countSpec_NP[nmaxacc_NP];
   set1st(_isLoad, _isStore, _imm_s, _ra_s, _rb_s, _imm_c, _ra_c, _rb_c);
}
Beispiel #3
0
// initializes only the first access; #bytes is a constant
BPatch_memoryAccess::BPatch_memoryAccess(const void *buf, int _sz, Address _addr,
        bool _isLoad, bool _isStore, unsigned int _bytes,
        long _imm, int _ra, int _rb, unsigned int _scale,
        int _cond, bool _nt) :
    BPatch_instruction(buf, _sz, _addr)
{
    start = new BPatch_addrSpec_NP[nmaxacc_NP];
    count = new BPatch_countSpec_NP[nmaxacc_NP];
    set1st(_isLoad, _isStore, _imm, _ra, _rb, _bytes, -1, -1, _scale, -1, _cond,
           _nt);
}
Beispiel #4
0
// initializes only the first access; #bytes is an expression w/scale
BPatch_memoryAccess::BPatch_memoryAccess(internal_instruction *insn, Address _addr,
                    bool _isLoad, bool _isStore, long _imm_s, int _ra_s, int _rb_s,
                    unsigned int _scale_s, long _imm_c, int _ra_c, int _rb_c, 
                    unsigned int _scale_c, int _cond, bool _nt, int _preFcn) : 
   BPatch_instruction(insn, _addr)
{
   start = new BPatch_addrSpec_NP[nmaxacc_NP];
   count = new BPatch_countSpec_NP[nmaxacc_NP];
   set1st(_isLoad, _isStore, _imm_s, _ra_s, _rb_s, _scale_s, _imm_c, _ra_c, 
          _rb_c, _scale_c, _preFcn, _cond, _nt);
}
Beispiel #5
0
// initializes only the first access; #bytes is an expression
BPatch_memoryAccess::BPatch_memoryAccess(const void *buf, int _sz, Address _addr,
        bool _isLoad, bool _isStore, bool _isPrefetch, long _imm_s,
        int _ra_s, int _rb_s, long _imm_c, int _ra_c, int _rb_c,
        unsigned short _preFcn) :
    BPatch_instruction(buf, _sz, _addr)
{
    start = new BPatch_addrSpec_NP[nmaxacc_NP];
    count = new BPatch_countSpec_NP[nmaxacc_NP];
    assert(_isPrefetch);
    set1st(_isLoad, _isStore, _imm_s, _ra_s, _rb_s, _imm_c, _ra_c, _rb_c,
           0, _preFcn);
}
Beispiel #6
0
// initializes both accesses; #bytes is a constant
BPatch_memoryAccess::BPatch_memoryAccess(internal_instruction *insn, Address _addr,
		      bool _isLoad, bool _isStore, unsigned int _bytes,
            long _imm, int _ra, int _rb, unsigned int _scale,
            bool _isLoad2, bool _isStore2, unsigned int _bytes2,
            long _imm2, int _ra2, int _rb2, unsigned int _scale2) : 
   BPatch_instruction(insn, _addr)
{
   start = new BPatch_addrSpec_NP[nmaxacc_NP];
   count = new BPatch_countSpec_NP[nmaxacc_NP];
   set1st(_isLoad, _isStore, _imm, _ra, _rb, _bytes, -1, -1, _scale);
   set2nd(_isLoad2, _isStore2, _bytes2, _imm2, _ra2, _rb2, _scale2);
}
Beispiel #7
0
// initializes both accesses; #bytes is an expression & not a prefetch
BPatch_memoryAccess::BPatch_memoryAccess(const void *buf, int _sz, Address _addr,
        bool _isLoad, bool _isStore, long _imm_s, int _ra_s, int _rb_s,
        unsigned int _scale_s, long _imm_c, int _ra_c, int _rb_c,
        unsigned int _scale_c, bool _isLoad2, bool _isStore2, long _imm2_s,
        int _ra2_s, int _rb2_s, unsigned int _scale2_s, long _imm2_c,
        int _ra2_c, int _rb2_c, unsigned int _scale2_c) :
    BPatch_instruction(buf, _sz, _addr)
{
    start = new BPatch_addrSpec_NP[nmaxacc_NP];
    count = new BPatch_countSpec_NP[nmaxacc_NP];
    set1st(_isLoad, _isStore,
           _imm_s, _ra_s, _rb_s, _scale_s,
           _imm_c, _ra_c, _rb_c, _scale_c,
           -1, -1, false);
    set2nd(_isLoad2, _isStore2,
           _imm2_s, _ra2_s, _rb2_s, _scale2_s,
           _imm2_c, _ra2_c, _rb2_c, _scale2_c,
           -1, false);
}