Skip to content

Instantly share code, notes, and snippets.

View vtlmks's full-sized avatar

Peter Fors vtlmks

  • Sweden
View GitHub Profile
@vtlmks
vtlmks / tscqpc.h
Created October 10, 2023 03:35 — forked from pmttavara/tscqpc.h
Obtain RDTSC frequency on Win32 and Linux
// SPDX-FileCopyrightText: © 2022 Phillip Trudeau-Tavara <pmttavara@protonmail.com>
// SPDX-License-Identifier: 0BSD
// https://hero.handmade.network/forums/code-discussion/t/7485-queryperformancefrequency_returning_10mhz_bug/2
// https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/tlfs/timers#partition-reference-tsc-mechanism
#include <stdbool.h>
#include <stdint.h>
#define WIN32_LEAN_AND_MEAN
@vtlmks
vtlmks / incbin.c
Created October 4, 2023 00:47 — forked from mmozeiko/incbin.c
Include binary file with gcc/clang
#include <stdio.h>
#define STR2(x) #x
#define STR(x) STR2(x)
#ifdef _WIN32
#define INCBIN_SECTION ".rdata, \"dr\""
#else
#define INCBIN_SECTION ".rodata"
#endif
@vtlmks
vtlmks / x11_opengl.c
Created October 14, 2022 03:25 — forked from mmozeiko/x11_opengl.c
setting up and using modern OpenGL 4.5 core context on X11 with EGL
// example how to set up OpenGL core context on X11 with EGL
// and use basic functionality of OpenGL 4.5 version
// to compile on Ubuntu first install following packages: build-essential libx11-dev libgl-dev libegl-dev, then run:
// gcc x11_opengl.c -o x11_opengl -lm -lX11 -lEGL
// important extension functionality used here:
// (4.3) KHR_debug: https://www.khronos.org/registry/OpenGL/extensions/KHR/KHR_debug.txt
// (4.5) ARB_direct_state_access: https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_direct_state_access.txt
// (4.1) ARB_separate_shader_objects: https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_separate_shader_objects.txt
memcmp Cld
Mov r10, rdi ; save
Mov r11, rsi ; save
Mov rdi, rcx
Mov rsi, rdx
Mov rcx, r8
Mov rdx, r8
Xor eax, eax
Cmpsb
@vtlmks
vtlmks / gist:2a93af9574e5357512501e888e6f5eaa
Created April 4, 2019 18:30
memcmp in x64 assembler, should return 0 on equal, or +-
memcmp Cld
Mov r10, rdi ; save
Mov r11, rsi ; save
Mov rdi, rcx
Mov rsi, rdx
Mov rcx, r8
Mov rdx, r8
Xor eax, eax
Cmpsb
@vtlmks
vtlmks / gist:59bda17ab8af92326cdb8600527a57de
Created August 4, 2018 18:14
sed command to add line to config.gcc..
sed -i '/x86_64-\*-elf\*)/a \\ttmake_file=\"\${tmake_file\} i386/t-x86_64-elf\"' gcc-8.1.0/gcc/config.gcc
#include "dynamicarray.h"
using namespace std;
DynamicArray::DynamicArray() {
DynamicArray::DynamicArray(5);
}
DynamicArray::DynamicArray(int initSize) {
size = initSize;