[ARC] Clear the instruction cache using syscalls.
Clear the instruction cache from `beg' to `end'. This makes an inline system call to SYS_cacheflush. gcc/ 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/linux.h (CLEAR_INSN_CACHE): Define. From-SVN: r259764
This commit is contained in:
parent
e0be3321b9
commit
6fe3b9fdd5
@ -1,3 +1,7 @@
|
||||
2018-04-30 Claudiu Zissulescu <claziss@synopsys.com>
|
||||
|
||||
* config/arc/linux.h (CLEAR_INSN_CACHE): Define.
|
||||
|
||||
2018-04-30 Claudiu Zissulescu <claziss@synopsys.com>
|
||||
|
||||
* config/arc/arc-protos.h (prepare_extend_operands): Remove.
|
||||
|
@ -109,3 +109,17 @@ along with GCC; see the file COPYING3. If not see
|
||||
/* Build attribute: procedure call standard. */
|
||||
#undef ATTRIBUTE_PCS
|
||||
#define ATTRIBUTE_PCS 3
|
||||
|
||||
/* Clear the instruction cache from `beg' to `end'. This makes an
|
||||
inline system call to SYS_cacheflush. */
|
||||
#undef CLEAR_INSN_CACHE
|
||||
#define CLEAR_INSN_CACHE(beg, end) \
|
||||
{ \
|
||||
register unsigned long _beg __asm ("r0") = (unsigned long) (beg); \
|
||||
register unsigned long _end __asm ("r1") = (unsigned long) (end); \
|
||||
register unsigned long _xtr __asm ("r2") = 0; \
|
||||
register unsigned long _scno __asm ("r8") = 244; \
|
||||
__asm __volatile ("trap_s 0 ; sys_cache_sync" \
|
||||
: "=r" (_beg) \
|
||||
: "0" (_beg), "r" (_end), "r" (_xtr), "r" (_scno)); \
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user