Skip to content

Instantly share code, notes, and snippets.

Testing libjpeg-turbo master 70327296e21343ed991a291601f9621edeb37003 on a softfloat little endian MIPS74K hardware:
<< MIPSELo32 >> OpenWrt ~ # cd libjpeg-turbo/
<< MIPSELo32 >> OpenWrt ~/libjpeg-turbo # mkdir build
<< MIPSELo32 >> OpenWrt ~/libjpeg-turbo # cd build/
<< MIPSELo32 >> OpenWrt ~/libjpeg-turbo/build # cmake ..
-- The C compiler identification is GNU 7.2.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
@ssvb
ssvb / gist:6f57b3654fc224a895d96e730196b47b
Created February 16, 2020 12:22
libjpeg-turbo floating point MIPS functions
$ cat test.c
typedef short JCOEF;
typedef unsigned char JSAMPLE;
typedef unsigned int JDIMENSION;
typedef JCOEF *JCOEFPTR; /* useful in a couple of places */
#define GETJSAMPLE(value) ((int)(value))
#define CENTERJSAMPLE 128
#define FAST_FLOAT float
Allwinner H64, TOC0 style boot, FEL button pressed
01400000: 00010003
01400004: 00020003
01400008: 00030003
0140000c: 00040003
01400010: 00110003
01400014: 00120003
01400018: 00130003
0140001c: 00140003
@ssvb
ssvb / gist:8cfc073e4f61bb52be3ab06ac025de80
Created November 28, 2016 12:37
Running 'busybox free' in adb shell on Allwinner A13 tablet with 512MB RAM
root@android:/ # busybox free
total used free shared buffers
Mem: 362016 280000 82016 0 4656
-/+ buffers: 275344 86672
Swap: 0 0 0
@ssvb
ssvb / gist:38bec10f9b49806bf4fb7881dfc5241a
Created July 29, 2016 14:34
Revert 1a83fb4 commit in U-Boot v2016.09-rc1 for Pine64
$ diff --unified=20 u-boot.orig-v2016.09-rc1.disasm u-boot.revert-1a83fb4.disasm
--- u-boot.orig-v2016.09-rc1.disasm 2016-07-29 17:28:31.000000000 +0300
+++ u-boot.revert-1a83fb4.disasm 2016-07-29 17:28:41.000000000 +0300
@@ -1,22 +1,22 @@
-u-boot.orig: file format elf64-littleaarch64
+u-boot: file format elf64-littleaarch64
Disassembly of section .text:
From aaa3428877546e7dff686e4e526f886becc59323 Mon Sep 17 00:00:00 2001
From: Siarhei Siamashka <siarhei.siamashka@gmail.com>
Date: Mon, 25 Jul 2016 19:43:58 +0300
Subject: [PATCH] musl nothreshold malloc
---
src/malloc/malloc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/malloc/malloc.c b/src/malloc/malloc.c
From 44eac78981c07cf2f73a338d3e34eed685f6309d Mon Sep 17 00:00:00 2001
From: Siarhei Siamashka <siarhei.siamashka@gmail.com>
Date: Mon, 25 Jul 2016 17:42:19 +0300
Subject: [PATCH] OpenRISC support for GCC 5.3.0
This is the difference between dfad8a2635433704c74c70db28c3559867c2e362
from https://github.com/openrisc/or1k-gcc.git and vanilla GCC 5.3.0
---
ChangeLog.or1k | 8 +
config/picflag.m4 | 3 +
@ssvb
ssvb / gist:84bf3b34d0906fbd43b3261837546f24
Created June 11, 2016 18:42
Allwinner A64 BROM, initialization of the boot media identifier
-----------------------------------------------------------------------
49f0: e3a00001 mov r0, #1
49f4: e5cb0028 strb r0, [fp, #40] ; 0x28
-----------------------------------------------------------------------
4e5c: e3a00801 mov r0, #65536 ; 0x10000
4e60: e58d0000 str r0, [sp]
[...]
sunxi-tools 9e7f3a3a93290654c6a30a157484c46d37686d20
$ arm-linux-gnueabihf-gcc -v
Using built-in specs.
COLLECT_GCC=/usr/x86_64-pc-linux-gnu/arm-linux-gnueabihf/gcc-bin/4.7.4/arm-linux-gnueabihf-gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/arm-linux-gnueabihf/4.7.4/lto-wrapper
Target: arm-linux-gnueabihf
Configured with: /var/tmp/portage/cross-arm-linux-gnueabihf/gcc-4.7.4/work/gcc-4.7.4/configure --host=x86_64-pc-linux-gnu --target=arm-linux-gnueabihf --build=x86_64-pc-linux-gnu --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/arm-linux-gnueabihf/gcc-bin/4.7.4 --includedir=/usr/lib/gcc/arm-linux-gnueabihf/4.7.4/include --datadir=/usr/share/gcc-data/arm-linux-gnueabihf/4.7.4 --mandir=/usr/share/gcc-data/arm-linux-gnueabihf/4.7.4/man --infodir=/usr/share/gcc-data/arm-linux-gnueabihf/4.7.4/info --with-gxx-include-dir=/usr/lib/gcc/arm-linux-gnueabihf/4.7.4/include/g++-v4 --with-python-dir=/share/gcc-data/arm-linux-gnueabihf/4.7.4/python --enable-languages=c,c++ --enable-obsolete --enable-secureplt --disable-werror -
#!/usr/bin/env ruby
data = []
File.open(ARGV[0]).each_byte {|b| data.push(b) }
(0..(data.size - 1)).step(4) {|i|
x0 = data[i + 0]
x1 = data[i + 1]
x2 = data[i + 2]
x3 = data[i + 3]