The Curious Engineer

All blogs / Assembly

Some Assembly Required

mindfruit.co.uk

AssemblyPerformance / optimizationCPU / microarchitectureLinux / Unix

’15’20’25
Posts
30 from 1 Jan 2012 to 17 Oct 2025
Posting
now and then
Kind
personal blog
Feed
https://mindfruit.co.uk/index.xml

2025 4

  1. Magic Buffers and io_uring Registered Buffers
  2. Shared Memory Tickerplant Log Files
  3. Kerberos Authentication For kdb+
  4. How to beat kdb+

2024 4

  1. A new Javascript IPC library for KDB
  2. Filtering Tickerplant Log Files During Replay
  3. Rewriting Tickerplant Logs On-The-Fly
  4. Streaming KDB IPC Data

2012 22

  1. Another vectorised bitwise-OR function for kdb+, AVX style
  2. A vectorised bitwise-OR function for kdb+
  3. Intel Performance Monitoring: Loose Ends
  4. Scripting MSR Performance Tests With kdb+: Part 2
  5. Scripting MSR Performance Tests with kdb+
  6. Fun With MSRs: Counting Performance Events On Intel
  7. Intel MSR Performance Monitoring Basics
  8. A Linux Kernel Module For Reading/Writing MSRs
  9. Interpreting readelf -r, in this case R_X86_64_PC32
  10. Relocations, Relocations
  11. The Trouble With FSUB
  12. A Caesar Cypher? Using SIMD? Why?
  13. The System V ABI “AMD64 Architecture Processor Supplement” stipulates that the stack should be aligned to a 16-byte boundary before calling a function. It provides the…
  14. It’s been a while since the last post, and I can confidently say that I understand one or two percent of the new (well, new to me) world of AVX instructions. There was the…
  15. Well, here it is, the ubiquitous “Hello, World!” example.
  16. If you’ve been inquisitive enough to read the “About” pages1 you’ll see that my day job involves writing software in Java. To that end, I’ve put together some code which…
  17. Hi there,
  18. This is now completely irrelevant as I’m now running this website using Quarto, which is completely brilliant. I thought I’d leave this in the catalogue as it was my first…
  19. I wrote a 32-bit assembly application a while ago which performed the simple task of printing out the program arguments and then the environment variables. Most people have…
  20. Atomic instructions are used by the OS to provide higher-level concurrency constructs such as locks and semaphores. Probably the best known is the cmpxchg instruction, which…
  21. I didn’t know how jump tables were assembled prior to starting this investigation, and as anyone interested in assembly code will testify, using Google doesn’t really help…
  22. So, given the ability to build a jump table for a range of inputs, it would be useful to transform a given input value onto one of the valid options for that table. If you…