Displaying 1 result from an estimated 1 matches for "foo_lock".
2018 Dec 04
2
Incorrect placement of an instruction after PostRAScheduler pass
...lt;<<<<<
1c0: e1a00005 mov r0, r5
1c4: e3a01001 mov r1, #1
This is the relevant C code:
if (__builtin_expect((lock_flag == LOCK),1)) { // First
comparison using lock_flag, which is a function argument and an enum
with values 0, 1, 2.
lock=foo_lock(vaddr);
}
old = func(flags, vaddr, data);
if (__builtin_expect((lock_flag == LOCK),1)) { // Second
comparison using lock_flag
foo_unlock(lock);
}
The inline asm comes from the below function that is called within func().
static inline void write64 (volat...