-diff -urN a/Makefile b/Makefile
+diff -ruN a/Makefile b/Makefile
--- a/Makefile 1969-12-31 17:00:00.000000000 -0700
-+++ b/Makefile 2019-10-14 10:54:47.354841430 -0600
-@@ -0,0 +1,363 @@
++++ b/Makefile 2020-03-12 17:08:48.095517451 -0600
+@@ -0,0 +1,368 @@
+
+_ARCH := $(shell uname -m)
+ARCH_I32 := $(shell expr "x$(_ARCH)" : 'xi[346]86.*')
+
+STATIC_LIB=$(BUILD)/src/libdav1d.a
+SHARED_LIB=$(BUILD)/src/libdav1d.so
-+DEFS= -DNDEBUG -D_FILE_OFFSET_BITS=64 -D_POSIX_C_SOURCE=200112L
++DEFS= -DNDEBUG -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
+FUZZ= -DDAV1D_MT_FUZZING
+
+BLD_INCL= $(DEFS) -I. -Isrc -Iinclude/dav1d -Iinclude \
+ -fomit-frame-pointer \
+ -ffast-math \
+ -fPIC \
-+ -mpreferred-stack-boundary=5 \
++ -mpreferred-stack-boundary=6 \
+ -MD -MQ $@ -MF $@.d \
+
+SHA_OPTS=\
+ -shared \
+ -fPIC \
+ -Wl,--start-group \
-+ -Wl,-soname,libdav1d.so.2 \
++ -Wl,-soname,libdav1d.so.4 \
+ -Wl,--end-group \
+ -pthread \
+
+
+# nasm
+NASM_OBJS=$(call any,$(NASM_BLD), \
++ cpuid.obj \
++ msac.obj \
+ cdef.obj \
+ film_grain.obj \
+ ipred.obj \
+ itx.obj \
-+ cdef_sse.obj \
-+ ipred_ssse3.obj \
+ loopfilter.obj \
+ looprestoration.obj \
+ mc.obj \
++ cdef_sse.obj \
++ film_grain_ssse3.obj \
++ ipred_ssse3.obj \
+ itx_ssse3.obj \
-+ looprestoration_ssse3.obj \
+ loopfilter_ssse3.obj \
-+ mc_ssse3.obj \
-+ cpuid.obj \
-+ msac.obj )
++ looprestoration_ssse3.obj \
++ mc_ssse3.obj)
+
+$(NASM_BLD)/%.obj: src/x86/%.asm
+ $(NASM) -f $(ASM_ARCH) \
+ dequant_tables.o \
+ getbits.o \
+ intra_edge.o \
++ itx_1d.o \
+ lf_mask.o \
+ log.o \
+ msac.o \
+ tables.o \
+ warpmv.o \
+ wedge.o \
-+ x86/cpu.c.o)
++ x86/cpu.c.o \
++ x86/msac_init.c.o)
+$(SRC_BLD)/%.o: src/%.c
+ $(CC_CC) $(BLD_INCL) -pthread -o $@ -c $<
+$(SRC_BLD)/x86/%.c.o: src/x86/%.c
+ echo >> $@ "#define HAVE_ASM 1"
+ echo >> $@ "#define HAVE_POSIX_MEMALIGN 1"
+ echo >> $@ "#define HAVE_UNISTD_H 1"
-+ echo >> $@ "#define STACK_ALIGNMENT 32"
++ echo >> $@ "#define STACK_ALIGNMENT 64"
+
+$(BUILD)/config.asm:
+ echo > $@ "%define ARCH_X86_32 $(ARCH_X86_32)"
+ echo >> $@ "%define ARCH_X86_64 $(ARCH_X86_64)"
+ echo >> $@ "%define PIC 1"
-+ echo >> $@ "%define STACK_ALIGNMENT 32"
++ echo >> $@ "%define STACK_ALIGNMENT 64"
+
+$(BUILD)/include/vcs_version.h:
+ mkdir -p $(BUILD)/include
-+ echo > $@ "#define DAV1D_VERSION \"0.5.0\""
++ echo > $@ "#define DAV1D_VERSION \"0.6.0\""
+
+$(BUILD)/include/dav1d/version.h:
+ mkdir -p $(BUILD)/include/dav1d
+ input/annexb.o \
+ input/ivf.o \
+ input/input.o \
++ input/section5.o \
+ output/md5.o \
+ output/null.o \
+ output/output.o \
+ output/yuv.o)
+
+DAV1DPLAY_OBJS=$(call any,$(TOOLS_BLD),\
-+ dav1dplay.o \
++ ../examples/dav1dplay.o \
+ input/annexb.o \
++ input/section5.o \
+ input/ivf.o \
+ input/input.o)
+
+
+$(OBJDIR):
+ mkdir -p $@/include/dav1d \
-+ $(BUILD)/src $(BUILD)/include \
++ $(BUILD)/src $(BUILD)/include $(BUILD)/examples \
+ $(ENTRY_BLD) $(NASM_BLD) \
+ $(SRC_BLD)/x86 $(BIT8_BLD)/x86 $(BIT16_BLD)/x86 \
+ $(TOOLS_BLD) $(TOOLS_BLD)/input $(TOOLS_BLD)/output \