[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: clear_cache on Alpha architecture not implemented?



On 05/04/12 06:39, Camm Maguire wrote:
> I'm wondering if there is a simple configure time test to detect when
> this has been fixed.  If I just aborted using __builtin___clear_cache if
> it is in fact a noop on alpha, ppc, ppc64, and ia64, would this suffice?

I can't think of any simple, portable test.

The only reliable test would be to actually attempt to flush a cache,
with some detectable way to see this didn't happen.  This tends to get 
highly target specific quickly...

A pattern that would at least apply to 32-bit insn word risc might be

  int test_routine[2] = {
     "mov 1, v0"
     "ret"
  };
  #define call_test ((int (*)(void))test_routine)
  int main()
  {
    call_test();  // make sure the routine is in icache
    test_routine[0] = "mov 0, v0";
    __builtin__clear_cache(test_routine, test_routine+2);
    return call_test();
  }

for target-dependent values of those instructions.


r~


Reply to: