Commit 6fe3b9fd by Claudiu Zissulescu Committed by Claudiu Zissulescu

[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
parent e0be3321
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.
(small_data_pattern): Likewise.
(arc_rewrite_small_data): Likewise.
......
......@@ -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)); \
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment