void testBP(void) { char above[ABOVE_MEM_SIZE]; int f; char below[BELOW_MEM_SIZE]; memset(above, ABOVE_MEM_TEST_SIZE, sizeof(above)); memset(below, BELOW_MEM_TEST_SIZE, sizeof(below)); ASSERT(verifyBlock(above, ABOVE_MEM_TEST_SIZE, sizeof(above))); ASSERT(verifyBlock(below, BELOW_MEM_TEST_SIZE, sizeof(below))); f = spoil(-5); spoil(f); ASSERT(verifyBlock(above, ABOVE_MEM_TEST_SIZE, sizeof(above))); ASSERT(verifyBlock(below, BELOW_MEM_TEST_SIZE, sizeof(below))); }
//---------------------------------------------------------------------- void jump_pattern_t::check_spoiled(void) { uint32 F = cmd.get_canon_feature(); if ( F != 0 ) { for ( int i=0; i < UA_MAXOP; i++ ) { if ( (F & (CF_CHG1<<i)) == 0 ) continue; op_t &x = cmd.Operands[i]; switch ( x.type ) { case o_reg: spoil(x.reg); break; } } } }