Analyzing QEMU's GD32VF103 Boot Flow

After QEMU starts, it does not execute the guest program’s first instruction immediately. Instead, it first runs the reset vector code segment that Machine sets during initializati

2024-07-30 · 8 min · zevorn

Notes on Porting PLCT Lab's qemu-nuclei_gd32vf103 to QEMU v9.0.2

Current result: The following notes describe the problems solved by the key patches: patch Fix DTS compilation warnings This patch mainly fixes the DTS compilation warnings encount

2024-07-28 · 5 min · zevorn

Trimming QEMU from Scratch

To make it easier to study QEMU’s TCG module, I tried trimming the QEMU source tree from scratch and keeping only the TCG related modules. By pruning the source tree, you can gain

2024-06-17 · 1 min · zevorn

A Brief Analysis of x86 Micro-Operations (uops)

Understanding uops μops refers to uop, short for Micro operation, literally translated as “micro operation” in Chinese. The micro part can be replaced by the Greek letter μ, and op

2024-06-05 · 3 min · zevorn

Analyzing Common C++ Performance Bottlenecks with Intel® VTune™ Profiler (Windows)

Use Cases and Prerequisites This article shows how to use Intel® VTune™ Profiler on Windows to identify and analyze performance bottlenecks in serial and parallel applications. We

2024-06-01 · 13 min · zevorn

AsmJit Quick Start Guide

Basic Introduction AsmJit is a complete JIT (just in time, runtime) assembler for C++. It can generate native code compatible with x86/x64 and AArch64 architectures. It not only su

2024-05-27 · 7 min · zevorn

Simulating AArch64 FCMP Instructions on x86

The most efficient way to emulate an architecture is to get as close as possible to a 1:1 instruction mapping, where one source architecture instruction corresponds to one target a

2024-05-23 · 5 min · zevorn

LLVM 3.0 JIT Bug in External Symbol Resolution During Code-Block Relocation

In LLVM 3.0 JIT on MinGW64 / MSCV64, when handling external symbol addresses outside the 32 bit range (within a 2 GB window before or after the current address) during code block r

2024-05-22 · 2 min · zevorn

Tutorial: Creating Unions in IDA Pro

IDA treats a union as a special kind of struct, so you need to create it on IDA’s Structures page: Step 1: Open the Structures page: Step 2: Press Insert and check union : A union

2024-05-21 · 1 min · zevorn

Three Easy Steps to Customize GDB

GDB, short for GNU Debugger, is part of the GNU project. It is a powerful and widely used command line debugger designed for Unix and Unix like operating systems, and it is one of

2024-05-19 · 7 min · zevorn