aboutsummaryrefslogtreecommitdiff
path: root/sys/arm/include/asm.h
Commit message (Collapse)AuthorAgeFilesLines
* Also check if __ARM_ARCH_6KZ__ is defined when detecting when to use ARMv6Andrew Turner2018-07-181-0/+1
| | | | | | | | | instructions. There is some code that still uses the _ARM_ARCH_* macros. Sponsored by: DARPA, AFRL Notes: svn path=/head/; revision=336447
* sys: further adoption of SPDX licensing ID tags.Pedro F. Giffuni2017-11-201-0/+2
| | | | | | | | | | | | | | | | | Mainly focus on files that use BSD 3-Clause license. The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts. Special thanks to Wind River for providing access to "The Duke of Highlander" tool: an older (2014) run over FreeBSD tree was useful as a starting point. Notes: svn path=/head/; revision=326023
* Add the early hypervisor code needed on 32-bit ARMv7. This will be usedAndrew Turner2017-03-221-0/+9
| | | | | | | | | | when we bring in bhyve support. Submitted by: Mihai Carabas <mihai.carabas AT gmail.com> Differential Revision: https://reviews.freebsd.org/D10045 Notes: svn path=/head/; revision=315712
* Include machine/acle-compat.h in cdefs.h on arm if the compiler doesn'tIan Lepore2016-05-251-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | have ACLE support built in. The ACLE (ARM C Language Extensions) defines a set of standardized symbols which indicate the architecture version and features available. ACLE support is built in to modern compilers (both clang and gcc), but absent from gcc prior to 4.4. ARM (the company) provides the acle-compat.h header file to define the right symbols for older versions of gcc. Basically, acle-compat.h does for arm about the same thing cdefs.h does for freebsd: defines standardized macros that work no matter which compiler you use. If ARM hadn't provided this file we would have ended up with a big #ifdef __arm__ section in cdefs.h with our own compatibility shims. Remove #include <machine/acle-compat.h> from the zillion other places (an ever-growing list) that it appears. Since style(9) requires sys/types.h or sys/param.h early in the include list, and both of those lead to including cdefs.h, only a couple special cases still need to include acle-compat.h directly. Loves it: imp Notes: svn path=/head/; revision=300694
* Don't repeat the the word 'the'Eitan Adler2016-05-171-1/+1
| | | | | | | | | | (one manual change to fix grammar) Confirmed With: db Approved by: secteam (not really, but this is a comment typo fix) Notes: svn path=/head/; revision=300050
* ARM: Remove trailing whitespace from sys/arm/includeMichal Meloun2015-11-101-1/+1
| | | | | | | | | No functional changes. Approved by: kib (mentor) Notes: svn path=/head/; revision=290648
* Add missing stack unwind information to several assembly functions onRobert Watson2015-10-041-0/+2
| | | | | | | | | | | | | | | | | ARMv6/7: - Define _SAVE() macro to allow unwind data to be conditionally defined for ARM assembly code in the kernel. - Use _SAVE() to provide unwind information for bcopy_page(), and two (of many) instances of copyin() and copyout(). Reviewed by: andrew, imp MFC after: 3 days Sponsored by: University of Cambridge Notes: svn path=/head/; revision=288662
* We only support the ARM EABI in head, remove the check on __ARM_EABI__.Andrew Turner2015-05-311-1/+1
| | | | Notes: svn path=/head/; revision=283812
* Mark thumb entry points as such when building for thumb, otherwise markAndrew Turner2015-05-111-1/+7
| | | | | | | them as arm. Notes: svn path=/head/; revision=282778
* Use the Thumb compliant version of the add instruction. We can only useAndrew Turner2015-05-111-1/+1
| | | | | | | "add Rd, Rn, Rm" from within an IT (if-then) block. Notes: svn path=/head/; revision=282777
* Fix alignment directives in arm asm code after clang 3.5 import.Ian Lepore2015-01-021-3/+3
| | | | | | | | | | | The ancient gas we've been using interprets .align 0 as align to the minimum required alignment for the current section. Clang's integrated assembler interprets it as align to a byte boundary. Fortunately both assemblers interpret a non-zero value as align to 2^N so just make sure we have appropriate non-zero values everywhere. Notes: svn path=/head/; revision=276596
* Define a WFI macro that expands to the right form of wait-for-interruptIan Lepore2015-01-011-0/+3
| | | | | | | depending on the architecture. Notes: svn path=/head/; revision=276519
* Include acle-compat.h directly (we use its symbols) rather than gettingIan Lepore2014-12-261-0/+1
| | | | | | | it via sysreg.h. Notes: svn path=/head/; revision=276247
* Add macros for asm barrier instructions with arch-specific implementations.Ian Lepore2014-12-251-0/+15
| | | | Notes: svn path=/head/; revision=276212
* Create 'L' variants of all the ENTRY macros for file-static/local symbols.Ian Lepore2014-12-251-4/+15
| | | | | | | | | If it seems like this is getting out of hand, I quite agree. I wonder if it's safe, here in the 21st century, to lose the distinction between C and ASM symbols? Notes: svn path=/head/; revision=276204
* Fix the GLOBAL macro so it works (upper vs lowercase X), use it in _EENTRY.Ian Lepore2014-12-251-2/+3
| | | | Notes: svn path=/head/; revision=276203
* Stylish changes... put tabs where they need to be in macros, move linesIan Lepore2014-12-251-19/+19
| | | | | | | | | | around so that related things are more grouped together, rewrite comments. No functional changes, this is all so that the functional changes in the next commit will stand out. Notes: svn path=/head/; revision=276202
* Remove _PROF_PROLOGUE from the EENTRY() macros. These macros defineIan Lepore2014-12-251-4/+4
| | | | | | | | | | | 'extra' entry points which are nested within or provide a synonym name for another function. It's most likely not safe to be messing with the IP and LR registers at anything other than the primary entry point to a function. Anywhere beyond initial function entry, those registers may be in use as scratch or variable registers. Notes: svn path=/head/; revision=276198
* Pull in the NetBSD global offset table handling code. Clang 3.5 createsAndrew Turner2014-12-011-3/+9
| | | | | | | | | | relocations the linker complains about. Obtained from: NetBSD MFC after: 1 Week Notes: svn path=/head/; revision=275378
* Update _ENTRY to use _EENTRY to reduce the common code.Andrew Turner2014-11-291-14/+14
| | | | Notes: svn path=/head/; revision=275264
* Revert r274772: it is not valid on MIPSEd Maste2014-11-251-2/+2
| | | | | | | Reported by: sbruno Notes: svn path=/head/; revision=275004
* Use canonical __PIC__ flagEd Maste2014-11-211-2/+2
| | | | | | | | | | | It is automatically set when -fPIC is passed to the compiler. Reviewed by: dim, kib Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D1179 Notes: svn path=/head/; revision=274772
* Unify interrupts bit definition and usage. While here remove PSR_C_bit.Andrew Turner2014-09-101-3/+0
| | | | | | | | | Submitted by: Svatopluk Kraus <onwahe at gmail.com>, Michal Meloun <meloun at miracle.cz> Differential Revision: https://reviews.freebsd.org/D754 Notes: svn path=/head/; revision=271398
* Add more register values to armreg.h and remove CPU_CONTROL_32BP_ENABLEAndrew Turner2014-09-101-3/+0
| | | | | | | | | from asm.h as they were already defined in armreg.h. Submitted by: Michal Meloun <meloun at miracle.cz> Notes: svn path=/head/; revision=271394
* Do not generate unwind info in asm functions if _STANDALONE is defined.Ian Lepore2014-09-011-1/+1
| | | | | | | | The .fnend op causes the assembler to emit RELOC references to unwind support functions that don't exist in libstand. Notes: svn path=/head/; revision=270930
* Fix unwind-info errors in our hand-written arm assembler code.Ian Lepore2014-08-011-1/+18
| | | | | | | | | | | | | | | | | | | | | | We have functions nested within functions, and places where we start a function then never end it, we just jump to the middle of something else. We tried to express this with nested ENTRY()/END() macros (which result in .fnstart and .fnend directives), but it turns out there's no way to express that nesting in ARM EHABI unwind info, and newer tools treat multiple .fnstart directives without an intervening .fnend as an error. These changes introduce two new macros, EENTRY() and EEND(). EENTRY() creates a global label you can call/jump to just like ENTRY(), but it doesn't emit a .fnstart. EEND() is a no-op that just documents the conceptual endpoint that matches up with the same-named EENTRY(). This is based on patches submitted by Stepan Dyatkovskiy, but I made some changes and added the EEND() stuff, so blame any problems on me. Submitted by: Stepan Dyatkovskiy <stpworld@narod.ru> Notes: svn path=/head/; revision=269390
* Reduce the difference to NetBSD.Andrew Turner2013-06-071-25/+27
| | | | | | | | | | | | | | | * Stop pretending we support anything other than ELF by removing code surrounded by #ifdef __ELF__ ... #endif. * Remove _JB_MAGIC_SETJMP and _JB_MAGIC__SETJMP, they are defined in setjmp.h, which is able to be included from asm. * Fix the spelling of dependent. * Rename END _END and add END and ASEND to complement ENTRY and ASENTRY respectively * Add macros to simplify accessing the Global Offset Table, some of these will be used in the upcoming update to the setjmp functions. Notes: svn path=/head/; revision=251510
* Add an END macro to ARM. This is mostly used to tell gas where the boundsAndrew Turner2013-03-161-1/+13
| | | | | | | of the functions are when creating the EABI unwind tables. Notes: svn path=/head/; revision=248361
* Merging projects/armv6, part 1Oleksandr Tymoshenko2012-08-151-19/+26
| | | | | | | | | | | | Cummulative patch of changes that are not vendor-specific: - ARMv6 and ARMv7 architecture support - ARM SMP support - VFP/Neon support - ARM Generic Interrupt Controller driver - Simplification of startup code for all platforms Notes: svn path=/head/; revision=239268
* Define _ARM_ARCH_5E too, so that we know if pld/strd/ldrd are available.Olivier Houchard2007-10-131-1/+6
| | | | | | | MFC After: 3 days Notes: svn path=/head/; revision=172613
* Use __mcount() instead of _mcount() to reduce diffs with NetBSD.Olivier Houchard2007-05-191-1/+1
| | | | Notes: svn path=/head/; revision=169768
* Remove dead code, already defined in sys/cdef.hOlivier Houchard2006-08-301-9/+0
| | | | | | | Spotted out by: bde Notes: svn path=/head/; revision=161735
* Start all license statements with /*-Warner Losh2005-01-051-1/+1
| | | | Notes: svn path=/head/; revision=139735
* Import a RET macro, that will use bx if the arch supports it.Olivier Houchard2004-11-091-0/+36
| | | | | | | Obtained from: NetBSD Notes: svn path=/head/; revision=137462
* We are using _mcount, not __mcount.Olivier Houchard2004-09-231-6/+1
| | | | | | | Remove the !__ELF__ case. Notes: svn path=/head/; revision=135659
* Import FreeBSD/arm kernel bits.Olivier Houchard2004-05-141-0/+147
It only supports sa1110 (on simics) right now, but xscale support should come soon. Some of the initial work has been provided by : Stephane Potvin <sepotvin at videotron.ca> Most of this comes from NetBSD. Notes: svn path=/head/; revision=129198