Arm Community
Site
Search
User
Site
Search
User
Arm Developer
Documentation
Learning Paths
On-Demand Videos
Groups
Arm Ambassadors
Education Hub
Open Source Software and Platforms
Research Collaboration and Enablement
Semiconductor Education Alliance Hub
Forums
AI forum
Architectures and Processors forum
Arm Development Platforms forum
Arm Development Studio forum
Automotive forum
Compilers and Libraries forum
Embedded and Microcontrollers forum
High Performance Computing (HPC) forum
Internet of Things (IoT) forum
Keil forum
Laptops and Desktops forum
Mobile, Graphics, and Gaming forum
Morello forum
Operating Systems forum
Servers and Cloud Computing forum
SoC Design and Simulation forum
SystemReady Forum
Blogs
AI blog
Announcements
Architectures and Processors blog
Automotive blog
Embedded and Microcontrollers blog
Internet of Things (IoT) blog
Laptops and Desktops blog
Mobile, Graphics, and Gaming blog
Operating Systems blog
Servers and Cloud Computing blog
SoC Design and Simulation blog
Tools, Software and IDEs blog
Support
Arm Support Services
Documentation
Downloads
Training
Arm Approved program
Arm Design Reviews
Community Help
More
Cancel
Announcements
AI
Automotive
Healthcare
HPC
Infrastructure
Innovation
IoT
Machine Learning
Mobile
Smart Homes
Works on Arm
More blogs
Follow us
Arm Blog
By date
By view count
By comment count
Descending
Ascending
Locks, SWPs and two Smoking Barriers (Part 2)
David Rusling
In the
last article
, I explained how to modify SWP code to make use of compiler intrinsics. Using intrinsics hides the underlying detail needed to use the load and store exclusive instructions
(LDREX…
September 11, 2013
Locks, SWPs and two Smoking Barriers
David Rusling
Before
ARMv6
, the main synchronisation mechanism was the
SWP instruction
. SWP has two aspects, in a
uniprocessor system
it allows the read and write operations not to be interrupted between them. In…
September 11, 2013
How to Call a Function from Arm Assembler
Dave Butcher
Once you move beyond short sequences of optimised Arm assembler, the next likely step will be to managing more complex, optimised routines using macros and functions.
September 11, 2013
"Hello World" in Assembly
Jacob Bramley
This post aims to provide a simple introduction to Arm assembly language.
September 11, 2013
Caches and Self-Modifying Code
Jacob Bramley
Ideally caches act as magic make-it-go-faster logic sitting between processor cores and memory banks. But there are cases where cache behaviour must be considered to get the desired result.
September 11, 2013
Coding for Neon - Part 1: Load and Stores
Martyn
This is the first part of a series on how to write SIMD code for Neon using assembly language. It covers getting started with Neon, using it efficiently, and more.
September 11, 2013
Why is Open Source Important?
David Rusling
Sitting in the airport at the end of a week's business trip to the US, I reflected back on the week. It turned out that my colleague on this trip has an even worse sense of direction than myself.…
September 11, 2013
Coding for Neon - Part 2: Dealing With Leftovers
Martyn
In this post, we deal with an often encountered problem: input data that is not a multiple of the length of the vectors you want to process.
September 11, 2013
Condition Codes 1: Condition Flags and Codes
Jacob Bramley
Arm implements conditional execution using a set of flags which store state information about a previous operation. in this post I shed some light on the operation of these flags.
September 11, 2013
How to Load Constants in Assembly for Arm Architecture
Rodolph Perfetta
This post will show you how we can deal with these limitations and how the latest revision of the Arm architecture (Armv7) provides a simple and efficient solution.
September 11, 2013
Coding for Neon - Part 3: Matrix Multiplication
Martyn
In this post, we will look at how to efficiently multiply four-by-four matrices together, an operation frequently used in the world of 3D graphics.
September 11, 2013
Detecting Overflow from MUL
Jacob Bramley
This blog is a tutorial on detecting overflow from MUL.
September 11, 2013
Cortex-A15 to A5: Software compatibility from Superphone to Feature phone
James McNiven
It was always about the code (and where it would be used!) When I was a software developer I would often find that the project team I was in would try to guess how many devices the code would eventually…
September 11, 2013
Condition Codes 3: Conditional Execution in Thumb-2
Jacob Bramley
Armv8 deprecates the use of the it instruction to make anything other than a single 16-bit instruction conditional. This affects many of the examples in this post.
September 11, 2013
Coding for Neon - Part 4: Shifting Left and Right
Martyn
This article introduces the shifting operations provided by Neon, and shows how they can be used to convert image data between commonly used color depths.
September 11, 2013
Valgrind 3.6.0 for ARM-Linux
Guest Partner Blogger
Version 3.6.0 of Valgrind was released a couple of weeks ago. The largest change this release is the addition of support for Linux running on ARM. Learn more about the release in this blog.
September 11, 2013
Memory access ordering - an introduction
Leif Lindholm
In this post, I will be introducing a few concepts and explain the reasons behind them. In future posts, I will follow up with practical examples.
September 11, 2013
Memory access ordering part 2: Barriers and the Linux kernel
Leif Lindholm
My previous post provided an introduction to memory access ordering. It did not however, provide any solution to the problem. This post covers barrier use within the Linux kernel.
September 11, 2013
<
>