#include static void schedule(void); //////// cut here ///////////// extern int __get_TR_was_miscompiled; static inline unsigned int get_TR(void) __attribute__ ((pure)); static inline unsigned int get_TR(void) { unsigned tr; __asm__("str %w0" : "=g" (tr) : "m" (__get_TR_was_miscompiled)); return tr; } //////// cut here /////////// int main(void) { int cpu1, cpu2, cpu3, cpu4; cpu1 = get_TR(); cpu2 = get_TR(); schedule(); cpu3 = get_TR(); cpu4 = get_TR(); printf("the cpu values were %d %d %d %d.\n", cpu1, cpu2, cpu3, cpu4); return 0; } static int cpu; static void schedule(void) { cpu = 2; printf("schedule called .\n"); }