Skip to content

Instantly share code, notes, and snippets.

@vddvss
vddvss / optimization-hack.patch
Created October 18, 2019 00:47
llvm codegen issue workaround
--- chromium-77.0.3865.120/third_party/ffmpeg/libavformat/utils.c.orig 2019-10-10 14:55:27.000000000 -0400
+++ chromium-77.0.3865.120/third_party/ffmpeg/libavformat/utils.c 2019-10-17 15:39:59.495117121 -0400
@@ -3316,7 +3316,7 @@
int ff_rfps_add_frame(AVFormatContext *ic, AVStream *st, int64_t ts)
{
- int i, j;
+ volatile int i, j;
int64_t last = st->info->last_dts;
@vddvss
vddvss / test.c
Created October 18, 2019 00:53
c reproducer
#include <stdio.h>
#include <math.h>
struct rect {
double x, y, w, h;
};
__attribute__((noinline))
void test(struct rect *res, const struct rect *a, const struct rect *b)
{
@vddvss
vddvss / test.ll
Created October 18, 2019 01:04
ir test case
target triple = "powerpc64le-unknown-linux-gnu"
%rect = type { double, double, double, double }
; Function Attrs: noinline
define void @test(%rect* %res, %rect* %a, %rect* %b) {
%a_vec_cast = bitcast %rect* %a to <2 x double>*
%a_vec = load <2 x double>, <2 x double>* %a_vec_cast
%b_vec_cast = bitcast %rect* %b to <2 x double>*
%b_vec = load <2 x double>, <2 x double>* %b_vec_cast
@vddvss
vddvss / 0001-fix-optimization.patch
Created October 19, 2019 20:09
llvm optimization fix
From 8a774f05eb559437b2ac40dbe62f2b78ac9287a9 Mon Sep 17 00:00:00 2001
From: Colin Samples <colin.samples+git@gmail.com>
Date: Sat, 19 Oct 2019 15:57:08 -0400
Subject: [PATCH] fix optimization
---
llvm/lib/Target/PowerPC/PPCMIPeephole.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/llvm/lib/Target/PowerPC/PPCMIPeephole.cpp b/llvm/lib/Target/PowerPC/PPCMIPeephole.cpp
@vddvss
vddvss / 0001-Workaround-rustc-1.37-code-generation-issue-on-ppc.patch
Created October 20, 2019 01:56
Workaround-rustc-1.37-code-generation-issue-on-ppc.patch
From 934fbe8f307027dd54d6c89e1c713cd59d02b820 Mon Sep 17 00:00:00 2001
From: Colin Samples <colin.samples+git@gmail.com>
Date: Sat, 21 Sep 2019 14:00:21 -0400
Subject: [PATCH] Workaround rustc 1.37 code generation issue on ppc
This patch works around an issue where rustc v1.37 emits incorrect code for
rsvg_internal::rect::intersect(), resulting in an incorrect x coordinate for the
intersection rectangle, which trips an assertion in librsvg. This issue does not
occur with rustc v1.36, v1.38 beta, or v1.39 nightly.
@vddvss
vddvss / 0001-PPC-Add-support-for-lrint-and-llrint-builtins.patch
Created October 20, 2019 18:14
[PATCH] [PPC] Add support for lrint and llrint builtins
From 7507b39dd7894ea89f30cec259c593ace1d8f01c Mon Sep 17 00:00:00 2001
From: Colin Samples <colin.samples+git@gmail.com>
Date: Sun, 20 Oct 2019 12:20:55 -0400
Subject: [PATCH] [PPC] Add support for lrint and llrint builtins
This commit adds support for use of lrint and llrint builtins on PPC and fixes a
code generation issue.
r361875 added support for lrint and llrint builtins to LLVM; however, the series
only added support for AArch64, so on PPC ll/lrint was emitted as a function
@vddvss
vddvss / cpf-yarn.patch
Created October 27, 2019 22:44
cpf patch
diff --git a/swiftshader/0001-Yarn-Add-implementation-for-ppc64-ELFv2.patch b/swiftshader/0001-Yarn-Add-implementation-for-ppc64-ELFv2.patch
index 061fc2b..59e9f6d 100644
--- a/swiftshader/0001-Yarn-Add-implementation-for-ppc64-ELFv2.patch
+++ b/swiftshader/0001-Yarn-Add-implementation-for-ppc64-ELFv2.patch
@@ -14,20 +14,25 @@ Subject: [PATCH] Yarn: Add implementation for ppc64 ELFv2
create mode 100644 src/Yarn/OSFiber_asm_ppc64.h
create mode 100644 src/Yarn/OSFiber_ppc64.c
-diff --git a/src/Yarn/BUILD.gn b/src/Yarn/BUILD.gn
-index 3236f13a4..87c116871 100644
@vddvss
vddvss / yarn.patch
Created October 28, 2019 00:40
yarn patch
# Adapted from: https://github.com/google/marl/commit/d40d56e180b3bcaa738996a3ce14c5a1ba04de20
--- chromium-78.0.3904.70/third_party/swiftshader/src/Yarn/BUILD.gn.orig 2019-10-27 19:03:12.508014905 -0400
+++ chromium-78.0.3904.70/third_party/swiftshader/src/Yarn/BUILD.gn 2019-10-27 19:07:30.113411755 -0400
@@ -49,6 +49,7 @@ swiftshader_source_set("Yarn_headers") {
"OSFiber_asm_arm.h",
"OSFiber_asm_x64.h",
"OSFiber_asm_x86.h",
+ "OSFiber_asm_ppc64.h",
]
}
== Prune Binaries
ERROR: 10 files could not be pruned.
DEBUG: Files could not be pruned:
tools/skia_goldctl/goldctl
chrome/browser/resources/chromeos/camera/src/sounds/tick.ogg
third_party/pdfium/testing/resources/pixel/bug_512557.in
build/linux/sysroot_scripts/debian-archive-sid-stable.gpg
third_party/boringssl/src/ssl/test/runner/ed25519/testdata/sign.input.gz
third_party/llvm/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-ppc64
third_party/pdfium/testing/resources/pixel/bug_304.in
@vddvss
vddvss / gl-bug-workaround.patch
Last active February 8, 2020 17:49
gl bug workaround
--- chromium-80.0.3987.87.orig/third_party/angle/src/compiler/translator/InfoSink.h
+++ chromium-80.0.3987.87/third_party/angle/src/compiler/translator/InfoSink.h
@@ -92,7 +92,16 @@ class TInfoSinkBase
stream.precision(8);
stream << f;
}
- sink.append(stream.str());
+
+ // Hack to work around a bug where negative floating point values
+ // are rendered like '.0.5' instead of '-0.5'