• Using the Stack in AArch64: Implementing Push and Pop

    Jacob Bramley
    Jacob Bramley
    The most appropriate method of implementing push and pop operations depends on the nature of the engine used. I consider a number of possible solutions for the AArch64 port of Google V8 JavaScript engine…
    • November 23, 2015
  • Using the Stack in AArch32 and AArch64

    Jacob Bramley
    Jacob Bramley
    When reading assembly-level code for any of the AArch32 or AArch64 instruction sets, you may have noticed that the stack pointer has various alignment and usage restrictions. These restrictions are part…
    • November 19, 2015
  • Annotating ARM Streamline Profiles of Mozilla Browsers from JavaScript

    Jacob Bramley
    Jacob Bramley
    Note: This was originally published on the 14th of February 2012 at blogs.arm.com.I have recently been using the ARM Streamline profiler to study the behaviour of Mozilla Mobile Firefox (code-named Fennec…
    • September 25, 2013
  • Condition Codes 4: Floating-Point Comparisons Using VFP

    Jacob Bramley
    Jacob Bramley
    This post is part of a series:Condition Codes 1: Condition Flags and CodesCondition Codes 2: Conditional ExecutionCondition Codes 3: Conditional Execution in Thumb-2Condition Codes 4: Floating-Point Comparison…
    • September 25, 2013
  • Branch and Call Sequences Explained

    Jacob Bramley
    Jacob Bramley
    In this blog we run through branch and call sequences to explain what they are and how to use them as well as interworking branches between Arm and Thumb Code.
    • September 25, 2013
  • Page Colouring on ARMv6 (and a bit on ARMv7)

    Jacob Bramley
    Jacob Bramley
    Page colouring is sometimes used as an optimization but as a result of the cache architecture some ARMv6 processors actually require the allocator use page colouring. This article will explain why the…
    • September 11, 2013
  • Condition Codes 2: Conditional Execution

    Jacob Bramley
    Jacob Bramley
    This post is part of a series:Condition Codes 1: Condition Flags and CodesCondition Codes 2: Conditional ExecutionCondition Codes 3: Conditional Execution in Thumb-2Condition Codes 4: Floating-Point Comparison…
    • September 11, 2013
  • Condition Codes 3: Conditional Execution in Thumb-2

    Jacob Bramley
    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
  • Detecting Overflow from MUL

    Jacob Bramley
    Jacob Bramley
    This blog is a tutorial on detecting overflow from MUL.
    • September 11, 2013
  • Condition Codes 1: Condition Flags and Codes

    Jacob Bramley
    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
  • Caches and Self-Modifying Code

    Jacob Bramley
    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
  • "Hello World" in Assembly

    Jacob Bramley
    Jacob Bramley
    This post aims to provide a simple introduction to Arm assembly language.
    • September 11, 2013