Alignment refers to the practice of placing data or code at memory addresses that are multiples of a specific value, typically a power of 2. This is typically done to meet the requirements of the prog| MaskRay
In my previous post, LLVM integrated assembler: Improving expressions and relocations delved into enhancements made to LLVM's expression resolving and relocation generation. This post covers recent re| MaskRay
In my previous assembler posts, I've discussed improvements on expression resolving and relocation generation. Now, let's turn our attention to recent refinements within section fragments. Understandi| MaskRay
For years, I've been involved in updating LLVM's MC layer. A recent journey led me to eliminate the FK_PCRel_ fixup kinds: MCFixup: Remove FK_PCRel_ The generic FK_Data_ fixup kinds handle both absolute and PC-relative fixups. ELFObjectWriter sets IsPCRel to true for `.long foo-.`, so the backend has to handle PC-relative FK_Data_. However, the existence of FK_PCRel_ encouraged backends to implement it as a separate fixup type, leading to redundant and error-prone code. Removing FK_PCRel_ sim...| MaskRay
Both compiler developers and security researchers have built disassemblers. They often prioritize different aspects. Compiler toolchains, benefiting from direct contributions from CPU vendors, tend to offer more accurate and robust decoding. Security-focused tools, on the other hand, often excel in user interface design. For quick disassembly tasks, rizin provides a convenient command-line interface.| MaskRay
In my previous post, LLVM integrated assembler: Improving MCExpr and MCValue delved into enhancements made to LLVM's internal MCExpr and MCValue representations. This post covers recent refinements to| MaskRay
Once you get used to working with gofmt on a daily basis, you want to have it everywhere. I have been writing a good amount of assembler for Go, and I was getting annoyed by not having similar functionality for assembler. This lead to having to manually align and re-align comments. I also often encountered...| defer time.Sleep()
Update 2015: This is a re-post of a 2010 article I wrote for the Rawstudio blog, which at the time of writing is off-line. L1 cache sizes have not changed at all in 5 years. SSE 4.1 is more commonplace for flooring, but SSE2 is still needed for fallback. Intel has gather/scatter instructions on their...| defer time.Sleep()
I have written a Discussion Piece about how it could be possible to implement assembler intrinsics in Go based on an experiment I have been working on the past week. The goal of the experiment was to see if intrinsics are feasible within the Go language without breaking the language. It is my impression that…| defer time.Sleep()
Embedded tutorial covering cross-compilation process for an embedded application running on stm32f407 microcontroller with GNU ARM Embedded Toolchain| Actuated Robots
We’ve created two new web-based interfaces for our cyanIIde Apple II webassembly emulator! The first allows you to load and edit Applesoft BASIC programs using a CodeMirror-based editor with syntax highlighting and colon line separation. [more...]| Paleotronic Magazine
"Diving into the nitty-gritty of assembly: A programmer's adventure!"| Graham King