;
; jiss2int-64.asm - accurate integer IDCT (64-bit SSE2)
;
; Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
; Copyright 2009 D. R. Commander
;
; Based on
; x86 SIMD extension for IJG JPEG library
; Copyright (C) 1999-2006, MIYASAKA Masaru.
; For conditions of distribution and use, see copyright notice in jsimdext.inc
;
; This file should be assembled with NASM (Netwide Assembler),
; can *not* be assembled with Microsoft's MASM or any compatible
; assembler (including Borland's Turbo Assembler).
; NASM is available from http://nasm.sourceforge.net/ or
; http://sourceforge.net/project/showfiles.php?group_id=6208
;
; This file contains a slow-but-accurate integer implementation of the
; inverse DCT (Discrete Cosine Transform). The following code is based
; directly on the IJG's original jidctint.c; see the jidctint.c for
; more details.
;
; [TAB8]

%include "jsimdext.inc"
%include "jdct.inc"

; --------------------------------------------------------------------------

%define CONST_BITS	13
%define PASS1_BITS	2

%define DESCALE_P1	(CONST_BITS-PASS1_BITS)
%define DESCALE_P2	(CONST_BITS+PASS1_BITS+3)

%if CONST_BITS == 13
F_0_298	equ	 2446		; FIX(0.298631336)
F_0_390	equ	 3196		; FIX(0.390180644)
F_0_541	equ	 4433		; FIX(0.541196100)
F_0_765	equ	 6270		; FIX(0.765366865)
F_0_899	equ	 7373		; FIX(0.899976223)
F_1_175	equ	 9633		; FIX(1.175875602)
F_1_501	equ	12299		; FIX(1.501321110)
F_1_847	equ	15137		; FIX(1.847759065)
F_1_961	equ	16069		; FIX(1.961570560)
F_2_053	equ	16819		; FIX(2.053119869)
F_2_562	equ	20995		; FIX(2.562915447)
F_3_072	equ	25172		; FIX(3.072711026)
%else
; NASM cannot do compile-time arithmetic on floating-point constants.
%define DESCALE(x,n)  (((x)+(1<<((n)-1)))>>(n))
F_0_298	equ	DESCALE( 320652955,30-CONST_BITS)	; FIX(0.298631336)
F_0_390	equ	DESCALE( 418953276,30-CONST_BITS)	; FIX(0.390180644)
F_0_541	equ	DESCALE( 581104887,30-CONST_BITS)	; FIX(0.541196100)
F_0_765	equ	DESCALE( 821806413,30-CONST_BITS)	; FIX(0.765366865)
F_0_899	equ	DESCALE( 966342111,30-CONST_BITS)	; FIX(0.899976223)
F_1_175	equ	DESCALE(1262586813,30-CONST_BITS)	; FIX(1.175875602)
F_1_501	equ	DESCALE(1612031267,30-CONST_BITS)	; FIX(1.501321110)
F_1_847	equ	DESCALE(1984016188,30-CONST_BITS)	; FIX(1.847759065)
F_1_961	equ	DESCALE(2106220350,30-CONST_BITS)	; FIX(1.961570560)
F_2_053	equ	DESCALE(2204520673,30-CONST_BITS)	; FIX(2.053119869)
F_2_562	equ	DESCALE(2751909506,30-CONST_BITS)	; FIX(2.562915447)
F_3_072	equ	DESCALE(3299298341,30-CONST_BITS)	; FIX(3.072711026)
%endif

; --------------------------------------------------------------------------
	SECTION	SEG_CONST

	alignz	16
	global	EXTN(jconst_idct_islow_sse2) PRIVATE

EXTN(jconst_idct_islow_sse2):

PW_F130_F054	times 4 dw  (F_0_541+F_0_765), F_0_541
PW_F054_MF130	times 4 dw  F_0_541, (F_0_541-F_1_847)
PW_MF078_F117	times 4 dw  (F_1_175-F_1_961), F_1_175
PW_F117_F078	times 4 dw  F_1_175, (F_1_175-F_0_390)
PW_MF060_MF089	times 4 dw  (F_0_298-F_0_899),-F_0_899
PW_MF089_F060	times 4 dw -F_0_899, (F_1_501-F_0_899)
PW_MF050_MF256	times 4 dw  (F_2_053-F_2_562),-F_2_562
PW_MF256_F050	times 4 dw -F_2_562, (F_3_072-F_2_562)
PD_DESCALE_P1	times 4 dd  1 << (DESCALE_P1-1)
PD_DESCALE_P2	times 4 dd  1 << (DESCALE_P2-1)
PB_CENTERJSAMP	times 16 db CENTERJSAMPLE

	alignz	16

; --------------------------------------------------------------------------
	SECTION	SEG_TEXT
	BITS	64
;
; Perform dequantization and inverse DCT on one block of coefficients.
;
; GLOBAL(void)
; jsimd_idct_islow_sse2 (void * dct_table, JCOEFPTR coef_block,
;                        JSAMPARRAY output_buf, JDIMENSION output_col)
;

; r10 = jpeg_component_info * compptr
; r11 = JCOEFPTR coef_block
; r12 = JSAMPARRAY output_buf
; r13 = JDIMENSION output_col

%define original_rbp	rbp+0
%define wk(i)		rbp-(WK_NUM-(i))*SIZEOF_XMMWORD	; xmmword wk[WK_NUM]
%define WK_NUM		12

	align	16
	global	EXTN(jsimd_idct_islow_sse2) PRIVATE

EXTN(jsimd_idct_islow_sse2):
	push	rbp
	mov	rax,rsp				; rax = original rbp
	sub	rsp, byte 4
	and	rsp, byte (-SIZEOF_XMMWORD)	; align to 128 bits
	mov	[rsp],rax
	mov	rbp,rsp				; rbp = aligned rbp
	lea	rsp, [wk(0)]
	collect_args

	; ---- Pass 1: process columns from input.

	mov	rdx, r10	; quantptr
	mov	rsi, r11		; inptr

%ifndef NO_ZERO_COLUMN_TEST_ISLOW_SSE2
	mov	eax, DWORD [DWBLOCK(1,0,rsi,SIZEOF_JCOEF)]
	or	eax, DWORD [DWBLOCK(2,0,rsi,SIZEOF_JCOEF)]
	jnz	near .columnDCT

	movdqa	xmm0, XMMWORD [XMMBLOCK(1,0,rsi,SIZEOF_JCOEF)]
	movdqa	xmm1, XMMWORD [XMMBLOCK(2,0,rsi,SIZEOF_JCOEF)]
	por	xmm0, XMMWORD [XMMBLOCK(3,0,rsi,SIZEOF_JCOEF)]
	por	xmm1, XMMWORD [XMMBLOCK(4,0,rsi,SIZEOF_JCOEF)]
	por	xmm0, XMMWORD [XMMBLOCK(5,0,rsi,SIZEOF_JCOEF)]
	por	xmm1, XMMWORD [XMMBLOCK(6,0,rsi,SIZEOF_JCOEF)]
	por	xmm0, XMMWORD [XMMBLOCK(7,0,rsi,SIZEOF_JCOEF)]
	por	xmm1,xmm0
	packsswb xmm1,xmm1
	packsswb xmm1,xmm1
	movd	eax,xmm1
	test	rax,rax
	jnz	short .columnDCT

	; -- AC terms all zero

	movdqa	xmm5, XMMWORD [XMMBLOCK(0,0,rsi,SIZEOF_JCOEF)]
	pmullw	xmm5, XMMWORD [XMMBLOCK(0,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]

	psllw	xmm5,PASS1_BITS

	movdqa    xmm4,xmm5		; xmm5=in0=(00 01 02 03 04 05 06 07)
	punpcklwd xmm5,xmm5		; xmm5=(00 00 01 01 02 02 03 03)
	punpckhwd xmm4,xmm4		; xmm4=(04 04 05 05 06 06 07 07)

	pshufd	xmm7,xmm5,0x00		; xmm7=col0=(00 00 00 00 00 00 00 00)
	pshufd	xmm6,xmm5,0x55		; xmm6=col1=(01 01 01 01 01 01 01 01)
	pshufd	xmm1,xmm5,0xAA		; xmm1=col2=(02 02 02 02 02 02 02 02)
	pshufd	xmm5,xmm5,0xFF		; xmm5=col3=(03 03 03 03 03 03 03 03)
	pshufd	xmm0,xmm4,0x00		; xmm0=col4=(04 04 04 04 04 04 04 04)
	pshufd	xmm3,xmm4,0x55		; xmm3=col5=(05 05 05 05 05 05 05 05)
	pshufd	xmm2,xmm4,0xAA		; xmm2=col6=(06 06 06 06 06 06 06 06)
	pshufd	xmm4,xmm4,0xFF		; xmm4=col7=(07 07 07 07 07 07 07 07)

	movdqa	XMMWORD [wk(8)], xmm6	; wk(8)=col1
	movdqa	XMMWORD [wk(9)], xmm5	; wk(9)=col3
	movdqa	XMMWORD [wk(10)], xmm3	; wk(10)=col5
	movdqa	XMMWORD [wk(11)], xmm4	; wk(11)=col7
	jmp	near .column_end
%endif
.columnDCT:

	; -- Even part

	movdqa	xmm0, XMMWORD [XMMBLOCK(0,0,rsi,SIZEOF_JCOEF)]
	movdqa	xmm1, XMMWORD [XMMBLOCK(2,0,rsi,SIZEOF_JCOEF)]
	pmullw	xmm0, XMMWORD [XMMBLOCK(0,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]
	pmullw	xmm1, XMMWORD [XMMBLOCK(2,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]
	movdqa	xmm2, XMMWORD [XMMBLOCK(4,0,rsi,SIZEOF_JCOEF)]
	movdqa	xmm3, XMMWORD [XMMBLOCK(6,0,rsi,SIZEOF_JCOEF)]
	pmullw	xmm2, XMMWORD [XMMBLOCK(4,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]
	pmullw	xmm3, XMMWORD [XMMBLOCK(6,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]

	; (Original)
	; z1 = (z2 + z3) * 0.541196100;
	; tmp2 = z1 + z3 * -1.847759065;
	; tmp3 = z1 + z2 * 0.765366865;
	;
	; (This implementation)
	; tmp2 = z2 * 0.541196100 + z3 * (0.541196100 - 1.847759065);
	; tmp3 = z2 * (0.541196100 + 0.765366865) + z3 * 0.541196100;

	movdqa    xmm4,xmm1		; xmm1=in2=z2
	movdqa    xmm5,xmm1
	punpcklwd xmm4,xmm3		; xmm3=in6=z3
	punpckhwd xmm5,xmm3
	movdqa    xmm1,xmm4
	movdqa    xmm3,xmm5
	pmaddwd   xmm4,[rel PW_F130_F054]	; xmm4=tmp3L
	pmaddwd   xmm5,[rel PW_F130_F054]	; xmm5=tmp3H
	pmaddwd   xmm1,[rel PW_F054_MF130]	; xmm1=tmp2L
	pmaddwd   xmm3,[rel PW_F054_MF130]	; xmm3=tmp2H

	movdqa    xmm6,xmm0
	paddw     xmm0,xmm2		; xmm0=in0+in4
	psubw     xmm6,xmm2		; xmm6=in0-in4

	pxor      xmm7,xmm7
	pxor      xmm2,xmm2
	punpcklwd xmm7,xmm0		; xmm7=tmp0L
	punpckhwd xmm2,xmm0		; xmm2=tmp0H
	psrad     xmm7,(16-CONST_BITS)	; psrad xmm7,16 & pslld xmm7,CONST_BITS
	psrad     xmm2,(16-CONST_BITS)	; psrad xmm2,16 & pslld xmm2,CONST_BITS

	movdqa	xmm0,xmm7
	paddd	xmm7,xmm4		; xmm7=tmp10L
	psubd	xmm0,xmm4		; xmm0=tmp13L
	movdqa	xmm4,xmm2
	paddd	xmm2,xmm5		; xmm2=tmp10H
	psubd	xmm4,xmm5		; xmm4=tmp13H

	movdqa	XMMWORD [wk(0)], xmm7	; wk(0)=tmp10L
	movdqa	XMMWORD [wk(1)], xmm2	; wk(1)=tmp10H
	movdqa	XMMWORD [wk(2)], xmm0	; wk(2)=tmp13L
	movdqa	XMMWORD [wk(3)], xmm4	; wk(3)=tmp13H

	pxor      xmm5,xmm5
	pxor      xmm7,xmm7
	punpcklwd xmm5,xmm6		; xmm5=tmp1L
	punpckhwd xmm7,xmm6		; xmm7=tmp1H
	psrad     xmm5,(16-CONST_BITS)	; psrad xmm5,16 & pslld xmm5,CONST_BITS
	psrad     xmm7,(16-CONST_BITS)	; psrad xmm7,16 & pslld xmm7,CONST_BITS

	movdqa	xmm2,xmm5
	paddd	xmm5,xmm1		; xmm5=tmp11L
	psubd	xmm2,xmm1		; xmm2=tmp12L
	movdqa	xmm0,xmm7
	paddd	xmm7,xmm3		; xmm7=tmp11H
	psubd	xmm0,xmm3		; xmm0=tmp12H

	movdqa	XMMWORD [wk(4)], xmm5	; wk(4)=tmp11L
	movdqa	XMMWORD [wk(5)], xmm7	; wk(5)=tmp11H
	movdqa	XMMWORD [wk(6)], xmm2	; wk(6)=tmp12L
	movdqa	XMMWORD [wk(7)], xmm0	; wk(7)=tmp12H

	; -- Odd part

	movdqa	xmm4, XMMWORD [XMMBLOCK(1,0,rsi,SIZEOF_JCOEF)]
	movdqa	xmm6, XMMWORD [XMMBLOCK(3,0,rsi,SIZEOF_JCOEF)]
	pmullw	xmm4, XMMWORD [XMMBLOCK(1,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]
	pmullw	xmm6, XMMWORD [XMMBLOCK(3,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]
	movdqa	xmm1, XMMWORD [XMMBLOCK(5,0,rsi,SIZEOF_JCOEF)]
	movdqa	xmm3, XMMWORD [XMMBLOCK(7,0,rsi,SIZEOF_JCOEF)]
	pmullw	xmm1, XMMWORD [XMMBLOCK(5,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]
	pmullw	xmm3, XMMWORD [XMMBLOCK(7,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]

	movdqa	xmm5,xmm6
	movdqa	xmm7,xmm4
	paddw	xmm5,xmm3		; xmm5=z3
	paddw	xmm7,xmm1		; xmm7=z4

	; (Original)
	; z5 = (z3 + z4) * 1.175875602;
	; z3 = z3 * -1.961570560;  z4 = z4 * -0.390180644;
	; z3 += z5;  z4 += z5;
	;
	; (This implementation)
	; z3 = z3 * (1.175875602 - 1.961570560) + z4 * 1.175875602;
	; z4 = z3 * 1.175875602 + z4 * (1.175875602 - 0.390180644);

	movdqa    xmm2,xmm5
	movdqa    xmm0,xmm5
	punpcklwd xmm2,xmm7
	punpckhwd xmm0,xmm7
	movdqa    xmm5,xmm2
	movdqa    xmm7,xmm0
	pmaddwd   xmm2,[rel PW_MF078_F117]	; xmm2=z3L
	pmaddwd   xmm0,[rel PW_MF078_F117]	; xmm0=z3H
	pmaddwd   xmm5,[rel PW_F117_F078]	; xmm5=z4L
	pmaddwd   xmm7,[rel PW_F117_F078]	; xmm7=z4H

	movdqa	XMMWORD [wk(10)], xmm2	; wk(10)=z3L
	movdqa	XMMWORD [wk(11)], xmm0	; wk(11)=z3H

	; (Original)
	; z1 = tmp0 + tmp3;  z2 = tmp1 + tmp2;
	; tmp0 = tmp0 * 0.298631336;  tmp1 = tmp1 * 2.053119869;
	; tmp2 = tmp2 * 3.072711026;  tmp3 = tmp3 * 1.501321110;
	; z1 = z1 * -0.899976223;  z2 = z2 * -2.562915447;
	; tmp0 += z1 + z3;  tmp1 += z2 + z4;
	; tmp2 += z2 + z3;  tmp3 += z1 + z4;
	;
	; (This implementation)
	; tmp0 = tmp0 * (0.298631336 - 0.899976223) + tmp3 * -0.899976223;
	; tmp1 = tmp1 * (2.053119869 - 2.562915447) + tmp2 * -2.562915447;
	; tmp2 = tmp1 * -2.562915447 + tmp2 * (3.072711026 - 2.562915447);
	; tmp3 = tmp0 * -0.899976223 + tmp3 * (1.501321110 - 0.899976223);
	; tmp0 += z3;  tmp1 += z4;
	; tmp2 += z3;  tmp3 += z4;

	movdqa    xmm2,xmm3
	movdqa    xmm0,xmm3
	punpcklwd xmm2,xmm4
	punpckhwd xmm0,xmm4
	movdqa    xmm3,xmm2
	movdqa    xmm4,xmm0
	pmaddwd   xmm2,[rel PW_MF060_MF089]	; xmm2=tmp0L
	pmaddwd   xmm0,[rel PW_MF060_MF089]	; xmm0=tmp0H
	pmaddwd   xmm3,[rel PW_MF089_F060]	; xmm3=tmp3L
	pmaddwd   xmm4,[rel PW_MF089_F060]	; xmm4=tmp3H

	paddd	xmm2, XMMWORD [wk(10)]	; xmm2=tmp0L
	paddd	xmm0, XMMWORD [wk(11)]	; xmm0=tmp0H
	paddd	xmm3,xmm5		; xmm3=tmp3L
	paddd	xmm4,xmm7		; xmm4=tmp3H

	movdqa	XMMWORD [wk(8)], xmm2	; wk(8)=tmp0L
	movdqa	XMMWORD [wk(9)], xmm0	; wk(9)=tmp0H

	movdqa    xmm2,xmm1
	movdqa    xmm0,xmm1
	punpcklwd xmm2,xmm6
	punpckhwd xmm0,xmm6
	movdqa    xmm1,xmm2
	movdqa    xmm6,xmm0
	pmaddwd   xmm2,[rel PW_MF050_MF256]	; xmm2=tmp1L
	pmaddwd   xmm0,[rel PW_MF050_MF256]	; xmm0=tmp1H
	pmaddwd   xmm1,[rel PW_MF256_F050]	; xmm1=tmp2L
	pmaddwd   xmm6,[rel PW_MF256_F050]	; xmm6=tmp2H

	paddd	xmm2,xmm5		; xmm2=tmp1L
	paddd	xmm0,xmm7		; xmm0=tmp1H
	paddd	xmm1, XMMWORD [wk(10)]	; xmm1=tmp2L
	paddd	xmm6, XMMWORD [wk(11)]	; xmm6=tmp2H

	movdqa	XMMWORD [wk(10)], xmm2	; wk(10)=tmp1L
	movdqa	XMMWORD [wk(11)], xmm0	; wk(11)=tmp1H

	; -- Final output stage

	movdqa	xmm5, XMMWORD [wk(0)]	; xmm5=tmp10L
	movdqa	xmm7, XMMWORD [wk(1)]	; xmm7=tmp10H

	movdqa	xmm2,xmm5
	movdqa	xmm0,xmm7
	paddd	xmm5,xmm3		; xmm5=data0L
	paddd	xmm7,xmm4		; xmm7=data0H
	psubd	xmm2,xmm3		; xmm2=data7L
	psubd	xmm0,xmm4		; xmm0=data7H

	movdqa	xmm3,[rel PD_DESCALE_P1]	; xmm3=[rel PD_DESCALE_P1]

	paddd	xmm5,xmm3
	paddd	xmm7,xmm3
	psrad	xmm5,DESCALE_P1
	psrad	xmm7,DESCALE_P1
	paddd	xmm2,xmm3
	paddd	xmm0,xmm3
	psrad	xmm2,DESCALE_P1
	psrad	xmm0,DESCALE_P1

	packssdw  xmm5,xmm7		; xmm5=data0=(00 01 02 03 04 05 06 07)
	packssdw  xmm2,xmm0		; xmm2=data7=(70 71 72 73 74 75 76 77)

	movdqa	xmm4, XMMWORD [wk(4)]	; xmm4=tmp11L
	movdqa	xmm3, XMMWORD [wk(5)]	; xmm3=tmp11H

	movdqa	xmm7,xmm4
	movdqa	xmm0,xmm3
	paddd	xmm4,xmm1		; xmm4=data1L
	paddd	xmm3,xmm6		; xmm3=data1H
	psubd	xmm7,xmm1		; xmm7=data6L
	psubd	xmm0,xmm6		; xmm0=data6H

	movdqa	xmm1,[rel PD_DESCALE_P1]	; xmm1=[rel PD_DESCALE_P1]

	paddd	xmm4,xmm1
	paddd	xmm3,xmm1
	psrad	xmm4,DESCALE_P1
	psrad	xmm3,DESCALE_P1
	paddd	xmm7,xmm1
	paddd	xmm0,xmm1
	psrad	xmm7,DESCALE_P1
	psrad	xmm0,DESCALE_P1

	packssdw  xmm4,xmm3		; xmm4=data1=(10 11 12 13 14 15 16 17)
	packssdw  xmm7,xmm0		; xmm7=data6=(60 61 62 63 64 65 66 67)

	movdqa    xmm6,xmm5		; transpose coefficients(phase 1)
	punpcklwd xmm5,xmm4		; xmm5=(00 10 01 11 02 12 03 13)
	punpckhwd xmm6,xmm4		; xmm6=(04 14 05 15 06 16 07 17)
	movdqa    xmm1,xmm7		; transpose coefficients(phase 1)
	punpcklwd xmm7,xmm2		; xmm7=(60 70 61 71 62 72 63 73)
	punpckhwd xmm1,xmm2		; xmm1=(64 74 65 75 66 76 67 77)

	movdqa	xmm3, XMMWORD [wk(6)]	; xmm3=tmp12L
	movdqa	xmm0, XMMWORD [wk(7)]	; xmm0=tmp12H
	movdqa	xmm4, XMMWORD [wk(10)]	; xmm4=tmp1L
	movdqa	xmm2, XMMWORD [wk(11)]	; xmm2=tmp1H

	movdqa	XMMWORD [wk(0)], xmm5	; wk(0)=(00 10 01 11 02 12 03 13)
	movdqa	XMMWORD [wk(1)], xmm6	; wk(1)=(04 14 05 15 06 16 07 17)
	movdqa	XMMWORD [wk(4)], xmm7	; wk(4)=(60 70 61 71 62 72 63 73)
	movdqa	XMMWORD [wk(5)], xmm1	; wk(5)=(64 74 65 75 66 76 67 77)

	movdqa	xmm5,xmm3
	movdqa	xmm6,xmm0
	paddd	xmm3,xmm4		; xmm3=data2L
	paddd	xmm0,xmm2		; xmm0=data2H
	psubd	xmm5,xmm4		; xmm5=data5L
	psubd	xmm6,xmm2		; xmm6=data5H

	movdqa	xmm7,[rel PD_DESCALE_P1]	; xmm7=[rel PD_DESCALE_P1]

	paddd	xmm3,xmm7
	paddd	xmm0,xmm7
	psrad	xmm3,DESCALE_P1
	psrad	xmm0,DESCALE_P1
	paddd	xmm5,xmm7
	paddd	xmm6,xmm7
	psrad	xmm5,DESCALE_P1
	psrad	xmm6,DESCALE_P1

	packssdw  xmm3,xmm0		; xmm3=data2=(20 21 22 23 24 25 26 27)
	packssdw  xmm5,xmm6		; xmm5=data5=(50 51 52 53 54 55 56 57)

	movdqa	xmm1, XMMWORD [wk(2)]	; xmm1=tmp13L
	movdqa	xmm4, XMMWORD [wk(3)]	; xmm4=tmp13H
	movdqa	xmm2, XMMWORD [wk(8)]	; xmm2=tmp0L
	movdqa	xmm7, XMMWORD [wk(9)]	; xmm7=tmp0H

	movdqa	xmm0,xmm1
	movdqa	xmm6,xmm4
	paddd	xmm1,xmm2		; xmm1=data3L
	paddd	xmm4,xmm7		; xmm4=data3H
	psubd	xmm0,xmm2		; xmm0=data4L
	psubd	xmm6,xmm7		; xmm6=data4H

	movdqa	xmm2,[rel PD_DESCALE_P1]	; xmm2=[rel PD_DESCALE_P1]

	paddd	xmm1,xmm2
	paddd	xmm4,xmm2
	psrad	xmm1,DESCALE_P1
	psrad	xmm4,DESCALE_P1
	paddd	xmm0,xmm2
	paddd	xmm6,xmm2
	psrad	xmm0,DESCALE_P1
	psrad	xmm6,DESCALE_P1

	packssdw  xmm1,xmm4		; xmm1=data3=(30 31 32 33 34 35 36 37)
	packssdw  xmm0,xmm6		; xmm0=data4=(40 41 42 43 44 45 46 47)

	movdqa	xmm7, XMMWORD [wk(0)]	; xmm7=(00 10 01 11 02 12 03 13)
	movdqa	xmm2, XMMWORD [wk(1)]	; xmm2=(04 14 05 15 06 16 07 17)

	movdqa    xmm4,xmm3		; transpose coefficients(phase 1)
	punpcklwd xmm3,xmm1		; xmm3=(20 30 21 31 22 32 23 33)
	punpckhwd xmm4,xmm1		; xmm4=(24 34 25 35 26 36 27 37)
	movdqa    xmm6,xmm0		; transpose coefficients(phase 1)
	punpcklwd xmm0,xmm5		; xmm0=(40 50 41 51 42 52 43 53)
	punpckhwd xmm6,xmm5		; xmm6=(44 54 45 55 46 56 47 57)

	movdqa    xmm1,xmm7		; transpose coefficients(phase 2)
	punpckldq xmm7,xmm3		; xmm7=(00 10 20 30 01 11 21 31)
	punpckhdq xmm1,xmm3		; xmm1=(02 12 22 32 03 13 23 33)
	movdqa    xmm5,xmm2		; transpose coefficients(phase 2)
	punpckldq xmm2,xmm4		; xmm2=(04 14 24 34 05 15 25 35)
	punpckhdq xmm5,xmm4		; xmm5=(06 16 26 36 07 17 27 37)

	movdqa	xmm3, XMMWORD [wk(4)]	; xmm3=(60 70 61 71 62 72 63 73)
	movdqa	xmm4, XMMWORD [wk(5)]	; xmm4=(64 74 65 75 66 76 67 77)

	movdqa	XMMWORD [wk(6)], xmm2	; wk(6)=(04 14 24 34 05 15 25 35)
	movdqa	XMMWORD [wk(7)], xmm5	; wk(7)=(06 16 26 36 07 17 27 37)

	movdqa    xmm2,xmm0		; transpose coefficients(phase 2)
	punpckldq xmm0,xmm3		; xmm0=(40 50 60 70 41 51 61 71)
	punpckhdq xmm2,xmm3		; xmm2=(42 52 62 72 43 53 63 73)
	movdqa    xmm5,xmm6		; transpose coefficients(phase 2)
	punpckldq xmm6,xmm4		; xmm6=(44 54 64 74 45 55 65 75)
	punpckhdq xmm5,xmm4		; xmm5=(46 56 66 76 47 57 67 77)

	movdqa     xmm3,xmm7		; transpose coefficients(phase 3)
	punpcklqdq xmm7,xmm0		; xmm7=col0=(00 10 20 30 40 50 60 70)
	punpckhqdq xmm3,xmm0		; xmm3=col1=(01 11 21 31 41 51 61 71)
	movdqa     xmm4,xmm1		; transpose coefficients(phase 3)
	punpcklqdq xmm1,xmm2		; xmm1=col2=(02 12 22 32 42 52 62 72)
	punpckhqdq xmm4,xmm2		; xmm4=col3=(03 13 23 33 43 53 63 73)

	movdqa	xmm0, XMMWORD [wk(6)]	; xmm0=(04 14 24 34 05 15 25 35)
	movdqa	xmm2, XMMWORD [wk(7)]	; xmm2=(06 16 26 36 07 17 27 37)

	movdqa	XMMWORD [wk(8)], xmm3	; wk(8)=col1
	movdqa	XMMWORD [wk(9)], xmm4	; wk(9)=col3

	movdqa     xmm3,xmm0		; transpose coefficients(phase 3)
	punpcklqdq xmm0,xmm6		; xmm0=col4=(04 14 24 34 44 54 64 74)
	punpckhqdq xmm3,xmm6		; xmm3=col5=(05 15 25 35 45 55 65 75)
	movdqa     xmm4,xmm2		; transpose coefficients(phase 3)
	punpcklqdq xmm2,xmm5		; xmm2=col6=(06 16 26 36 46 56 66 76)
	punpckhqdq xmm4,xmm5		; xmm4=col7=(07 17 27 37 47 57 67 77)

	movdqa	XMMWORD [wk(10)], xmm3	; wk(10)=col5
	movdqa	XMMWORD [wk(11)], xmm4	; wk(11)=col7
.column_end:

	; -- Prefetch the next coefficient block

	prefetchnta [rsi + DCTSIZE2*SIZEOF_JCOEF + 0*32]
	prefetchnta [rsi + DCTSIZE2*SIZEOF_JCOEF + 1*32]
	prefetchnta [rsi + DCTSIZE2*SIZEOF_JCOEF + 2*32]
	prefetchnta [rsi + DCTSIZE2*SIZEOF_JCOEF + 3*32]

	; ---- Pass 2: process rows from work array, store into output array.

	mov	rax, [original_rbp]
	mov	rdi, r12	; (JSAMPROW *)
	mov	rax, r13

	; -- Even part

	; xmm7=col0, xmm1=col2, xmm0=col4, xmm2=col6

	; (Original)
	; z1 = (z2 + z3) * 0.541196100;
	; tmp2 = z1 + z3 * -1.847759065;
	; tmp3 = z1 + z2 * 0.765366865;
	;
	; (This implementation)
	; tmp2 = z2 * 0.541196100 + z3 * (0.541196100 - 1.847759065);
	; tmp3 = z2 * (0.541196100 + 0.765366865) + z3 * 0.541196100;

	movdqa    xmm6,xmm1		; xmm1=in2=z2
	movdqa    xmm5,xmm1
	punpcklwd xmm6,xmm2		; xmm2=in6=z3
	punpckhwd xmm5,xmm2
	movdqa    xmm1,xmm6
	movdqa    xmm2,xmm5
	pmaddwd   xmm6,[rel PW_F130_F054]	; xmm6=tmp3L
	pmaddwd   xmm5,[rel PW_F130_F054]	; xmm5=tmp3H
	pmaddwd   xmm1,[rel PW_F054_MF130]	; xmm1=tmp2L
	pmaddwd   xmm2,[rel PW_F054_MF130]	; xmm2=tmp2H

	movdqa    xmm3,xmm7
	paddw     xmm7,xmm0		; xmm7=in0+in4
	psubw     xmm3,xmm0		; xmm3=in0-in4

	pxor      xmm4,xmm4
	pxor      xmm0,xmm0
	punpcklwd xmm4,xmm7		; xmm4=tmp0L
	punpckhwd xmm0,xmm7		; xmm0=tmp0H
	psrad     xmm4,(16-CONST_BITS)	; psrad xmm4,16 & pslld xmm4,CONST_BITS
	psrad     xmm0,(16-CONST_BITS)	; psrad xmm0,16 & pslld xmm0,CONST_BITS

	movdqa	xmm7,xmm4
	paddd	xmm4,xmm6		; xmm4=tmp10L
	psubd	xmm7,xmm6		; xmm7=tmp13L
	movdqa	xmm6,xmm0
	paddd	xmm0,xmm5		; xmm0=tmp10H
	psubd	xmm6,xmm5		; xmm6=tmp13H

	movdqa	XMMWORD [wk(0)], xmm4	; wk(0)=tmp10L
	movdqa	XMMWORD [wk(1)], xmm0	; wk(1)=tmp10H
	movdqa	XMMWORD [wk(2)], xmm7	; wk(2)=tmp13L
	movdqa	XMMWORD [wk(3)], xmm6	; wk(3)=tmp13H

	pxor      xmm5,xmm5
	pxor      xmm4,xmm4
	punpcklwd xmm5,xmm3		; xmm5=tmp1L
	punpckhwd xmm4,xmm3		; xmm4=tmp1H
	psrad     xmm5,(16-CONST_BITS)	; psrad xmm5,16 & pslld xmm5,CONST_BITS
	psrad     xmm4,(16-CONST_BITS)	; psrad xmm4,16 & pslld xmm4,CONST_BITS

	movdqa	xmm0,xmm5
	paddd	xmm5,xmm1		; xmm5=tmp11L
	psubd	xmm0,xmm1		; xmm0=tmp12L
	movdqa	xmm7,xmm4
	paddd	xmm4,xmm2		; xmm4=tmp11H
	psubd	xmm7,xmm2		; xmm7=tmp12H

	movdqa	XMMWORD [wk(4)], xmm5	; wk(4)=tmp11L
	movdqa	XMMWORD [wk(5)], xmm4	; wk(5)=tmp11H
	movdqa	XMMWORD [wk(6)], xmm0	; wk(6)=tmp12L
	movdqa	XMMWORD [wk(7)], xmm7	; wk(7)=tmp12H

	; -- Odd part

	movdqa	xmm6, XMMWORD [wk(9)]	; xmm6=col3
	movdqa	xmm3, XMMWORD [wk(8)]	; xmm3=col1
	movdqa	xmm1, XMMWORD [wk(11)]	; xmm1=col7
	movdqa	xmm2, XMMWORD [wk(10)]	; xmm2=col5

	movdqa	xmm5,xmm6
	movdqa	xmm4,xmm3
	paddw	xmm5,xmm1		; xmm5=z3
	paddw	xmm4,xmm2		; xmm4=z4

	; (Original)
	; z5 = (z3 + z4) * 1.175875602;
	; z3 = z3 * -1.961570560;  z4 = z4 * -0.390180644;
	; z3 += z5;  z4 += z5;
	;
	; (This implementation)
	; z3 = z3 * (1.175875602 - 1.961570560) + z4 * 1.175875602;
	; z4 = z3 * 1.175875602 + z4 * (1.175875602 - 0.390180644);

	movdqa    xmm0,xmm5
	movdqa    xmm7,xmm5
	punpcklwd xmm0,xmm4
	punpckhwd xmm7,xmm4
	movdqa    xmm5,xmm0
	movdqa    xmm4,xmm7
	pmaddwd   xmm0,[rel PW_MF078_F117]	; xmm0=z3L
	pmaddwd   xmm7,[rel PW_MF078_F117]	; xmm7=z3H
	pmaddwd   xmm5,[rel PW_F117_F078]	; xmm5=z4L
	pmaddwd   xmm4,[rel PW_F117_F078]	; xmm4=z4H

	movdqa	XMMWORD [wk(10)], xmm0	; wk(10)=z3L
	movdqa	XMMWORD [wk(11)], xmm7	; wk(11)=z3H

	; (Original)
	; z1 = tmp0 + tmp3;  z2 = tmp1 + tmp2;
	; tmp0 = tmp0 * 0.298631336;  tmp1 = tmp1 * 2.053119869;
	; tmp2 = tmp2 * 3.072711026;  tmp3 = tmp3 * 1.501321110;
	; z1 = z1 * -0.899976223;  z2 = z2 * -2.562915447;
	; tmp0 += z1 + z3;  tmp1 += z2 + z4;
	; tmp2 += z2 + z3;  tmp3 += z1 + z4;
	;
	; (This implementation)
	; tmp0 = tmp0 * (0.298631336 - 0.899976223) + tmp3 * -0.899976223;
	; tmp1 = tmp1 * (2.053119869 - 2.562915447) + tmp2 * -2.562915447;
	; tmp2 = tmp1 * -2.562915447 + tmp2 * (3.072711026 - 2.562915447);
	; tmp3 = tmp0 * -0.899976223 + tmp3 * (1.501321110 - 0.899976223);
	; tmp0 += z3;  tmp1 += z4;
	; tmp2 += z3;  tmp3 += z4;

	movdqa    xmm0,xmm1
	movdqa    xmm7,xmm1
	punpcklwd xmm0,xmm3
	punpckhwd xmm7,xmm3
	movdqa    xmm1,xmm0
	movdqa    xmm3,xmm7
	pmaddwd   xmm0,[rel PW_MF060_MF089]	; xmm0=tmp0L
	pmaddwd   xmm7,[rel PW_MF060_MF089]	; xmm7=tmp0H
	pmaddwd   xmm1,[rel PW_MF089_F060]	; xmm1=tmp3L
	pmaddwd   xmm3,[rel PW_MF089_F060]	; xmm3=tmp3H

	paddd	xmm0, XMMWORD [wk(10)]	; xmm0=tmp0L
	paddd	xmm7, XMMWORD [wk(11)]	; xmm7=tmp0H
	paddd	xmm1,xmm5		; xmm1=tmp3L
	paddd	xmm3,xmm4		; xmm3=tmp3H

	movdqa	XMMWORD [wk(8)], xmm0	; wk(8)=tmp0L
	movdqa	XMMWORD [wk(9)], xmm7	; wk(9)=tmp0H

	movdqa    xmm0,xmm2
	movdqa    xmm7,xmm2
	punpcklwd xmm0,xmm6
	punpckhwd xmm7,xmm6
	movdqa    xmm2,xmm0
	movdqa    xmm6,xmm7
	pmaddwd   xmm0,[rel PW_MF050_MF256]	; xmm0=tmp1L
	pmaddwd   xmm7,[rel PW_MF050_MF256]	; xmm7=tmp1H
	pmaddwd   xmm2,[rel PW_MF256_F050]	; xmm2=tmp2L
	pmaddwd   xmm6,[rel PW_MF256_F050]	; xmm6=tmp2H

	paddd	xmm0,xmm5		; xmm0=tmp1L
	paddd	xmm7,xmm4		; xmm7=tmp1H
	paddd	xmm2, XMMWORD [wk(10)]	; xmm2=tmp2L
	paddd	xmm6, XMMWORD [wk(11)]	; xmm6=tmp2H

	movdqa	XMMWORD [wk(10)], xmm0	; wk(10)=tmp1L
	movdqa	XMMWORD [wk(11)], xmm7	; wk(11)=tmp1H

	; -- Final output stage

	movdqa	xmm5, XMMWORD [wk(0)]	; xmm5=tmp10L
	movdqa	xmm4, XMMWORD [wk(1)]	; xmm4=tmp10H

	movdqa	xmm0,xmm5
	movdqa	xmm7,xmm4
	paddd	xmm5,xmm1		; xmm5=data0L
	paddd	xmm4,xmm3		; xmm4=data0H
	psubd	xmm0,xmm1		; xmm0=data7L
	psubd	xmm7,xmm3		; xmm7=data7H

	movdqa	xmm1,[rel PD_DESCALE_P2]	; xmm1=[rel PD_DESCALE_P2]

	paddd	xmm5,xmm1
	paddd	xmm4,xmm1
	psrad	xmm5,DESCALE_P2
	psrad	xmm4,DESCALE_P2
	paddd	xmm0,xmm1
	paddd	xmm7,xmm1
	psrad	xmm0,DESCALE_P2
	psrad	xmm7,DESCALE_P2

	packssdw  xmm5,xmm4		; xmm5=data0=(00 10 20 30 40 50 60 70)
	packssdw  xmm0,xmm7		; xmm0=data7=(07 17 27 37 47 57 67 77)

	movdqa	xmm3, XMMWORD [wk(4)]	; xmm3=tmp11L
	movdqa	xmm1, XMMWORD [wk(5)]	; xmm1=tmp11H

	movdqa	xmm4,xmm3
	movdqa	xmm7,xmm1
	paddd	xmm3,xmm2		; xmm3=data1L
	paddd	xmm1,xmm6		; xmm1=data1H
	psubd	xmm4,xmm2		; xmm4=data6L
	psubd	xmm7,xmm6		; xmm7=data6H

	movdqa	xmm2,[rel PD_DESCALE_P2]	; xmm2=[rel PD_DESCALE_P2]

	paddd	xmm3,xmm2
	paddd	xmm1,xmm2
	psrad	xmm3,DESCALE_P2
	psrad	xmm1,DESCALE_P2
	paddd	xmm4,xmm2
	paddd	xmm7,xmm2
	psrad	xmm4,DESCALE_P2
	psrad	xmm7,DESCALE_P2

	packssdw  xmm3,xmm1		; xmm3=data1=(01 11 21 31 41 51 61 71)
	packssdw  xmm4,xmm7		; xmm4=data6=(06 16 26 36 46 56 66 76)

	packsswb  xmm5,xmm4		; xmm5=(00 10 20 30 40 50 60 70 06 16 26 36 46 56 66 76)
	packsswb  xmm3,xmm0		; xmm3=(01 11 21 31 41 51 61 71 07 17 27 37 47 57 67 77)

	movdqa	xmm6, XMMWORD [wk(6)]	; xmm6=tmp12L
	movdqa	xmm2, XMMWORD [wk(7)]	; xmm2=tmp12H
	movdqa	xmm1, XMMWORD [wk(10)]	; xmm1=tmp1L
	movdqa	xmm7, XMMWORD [wk(11)]	; xmm7=tmp1H

	movdqa	XMMWORD [wk(0)], xmm5	; wk(0)=(00 10 20 30 40 50 60 70 06 16 26 36 46 56 66 76)
	movdqa	XMMWORD [wk(1)], xmm3	; wk(1)=(01 11 21 31 41 51 61 71 07 17 27 37 47 57 67 77)

	movdqa	xmm4,xmm6
	movdqa	xmm0,xmm2
	paddd	xmm6,xmm1		; xmm6=data2L
	paddd	xmm2,xmm7		; xmm2=data2H
	psubd	xmm4,xmm1		; xmm4=data5L
	psubd	xmm0,xmm7		; xmm0=data5H

	movdqa	xmm5,[rel PD_DESCALE_P2]	; xmm5=[rel PD_DESCALE_P2]

	paddd	xmm6,xmm5
	paddd	xmm2,xmm5
	psrad	xmm6,DESCALE_P2
	psrad	xmm2,DESCALE_P2
	paddd	xmm4,xmm5
	paddd	xmm0,xmm5
	psrad	xmm4,DESCALE_P2
	psrad	xmm0,DESCALE_P2

	packssdw  xmm6,xmm2		; xmm6=data2=(02 12 22 32 42 52 62 72)
	packssdw  xmm4,xmm0		; xmm4=data5=(05 15 25 35 45 55 65 75)

	movdqa	xmm3, XMMWORD [wk(2)]	; xmm3=tmp13L
	movdqa	xmm1, XMMWORD [wk(3)]	; xmm1=tmp13H
	movdqa	xmm7, XMMWORD [wk(8)]	; xmm7=tmp0L
	movdqa	xmm5, XMMWORD [wk(9)]	; xmm5=tmp0H

	movdqa	xmm2,xmm3
	movdqa	xmm0,xmm1
	paddd	xmm3,xmm7		; xmm3=data3L
	paddd	xmm1,xmm5		; xmm1=data3H
	psubd	xmm2,xmm7		; xmm2=data4L
	psubd	xmm0,xmm5		; xmm0=data4H

	movdqa	xmm7,[rel PD_DESCALE_P2]	; xmm7=[rel PD_DESCALE_P2]

	paddd	xmm3,xmm7
	paddd	xmm1,xmm7
	psrad	xmm3,DESCALE_P2
	psrad	xmm1,DESCALE_P2
	paddd	xmm2,xmm7
	paddd	xmm0,xmm7
	psrad	xmm2,DESCALE_P2
	psrad	xmm0,DESCALE_P2

	movdqa    xmm5,[rel PB_CENTERJSAMP]	; xmm5=[rel PB_CENTERJSAMP]

	packssdw  xmm3,xmm1		; xmm3=data3=(03 13 23 33 43 53 63 73)
	packssdw  xmm2,xmm0		; xmm2=data4=(04 14 24 34 44 54 64 74)

	movdqa    xmm7, XMMWORD [wk(0)]	; xmm7=(00 10 20 30 40 50 60 70 06 16 26 36 46 56 66 76)
	movdqa    xmm1, XMMWORD [wk(1)]	; xmm1=(01 11 21 31 41 51 61 71 07 17 27 37 47 57 67 77)

	packsswb  xmm6,xmm2		; xmm6=(02 12 22 32 42 52 62 72 04 14 24 34 44 54 64 74)
	packsswb  xmm3,xmm4		; xmm3=(03 13 23 33 43 53 63 73 05 15 25 35 45 55 65 75)

	paddb     xmm7,xmm5
	paddb     xmm1,xmm5
	paddb     xmm6,xmm5
	paddb     xmm3,xmm5

	movdqa    xmm0,xmm7	; transpose coefficients(phase 1)
	punpcklbw xmm7,xmm1	; xmm7=(00 01 10 11 20 21 30 31 40 41 50 51 60 61 70 71)
	punpckhbw xmm0,xmm1	; xmm0=(06 07 16 17 26 27 36 37 46 47 56 57 66 67 76 77)
	movdqa    xmm2,xmm6	; transpose coefficients(phase 1)
	punpcklbw xmm6,xmm3	; xmm6=(02 03 12 13 22 23 32 33 42 43 52 53 62 63 72 73)
	punpckhbw xmm2,xmm3	; xmm2=(04 05 14 15 24 25 34 35 44 45 54 55 64 65 74 75)

	movdqa    xmm4,xmm7	; transpose coefficients(phase 2)
	punpcklwd xmm7,xmm6	; xmm7=(00 01 02 03 10 11 12 13 20 21 22 23 30 31 32 33)
	punpckhwd xmm4,xmm6	; xmm4=(40 41 42 43 50 51 52 53 60 61 62 63 70 71 72 73)
	movdqa    xmm5,xmm2	; transpose coefficients(phase 2)
	punpcklwd xmm2,xmm0	; xmm2=(04 05 06 07 14 15 16 17 24 25 26 27 34 35 36 37)
	punpckhwd xmm5,xmm0	; xmm5=(44 45 46 47 54 55 56 57 64 65 66 67 74 75 76 77)

	movdqa    xmm1,xmm7	; transpose coefficients(phase 3)
	punpckldq xmm7,xmm2	; xmm7=(00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17)
	punpckhdq xmm1,xmm2	; xmm1=(20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37)
	movdqa    xmm3,xmm4	; transpose coefficients(phase 3)
	punpckldq xmm4,xmm5	; xmm4=(40 41 42 43 44 45 46 47 50 51 52 53 54 55 56 57)
	punpckhdq xmm3,xmm5	; xmm3=(60 61 62 63 64 65 66 67 70 71 72 73 74 75 76 77)

	pshufd	xmm6,xmm7,0x4E	; xmm6=(10 11 12 13 14 15 16 17 00 01 02 03 04 05 06 07)
	pshufd	xmm0,xmm1,0x4E	; xmm0=(30 31 32 33 34 35 36 37 20 21 22 23 24 25 26 27)
	pshufd	xmm2,xmm4,0x4E	; xmm2=(50 51 52 53 54 55 56 57 40 41 42 43 44 45 46 47)
	pshufd	xmm5,xmm3,0x4E	; xmm5=(70 71 72 73 74 75 76 77 60 61 62 63 64 65 66 67)

	mov	rdx, JSAMPROW [rdi+0*SIZEOF_JSAMPROW]
	mov	rsi, JSAMPROW [rdi+2*SIZEOF_JSAMPROW]
	movq	XMM_MMWORD [rdx+rax*SIZEOF_JSAMPLE], xmm7
	movq	XMM_MMWORD [rsi+rax*SIZEOF_JSAMPLE], xmm1
	mov	rdx, JSAMPROW [rdi+4*SIZEOF_JSAMPROW]
	mov	rsi, JSAMPROW [rdi+6*SIZEOF_JSAMPROW]
	movq	XMM_MMWORD [rdx+rax*SIZEOF_JSAMPLE], xmm4
	movq	XMM_MMWORD [rsi+rax*SIZEOF_JSAMPLE], xmm3

	mov	rdx, JSAMPROW [rdi+1*SIZEOF_JSAMPROW]
	mov	rsi, JSAMPROW [rdi+3*SIZEOF_JSAMPROW]
	movq	XMM_MMWORD [rdx+rax*SIZEOF_JSAMPLE], xmm6
	movq	XMM_MMWORD [rsi+rax*SIZEOF_JSAMPLE], xmm0
	mov	rdx, JSAMPROW [rdi+5*SIZEOF_JSAMPROW]
	mov	rsi, JSAMPROW [rdi+7*SIZEOF_JSAMPROW]
	movq	XMM_MMWORD [rdx+rax*SIZEOF_JSAMPLE], xmm2
	movq	XMM_MMWORD [rsi+rax*SIZEOF_JSAMPLE], xmm5

	uncollect_args
	mov	rsp,rbp		; rsp <- aligned rbp
	pop	rsp		; rsp <- original rbp
	pop	rbp
	ret

; For some reason, the OS X linker does not honor the request to align the
; segment unless we do this.
	align	16
