Home | History | Annotate | Download | only in exp-sgcheck

Lines Matching refs:Addr

57 void preen_global_Invars ( Addr a, SizeT len ); /*fwds*/
93 static Word cmp_nonempty_intervals ( Addr a1, SizeT n1,
94 Addr a2, SizeT n2 ) {
108 static Bool is_subinterval_of ( Addr aBig, SizeT nBig,
109 Addr aSmall, SizeT nSmall ) {
115 static Addr Addr__min ( Addr a1, Addr a2 ) {
120 static Addr Addr__max ( Addr a1, Addr a2 ) {
382 static XArray* /* of StackBlock */ get_StackBlocks_for_IP ( Addr ip )
401 if (gb1->addr < gb2->addr) return -1;
402 if (gb1->addr > gb2->addr) return 1;
473 Addr addr;
487 VG_(printf)(" [%#lx,+%lu) descr=%p %s %lu\n", nd->addr, nd->szB,
497 return cmp_nonempty_intervals(sn1->addr, sn1->szB,
498 sn2->addr, sn2->szB);
502 static StackTreeNode* find_StackTreeNode ( WordFM* sitree, Addr a )
507 key.addr = a;
525 XArray* /* Addr */ bases,
548 Addr addr = *(Addr*)VG_(indexXA)( bases, i );
552 nyu->addr = addr;
556 if (debug) VG_(printf)("ADD %#lx %lu\n", addr, descr->szB);
572 XArray* /* Addr */ bases )
578 Addr addr = *(Addr*)VG_(indexXA)( bases, i );
579 StackTreeNode* nd = find_StackTreeNode(sitree, addr);
627 Addr addr; /* copied from .descr->addr */
636 nd->addr, nd->szB, nd->descr->name);
661 return cmp_nonempty_intervals( gn1->addr, gn1->szB,
662 gn2->addr, gn2->szB );
666 static GlobalTreeNode* find_GlobalTreeNode ( WordFM* gitree, Addr a )
670 key.addr = a;
696 nyu->addr = descr->addr;
712 if (nd->addr == nyu->addr && nd->szB == nyu->szB
759 Addr a, SizeT szB )
774 key.addr = a;
782 tl_assert(cmp_nonempty_intervals(a, szB, nd->addr, nd->szB) == 0);
823 Addr addr;
854 i->Inv.Stack0.addr, i->Inv.Stack0.szB);
858 i->Inv.StackN.nd->addr, i->Inv.StackN.nd->szB);
862 i->Inv.Global.nd->addr, i->Inv.Global.nd->szB);
880 return i1->Inv.Stack0.addr == i2->Inv.Stack0.addr
900 Invar* inv, Addr ea )
902 Addr block = 0;
913 block = inv->Inv.Stack0.addr;
917 block = inv->Inv.StackN.nd->addr;
921 block = inv->Inv.Global.nd->addr;
1001 Addr addr;
1024 VG_(printf)(" [%#lx,+%#lx) ", qc->elems[i].addr, qc->elems[i].szB);
1096 gb->szB, gb->addr, gb->soname, gb->name );
1110 void sg_new_mem_mmap( Addr a, SizeT len,
1116 void sg_new_mem_startup( Addr a, SizeT len,
1122 void sg_die_mem_munmap ( Addr a, SizeT len )
1141 tl_assert(nd->addr + nd->szB <= a
1142 || a + len <= nd->addr);
1184 Addr insn_addr; /* NB! zero means 'not in use' */
1198 Addr creation_sp;
1227 Addr sp_at_call;
1228 Addr fp_at_call;
1229 XArray* /* of Addr */ blocks_added_by_call;
1246 static void preen_global_Invar ( Invar* inv, Addr a, SizeT len )
1256 inv->Inv.Global.nd->addr,
1258 if (0 == cmp_nonempty_intervals(a, len, inv->Inv.Global.nd->addr,
1274 static void preen_global_Invars ( Addr a, SizeT len )
1315 inline static UWord compute_II_hash ( Addr ip, UWord htab_size ) {
1391 Addr ip,
1448 Addr ip,
1475 static Addr calculate_StackBlock_EA ( StackBlock* descr,
1476 Addr sp, Addr fp ) {
1486 static XArray* /* Addr */ calculate_StackBlock_EAs (
1488 Addr sp, Addr fp
1494 res = VG_(newXA)( sg_malloc, "di.sg_main.cSBE.1", sg_free, sizeof(Addr) );
1497 Addr ea = calculate_StackBlock_EA( blk, sp, fp );
1510 Addr ea, Addr sp, Addr fp,
1522 Addr bea = calculate_StackBlock_EA( descr, sp, fp );
1526 inv->Inv.Stack0.addr = bea;
1541 tl_assert(cache->elems[i].addr + cache->elems[i].szB != 0);
1543 if (is_subinterval_of(cache->elems[i].addr,
1566 if (nd && !is_subinterval_of(nd->addr, nd->szB, ea, szB)) {
1582 if (nd && !is_subinterval_of(nd->addr, nd->szB, ea, szB)) {
1599 { Addr toadd_addr = 0;
1611 toadd_addr = inv->Inv.Global.nd->addr;
1615 toadd_addr = inv->Inv.StackN.nd->addr;
1629 Addr gMin, gMax, sMin, sMax, uMin, uMax;
1631 sNegInf.addr = 0;
1633 sPosInf.addr = ~(UWord)0;
1635 gNegInf.addr = 0;
1637 gPosInf.addr = ~(UWord)0;
1639 sKey.addr = ea;
1641 gKey.addr = ea;
1680 tl_assert(!is_subinterval_of(ndFirst->addr,
1683 tl_assert(!is_subinterval_of(ndLast->addr,
1698 tl_assert(!is_subinterval_of(ndFirst->addr,
1701 tl_assert(!is_subinterval_of(ndLast->addr,
1707 sMin = sLB == &sNegInf ? 0 : (sLB->addr + sLB->szB);
1708 sMax = sUB == &sPosInf ? ~(UWord)0 : (sUB->addr - 1);
1709 gMin = gLB == &gNegInf ? 0 : (gLB->addr + gLB->szB);
1710 gMax = gUB == &gPosInf ? ~(UWord)0 : (gUB->addr - 1);
1749 cache->elems[ip].addr = toadd_addr;
1764 Addr ea, Addr sp, Addr fp,
1766 Word sszB, Addr ip, XArray* ip_frameBlocks )
1846 Addr sp_at_call_insn,
1847 Addr sp_post_call_insn,
1848 Addr fp_at_call_insn,
1849 Addr ip_post_call_insn,
1930 Addr ip = ip_post_call_insn;
1943 void helperc__new_frame ( Addr sp_post_call_insn,
1944 Addr fp_at_call_insn,
1945 Addr ip_post_call_insn,
1950 Addr sp_at_call_insn = sp_post_call_insn + sp_adjust;
1965 static void shadowStack_unwind ( ThreadId tid, Addr sp_now )
2119 IRExpr* addr,
2123 Addr curr_IP,
2129 tl_assert(isIRAtom(addr));
2132 tyAddr = typeOfIRExpr( bbOut->tyenv, addr );
2153 addr current_SP current_FP szB curr_IP frameBlocks
2158 = mkIRExprVec_6( addr,
2226 env->curr_IP = (Addr)st->Ist.IMark.addr;
2235 st->Ist.Store.addr,
2252 data->Iex.Load.addr,
2305 tl_assert(cas->addr != NULL);
2311 env, sbOut, cas->addr, dataSize, False/*!isStore*/,
2315 env, sbOut, cas->addr, dataSize, True/*isStore*/,
2489 void sg_die_mem_stack ( Addr old_SP, SizeT len ) {