11.1Salnsn/*	$NetBSD: sljit_machdep.h,v 1.1 2014/07/23 18:19:43 alnsn Exp $	*/
21.1Salnsn
31.1Salnsn/*-
41.1Salnsn * Copyright (c) 2014 Alexander Nasonov.
51.1Salnsn * All rights reserved.
61.1Salnsn *
71.1Salnsn * Redistribution and use in source and binary forms, with or without
81.1Salnsn * modification, are permitted provided that the following conditions
91.1Salnsn * are met:
101.1Salnsn * 1. Redistributions of source code must retain the above copyright
111.1Salnsn *    notice, this list of conditions and the following disclaimer.
121.1Salnsn * 2. Redistributions in binary form must reproduce the above copyright
131.1Salnsn *    notice, this list of conditions and the following disclaimer in the
141.1Salnsn *    documentation and/or other materials provided with the distribution.
151.1Salnsn *
161.1Salnsn * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
171.1Salnsn * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
181.1Salnsn * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
191.1Salnsn * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
201.1Salnsn * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
211.1Salnsn * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
221.1Salnsn * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
231.1Salnsn * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
241.1Salnsn * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
251.1Salnsn * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
261.1Salnsn * POSSIBILITY OF SUCH DAMAGE.
271.1Salnsn */
281.1Salnsn
291.1Salnsn#ifndef _ARM_SLJITARCH_H
301.1Salnsn#define _ARM_SLJITARCH_H
311.1Salnsn
321.1Salnsn#include <sys/cdefs.h>
331.1Salnsn
341.1Salnsn#ifdef _KERNEL
351.1Salnsn#include <machine/types.h>
361.1Salnsn#include <arm/cpufunc.h>
371.1Salnsn#else
381.1Salnsn#include <stddef.h>
391.1Salnsn#include <stdint.h>
401.1Salnsn#include <arm/sysarch.h>
411.1Salnsn#endif
421.1Salnsn
431.1Salnsn#if defined(_ARM_ARCH_T2)
441.1Salnsn#define SLJIT_CONFIG_ARM_THUMB2 1
451.1Salnsn#elif defined(_ARM_ARCH_7)
461.1Salnsn#define SLJIT_CONFIG_ARM_V7 1
471.1Salnsn#else
481.1Salnsn#define SLJIT_CONFIG_ARM_V5 1
491.1Salnsn#endif
501.1Salnsn
511.1Salnsn#ifdef _KERNEL
521.1Salnsn#define SLJIT_CACHE_FLUSH(from, to) \
531.1Salnsn	cpu_icache_sync_range((vaddr_t)(from), (vsize_t)((to) - (from)))
541.1Salnsn#else
551.1Salnsn#define SLJIT_CACHE_FLUSH(from, to) \
561.1Salnsn	(void)arm_sync_icache((uintptr_t)(from), (size_t)((to) - (from)))
571.1Salnsn#endif
581.1Salnsn
591.1Salnsn#endif
60