XvMC VLD extension support for G4X

This commit is contained in:
Zou Nan hai 2009-03-25 16:11:33 +08:00
parent e6af995b24
commit ebcb64fdc8
53 changed files with 6583 additions and 6002 deletions

View File

@ -271,6 +271,8 @@ AC_OUTPUT([
uxa/Makefile
src/Makefile
src/xvmc/Makefile
src/xvmc/shader/Makefile
src/xvmc/shader/vld/Makefile
src/bios_reader/Makefile
src/ch7017/Makefile
src/ch7xxx/Makefile

View File

@ -64,6 +64,8 @@ Bool intel_xvmc_probe(ScrnInfoPtr pScrn)
if (IS_I9XX(pI830)) {
if (IS_I915(pI830))
ret = intel_xvmc_set_driver(&i915_xvmc_driver);
else if (IS_G4X(pI830))
ret = intel_xvmc_set_driver(&vld_xvmc_driver);
else
ret = intel_xvmc_set_driver(&i965_xvmc_driver);
} else {

View File

@ -100,6 +100,7 @@ struct intel_xvmc_driver {
extern struct intel_xvmc_driver *xvmc_driver;
extern struct intel_xvmc_driver i915_xvmc_driver;
extern struct intel_xvmc_driver i965_xvmc_driver;
extern struct intel_xvmc_driver vld_xvmc_driver;
extern Bool intel_xvmc_set_driver(struct intel_xvmc_driver *);
extern Bool intel_xvmc_probe(ScrnInfoPtr);

View File

@ -41,36 +41,14 @@
#define STRIDE(w) (w)
#define SIZE_YUV420(w, h) (h * (STRIDE(w) + STRIDE(w >> 1)))
#define VLD_MAX_SLICE_LEN (32*1024)
#ifndef XVMC_VLD
#define XVMC_VLD 0x00020000
#endif
static PutImageFuncPtr XvPutImage;
#if 0
static int alloc_drm_memory_tiled(ScrnInfoPtr pScrn,
struct drm_memory_block *mem,
char *name, size_t size, unsigned long pitch, unsigned long alignment)
{
I830Ptr pI830 = I830PTR(pScrn);
if ((mem->buffer = i830_allocate_memory(pScrn,
name, size, pitch,
GTT_PAGE_SIZE, ALIGN_BOTH_ENDS, TILE_XMAJOR)) == NULL) {
ErrorF("Fail to alloc \n");
return BadAlloc;
}
if (drmAddMap(pI830->drmSubFD,
(drm_handle_t)(mem->buffer->offset + pI830->LinearAddr),
size, DRM_AGP, 0,
(drmAddress)&mem->handle) < 0) {
ErrorF("Fail to map %d \n", errno);
i830_free_memory(pScrn, mem->buffer);
return BadAlloc;
}
mem->size = size;
mem->offset = mem->buffer->offset;
return Success;
}
#endif
static int alloc_drm_memory(ScrnInfoPtr pScrn,
struct drm_memory_block *mem,
@ -109,57 +87,69 @@ static void free_drm_memory(ScrnInfoPtr pScrn,
static int create_context(ScrnInfoPtr pScrn,
XvMCContextPtr context, int *num_privates, CARD32 **private)
{
struct i965_xvmc_context *private_context, *context_dup;
I830Ptr I830 = I830PTR(pScrn);
DRIInfoPtr driinfo = I830->pDRIInfo;
struct i965_xvmc_context *private_context, *context_dup;
I830Ptr I830 = I830PTR(pScrn);
DRIInfoPtr driinfo = I830->pDRIInfo;
unsigned int blocknum =
(((context->width + 15)/16)*((context->height+15)/16));
unsigned int blocksize = 6*blocknum*64*sizeof(short);
blocksize = (blocksize + 4095)&(~4095);
if ((private_context = Xcalloc(sizeof(*private_context))) == NULL) {
ErrorF("XVMC Can not allocate private context\n");
return BadAlloc;
}
unsigned int blocknum =
(((context->width + 15)/16)*((context->height+15)/16));
unsigned int blocksize = 6*blocknum*64*sizeof(short);
blocksize = (blocksize + 4095)&(~4095);
if ((private_context = Xcalloc(sizeof(*private_context))) == NULL) {
ErrorF("XVMC Can not allocate private context\n");
return BadAlloc;
}
if ((context_dup = Xcalloc(sizeof(*private_context))) == NULL) {
ErrorF("XVMC Can not allocate private context\n");
return BadAlloc;
}
if ((context_dup = Xcalloc(sizeof(*private_context))) == NULL) {
ErrorF("XVMC Can not allocate private context\n");
return BadAlloc;
}
private_context->is_g4x = IS_G4X(I830);
private_context->is_965_q = IS_965_Q(I830);
private_context->comm.type = xvmc_driver->flag;
private_context->comm.sarea_size = driinfo->SAREASize;
private_context->comm.batchbuffer.offset = xvmc_driver->batch->offset;
private_context->comm.batchbuffer.size = xvmc_driver->batch->size;
private_context->comm.batchbuffer.handle = xvmc_driver->batch_handle;
private_context->is_g4x = IS_G4X(I830);
private_context->is_965_q = IS_965_Q(I830);
private_context->comm.type = xvmc_driver->flag;
private_context->comm.sarea_size = driinfo->SAREASize;
private_context->comm.batchbuffer.offset = xvmc_driver->batch->offset;
private_context->comm.batchbuffer.size = xvmc_driver->batch->size;
private_context->comm.batchbuffer.handle = xvmc_driver->batch_handle;
if (alloc_drm_memory(pScrn, &private_context->static_buffer,
if (alloc_drm_memory(pScrn, &private_context->static_buffer,
"XVMC static buffers",
I965_MC_STATIC_BUFFER_SIZE)) {
ErrorF("Unable to allocate and map static buffer for XVMC\n");
return BadAlloc;
}
ErrorF("Unable to allocate and map static buffer for XVMC\n");
return BadAlloc;
}
if (alloc_drm_memory(pScrn, &private_context->blocks,
if (alloc_drm_memory(pScrn, &private_context->blocks,
"XVMC blocks", blocksize)) {
ErrorF("Unable to allocate and map block buffer for XVMC\n");
ErrorF("Unable to allocate and map block buffer for XVMC\n");
return BadAlloc;
}
if (IS_G4X(I830)) {
if (alloc_drm_memory(pScrn, &private_context->slice,
"XVMC vld slice", VLD_MAX_SLICE_LEN)) {
ErrorF("Unable to allocate and vld slice buffer for XVMC\n");
return BadAlloc;
}
*num_privates = sizeof(*private_context)/sizeof(CARD32);
*private = (CARD32 *)private_context;
memcpy(context_dup, private_context, sizeof(*private_context));
context->driver_priv = context_dup;
}
return Success;
*num_privates = sizeof(*private_context)/sizeof(CARD32);
*private = (CARD32 *)private_context;
memcpy(context_dup, private_context, sizeof(*private_context));
context->driver_priv = context_dup;
return Success;
}
static void destroy_context(ScrnInfoPtr pScrn, XvMCContextPtr context)
{
struct i965_xvmc_context *private_context;
I830Ptr pI830 = I830PTR(pScrn);
private_context = context->driver_priv;
free_drm_memory(pScrn, &private_context->static_buffer);
if (IS_G4X(pI830))
free_drm_memory(pScrn, &private_context->slice);
Xfree(private_context);
}
@ -167,6 +157,7 @@ static int create_surface(ScrnInfoPtr pScrn, XvMCSurfacePtr surface,
int *num_priv, CARD32 **priv)
{
XvMCContextPtr ctx = surface->context;
struct i965_xvmc_surface *priv_surface, *surface_dup;
struct i965_xvmc_context *priv_ctx = ctx->driver_priv;
size_t bufsize = SIZE_YUV420(ctx->width, ctx->height);
@ -223,6 +214,7 @@ static int create_subpicture(ScrnInfoPtr pScrn, XvMCSubpicturePtr subpicture,
static void destroy_subpicture(ScrnInfoPtr pScrn, XvMCSubpicturePtr subpicture)
{
}
static int put_image(ScrnInfoPtr pScrn,
short src_x, short src_y,
short drw_x, short drw_y, short src_w,
@ -258,6 +250,20 @@ static void fini(ScrnInfoPtr screen_info)
{
}
static XF86MCSurfaceInfoRec yv12_mpeg2_vld_surface =
{
FOURCC_YV12,
XVMC_CHROMA_FORMAT_420,
0,
1936,
1096,
1920,
1080,
XVMC_MPEG_2|XVMC_VLD,
XVMC_INTRA_UNSIGNED,
NULL
};
static XF86MCSurfaceInfoRec yv12_mpeg2_surface =
{
FOURCC_YV12,
@ -297,6 +303,23 @@ static XF86MCSurfaceInfoPtr surface_info[] = {
&yv12_mpeg1_surface
};
static XF86MCSurfaceInfoPtr surface_info_vld[] = {
&yv12_mpeg2_vld_surface,
};
static XF86MCAdaptorRec adaptor_vld = {
.name = "Intel(R) Textured Video",
.num_surfaces = sizeof(surface_info_vld)/sizeof(surface_info_vld[0]),
.surfaces = surface_info_vld,
.CreateContext = create_context,
.DestroyContext = destroy_context,
.CreateSurface = create_surface,
.DestroySurface = destory_surface,
.CreateSubpicture = create_subpicture,
.DestroySubpicture = destroy_subpicture
};
static XF86MCAdaptorRec adaptor = {
.name = "Intel(R) Textured Video",
.num_surfaces = sizeof(surface_info)/sizeof(surface_info[0]),
@ -318,3 +341,11 @@ struct intel_xvmc_driver i965_xvmc_driver = {
.fini = fini
};
struct intel_xvmc_driver vld_xvmc_driver = {
.name = "xvmc_vld",
.adaptor = &adaptor_vld,
.flag = XVMC_I965_MPEG2_VLD,
.init = init,
.fini = fini
};

View File

@ -1,5 +1,5 @@
#define I965_MC_STATIC_BUFFER_SIZE (1024*512)
#define I965_MAX_SURFACES 32
#define I965_MAX_SURFACES 12
struct _i830_memory;
struct drm_memory_block {
struct _i830_memory *buffer;
@ -19,6 +19,7 @@ struct i965_xvmc_context {
struct _intel_xvmc_common comm;
struct drm_memory_block static_buffer;
struct drm_memory_block blocks;
struct drm_memory_block slice;
struct i965_xvmc_surface *surfaces[I965_MAX_SURFACES];
unsigned int is_g4x:1;
unsigned int is_965_q:1;

View File

@ -365,106 +365,3 @@ void i810_free_privContext(i810XvMCContext *pI810XvMC);
void dp(unsigned int *address, unsigned int i);
#endif

View File

@ -2,6 +2,7 @@ if XVMC
lib_LTLIBRARIES=libI810XvMC.la libIntelXvMC.la
endif
SUBDIRS = shader
libI810XvMC_la_SOURCES = I810XvMC.c \
I810XvMC.h
@ -19,6 +20,8 @@ libIntelXvMC_la_SOURCES = intel_xvmc.c \
i915_xvmc.h \
i965_xvmc.c \
i965_xvmc.h \
xvmc_vld.c \
xvmc_vld.h \
intel_batchbuffer.c \
intel_batchbuffer.h \
xf86dri.c \

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -96,13 +96,6 @@ static const uint32_t dual_prime_igd_kernel_static[][4]= {
#define ALIGN(i,m) (((i) + (m) - 1) & ~((m) - 1))
#define VFE_GENERIC_MODE 0x0
#define VFE_VLD_MODE 0x1
#define VFE_IS_MODE 0x2
#define VFE_AVC_MC_MODE 0x4
#define VFE_AVC_IT_MODE 0x7
#define VFE_VC1_IT_MODE 0x7
#define MAX_SURFACE_NUM 10
#define DESCRIPTOR_NUM 12

View File

@ -337,8 +337,10 @@ _X_EXPORT Status XvMCCreateContext(Display *display, XvPortID port,
case XVMC_I965_MPEG2_MC:
xvmc_driver = &i965_xvmc_mc_driver;
break;
case XVMC_I945_MPEG2_VLD:
case XVMC_I965_MPEG2_VLD:
xvmc_driver = &xvmc_vld_driver;
break;
case XVMC_I945_MPEG2_VLD:
default:
XVMC_ERR("unimplemented xvmc type %d", comm->type);
XFree(priv_data);
@ -1159,3 +1161,47 @@ _X_EXPORT Status XvMCGetAttribute(Display *display, XvMCContext *context,
{
return Success;
}
_X_EXPORT Status XvMCBeginSurface(Display *display, XvMCContext *context,
XvMCSurface *target,
XvMCSurface *past,
XvMCSurface *future,
const XvMCMpegControl *control)
{
if (xvmc_driver->begin_surface(display, context,
target, past, future, control)) {
XVMC_ERR("BeginSurface fail\n");
return BadValue;
}
return Success;
}
_X_EXPORT Status XvMCLoadQMatrix(Display *display, XvMCContext *context,
const XvMCQMatrix *qmx)
{
if (xvmc_driver->load_qmatrix(display, context, qmx)) {
XVMC_ERR("LoadQMatrix fail\n");
return BadValue;
}
return Success;
}
_X_EXPORT Status XvMCPutSlice(Display *display, XvMCContext *context,
char *slice, int nbytes)
{
if (xvmc_driver->put_slice(display, context, slice, nbytes)) {
XVMC_ERR("PutSlice fail\n");
return BadValue;
}
return Success;
}
_X_EXPORT Status XvMCPutSlice2(Display *display, XvMCContext *context,
char *slice, int nbytes, int slice_code)
{
if (xvmc_driver->put_slice2(display, context, slice, nbytes, slice_code)) {
XVMC_ERR("PutSlice2 fail\n");
return BadValue;
}
return Success;
}

View File

@ -51,6 +51,7 @@
#include <X11/extensions/Xvlib.h>
#include <X11/extensions/XvMC.h>
#include <X11/extensions/XvMClib.h>
#include <X11/extensions/vldXvMC.h>
#include <drm_sarea.h>
#include "xf86dri.h"
@ -197,11 +198,23 @@ typedef struct _intel_xvmc_driver {
Status (*get_surface_status)(Display *display, XvMCSurface *surface, int *stat);
/* XXX more for vld */
Status (*begin_surface)(Display *display, XvMCContext *context,
XvMCSurface *target_surface,
XvMCSurface *past_surface,
XvMCSurface *future_surface,
const XvMCMpegControl *control);
Status (*load_qmatrix)(Display *display, XvMCContext *context,
const XvMCQMatrix *qmx);
Status (*put_slice)(Display *display, XvMCContext *context,
unsigned char *slice, int bytes);
Status (*put_slice2)(Display *display, XvMCContext *context,
unsigned char *slice, int bytes, int slice_code);
} intel_xvmc_driver_t, *intel_xvmc_driver_ptr;
extern struct _intel_xvmc_driver i915_xvmc_mc_driver;
extern struct _intel_xvmc_driver i965_xvmc_mc_driver;
extern struct _intel_xvmc_driver xvmc_vld_driver;
extern struct _intel_xvmc_driver *xvmc_driver;
#define SET_BLOCKED_SIGSET() do { \
@ -262,4 +275,12 @@ extern void intel_xvmc_dump_render(XvMCContext *context, unsigned int picture_st
unsigned int num_macroblocks, unsigned int first_macroblock,
XvMCMacroBlockArray *macroblock_array, XvMCBlockArray *blocks);
#define VFE_GENERIC_MODE 0x0
#define VFE_VLD_MODE 0x1
#define VFE_IS_MODE 0x2
#define VFE_AVC_MC_MODE 0x4
#define VFE_AVC_IT_MODE 0x7
#define VFE_VC1_IT_MODE 0x7
#endif

View File

@ -0,0 +1 @@
SUBDIRS = vld

View File

@ -0,0 +1,31 @@
INTEL_G4A = ipicture.g4a \
lib.g4a \
frame_forward.g4a \
frame_backward.g4a \
frame_f_b.g4a \
field_forward.g4a \
field_backward.g4a \
field_f_b.g4a
INTEL_G4B = ipicture.g4b \
lib.g4b \
frame_forward.g4b \
frame_backward.g4b \
frame_f_b.g4b \
field_forward.g4b \
field_backward.g4b \
field_f_b.g4b
if HAVE_GEN4ASM
SUFFIXES = .g4a .g4b
.g4a.g4b:
m4 $*.g4a > $*.g4m && intel-gen4asm -o $@ $*.g4m && rm $*.g4m
$(INTEL_G4B): $(INTEL_G4I)
BUILT_SOURCES= $(INTEL_G4B)
clean-local:
-rm -f $(INTEL_G4B)
endif

View File

@ -0,0 +1,152 @@
/*
* Copyright © 2008 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Author:
* Zou Nan hai <nanhai.zou@intel.com>
* Yan Li <li.l.yan@intel.com>
* Liu Xi bin<xibin.liu@intel.com>
*/
/* GRF allocation:
g1~g30: constant buffer
g1~g2:intra IQ matrix
g3~g4:non intra IQ matrix
g5~g20:IDCT table
g31: thread payload
g32: message descriptor for reading reference data
g58~g81:reference data
g82: thread payload backup
g83~g106:IDCT data */
mov (2) g31.0<1>UD g82.12<2,2,1>UW {align1}; //restore x and y
and.nz (1) null g82.2<1,1,1>UW 0x20UW {align1}; //dct_type
(f0) jmpi field_dct;
add (16) g58.0<1>W g83.0<16,16,1>W g58.0<16,16,2>UB {align1};
add (16) g59.0<1>W g84.0<16,16,1>W g59.0<16,16,2>UB {align1};
add (16) g60.0<1>W g85.0<16,16,1>W g60.0<16,16,2>UB {align1};
add (16) g61.0<1>W g86.0<16,16,1>W g61.0<16,16,2>UB {align1};
add (16) g62.0<1>W g87.0<16,16,1>W g62.0<16,16,2>UB {align1};
add (16) g63.0<1>W g88.0<16,16,1>W g63.0<16,16,2>UB {align1};
add (16) g64.0<1>W g89.0<16,16,1>W g64.0<16,16,2>UB {align1};
add (16) g65.0<1>W g90.0<16,16,1>W g65.0<16,16,2>UB {align1};
add (16) g66.0<1>W g91.0<16,16,1>W g66.0<16,16,2>UB {align1};
add (16) g67.0<1>W g92.0<16,16,1>W g67.0<16,16,2>UB {align1};
add (16) g68.0<1>W g93.0<16,16,1>W g68.0<16,16,2>UB {align1};
add (16) g69.0<1>W g94.0<16,16,1>W g69.0<16,16,2>UB {align1};
add (16) g70.0<1>W g95.0<16,16,1>W g70.0<16,16,2>UB {align1};
add (16) g71.0<1>W g96.0<16,16,1>W g71.0<16,16,2>UB {align1};
add (16) g72.0<1>W g97.0<16,16,1>W g72.0<16,16,2>UB {align1};
add (16) g73.0<1>W g98.0<16,16,1>W g73.0<16,16,2>UB {align1};
jmpi write_back;
field_dct:
add (16) g58.0<1>W g83.0<16,16,1>W g58.0<16,16,2>UB {align1};
add (16) g59.0<1>W g91.0<16,16,1>W g59.0<16,16,2>UB {align1};
add (16) g60.0<1>W g84.0<16,16,1>W g60.0<16,16,2>UB {align1};
add (16) g61.0<1>W g92.0<16,16,1>W g61.0<16,16,2>UB {align1};
add (16) g62.0<1>W g85.0<16,16,1>W g62.0<16,16,2>UB {align1};
add (16) g63.0<1>W g93.0<16,16,1>W g63.0<16,16,2>UB {align1};
add (16) g64.0<1>W g86.0<16,16,1>W g64.0<16,16,2>UB {align1};
add (16) g65.0<1>W g94.0<16,16,1>W g65.0<16,16,2>UB {align1};
add (16) g66.0<1>W g87.0<16,16,1>W g66.0<16,16,2>UB {align1};
add (16) g67.0<1>W g95.0<16,16,1>W g67.0<16,16,2>UB {align1};
add (16) g68.0<1>W g88.0<16,16,1>W g68.0<16,16,2>UB {align1};
add (16) g69.0<1>W g96.0<16,16,1>W g69.0<16,16,2>UB {align1};
add (16) g70.0<1>W g89.0<16,16,1>W g70.0<16,16,2>UB {align1};
add (16) g71.0<1>W g97.0<16,16,1>W g71.0<16,16,2>UB {align1};
add (16) g72.0<1>W g90.0<16,16,1>W g72.0<16,16,2>UB {align1};
add (16) g73.0<1>W g98.0<16,16,1>W g73.0<16,16,2>UB {align1};
write_back:
mov (1) g31.8<1>UD 0x00F000FUD {align1};
mov.sat (16) g58.0<2>UB g58.0<16,16,1>W {align1};
mov.sat (16) g59.0<2>UB g59.0<16,16,1>W {align1};
mov.sat (16) g60.0<2>UB g60.0<16,16,1>W {align1};
mov.sat (16) g61.0<2>UB g61.0<16,16,1>W {align1};
mov.sat (16) g62.0<2>UB g62.0<16,16,1>W {align1};
mov.sat (16) g63.0<2>UB g63.0<16,16,1>W {align1};
mov.sat (16) g64.0<2>UB g64.0<16,16,1>W {align1};
mov.sat (16) g65.0<2>UB g65.0<16,16,1>W {align1};
mov.sat (16) g66.0<2>UB g66.0<16,16,1>W {align1};
mov.sat (16) g67.0<2>UB g67.0<16,16,1>W {align1};
mov.sat (16) g68.0<2>UB g68.0<16,16,1>W {align1};
mov.sat (16) g69.0<2>UB g69.0<16,16,1>W {align1};
mov.sat (16) g70.0<2>UB g70.0<16,16,1>W {align1};
mov.sat (16) g71.0<2>UB g71.0<16,16,1>W {align1};
mov.sat (16) g72.0<2>UB g72.0<16,16,1>W {align1};
mov.sat (16) g73.0<2>UB g73.0<16,16,1>W {align1};
mov (16) m1.0<1>UB g58.0<16,16,2>UB {align1};
mov (16) m1.16<1>UB g59.0<16,16,2>UB {align1};
mov (16) m2.0<1>UB g60.0<16,16,2>UB {align1};
mov (16) m2.16<1>UB g61.0<16,16,2>UB {align1};
mov (16) m3.0<1>UB g62.0<16,16,2>UB {align1};
mov (16) m3.16<1>UB g63.0<16,16,2>UB {align1};
mov (16) m4.0<1>UB g64.0<16,16,2>UB {align1};
mov (16) m4.16<1>UB g65.0<16,16,2>UB {align1};
mov (16) m5.0<1>UB g66.0<16,16,2>UB {align1};
mov (16) m5.16<1>UB g67.0<16,16,2>UB {align1};
mov (16) m6.0<1>UB g68.0<16,16,2>UB {align1};
mov (16) m6.16<1>UB g69.0<16,16,2>UB {align1};
mov (16) m7.0<1>UB g70.0<16,16,2>UB {align1};
mov (16) m7.16<1>UB g71.0<16,16,2>UB {align1};
mov (16) m8.0<1>UB g72.0<16,16,2>UB {align1};
mov (16) m8.16<1>UB g73.0<16,16,2>UB {align1};
send (16) 0 acc0<1>UW g31<8,8,1>UW write(0,0,2,0) mlen 9 rlen 0 {align1};
//U
mov (1) g31.8<1>UD 0x0070007UD { align1 };
shr (2) g31.0<1>UD g31.0<2,2,1>UD 1D {align1};
add (16) g74.0<1>W g99.0<16,16,1>W g74.0<16,16,1>UW {align1};
add (16) g75.0<1>W g100.0<16,16,1>W g75.0<16,16,1>UW {align1};
add (16) g76.0<1>W g101.0<16,16,1>W g76.0<16,16,1>UW {align1};
add (16) g77.0<1>W g102.0<16,16,1>W g77.0<16,16,1>UW {align1};
mov.sat (16) g74.0<2>UB g74.0<16,16,1>W {align1};
mov.sat (16) g75.0<2>UB g75.0<16,16,1>W {align1};
mov.sat (16) g76.0<2>UB g76.0<16,16,1>W {align1};
mov.sat (16) g77.0<2>UB g77.0<16,16,1>W {align1};
mov (16) m1.0<1>UB g74.0<16,16,2>UB {align1};
mov (16) m1.16<1>UB g75.0<16,16,2>UB {align1};
mov (16) m2.0<1>UB g76.0<16,16,2>UB {align1};
mov (16) m2.16<1>UB g77.0<16,16,2>UB {align1};
send (16) 0 acc0<1>UW g31<8,8,1>UW write(1, 0, 2, 0) mlen 3 rlen 0 { align1 };
//V
add (16) g78.0<1>UW g103.0<16,16,1>W g78.0<16,16,1>UW {align1};
add (16) g79.0<1>UW g104.0<16,16,1>W g79.0<16,16,1>UW {align1};
add (16) g80.0<1>UW g105.0<16,16,1>W g80.0<16,16,1>UW {align1};
add (16) g81.0<1>UW g106.0<16,16,1>W g81.0<16,16,1>UW {align1};
mov.sat (16) g78.0<2>UB g78.0<16,16,1>W {align1};
mov.sat (16) g79.0<2>UB g79.0<16,16,1>W {align1};
mov.sat (16) g80.0<2>UB g80.0<16,16,1>W {align1};
mov.sat (16) g81.0<2>UB g81.0<16,16,1>W {align1};
mov (16) m1.0<1>UB g78.0<16,16,2>UB {align1};
mov (16) m1.16<1>UB g79.0<16,16,2>UB {align1};
mov (16) m2.0<1>UB g80.0<16,16,2>UB {align1};
mov (16) m2.16<1>UB g81.0<16,16,2>UB {align1};
send (16) 0 acc0<1>UW g31<8,8,1>UW write(2, 0, 2, 0) mlen 3 rlen 0 { align1 };
send (16) 0 acc0<1>UW g0<8,8,1>UW
thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};

View File

@ -0,0 +1,64 @@
/*
* Copyright © 2008 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Author:
* Zou Nan hai <nanhai.zou@intel.com>
* Yan Li <li.l.yan@intel.com>
* Liu Xi bin<xibin.liu@intel.com>
*/
/* GRF allocation:
g1~g30: constant buffer
g1~g2:intra IQ matrix
g3~g4:non intra IQ matrix
g5~g20:IDCT table
g112~g115: intra IQ matrix in UW format (in order to use instruction compress), copys from g1~g2
g[a0.0]:DCT data of a block
g125: ip before jump
if(v==0 && u==0 && intra_mb)
F''[v][u] = QF[v][u] * intra_dc_mult
else
F''[v][u] = (QF[v][u]*W[w][v][u]*quantiser_scale*2)/32
*/
DO_IQ_INTRA:
add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1};
mov (1) g111.0<1>W g[a0.0]<1,1,1>W {align1};
mul (16) g116.0<1>D g[a0.0]<8,8,1>W g112.0<8,8,1>UW {align1 compr};
mul (16) g116.0<1>D g116.0<8,8,1>D g109.0<8,8,0>UW {align1 compr};
asr (16) g116.0<1>D g116.0<8,8,1>D 4UW {align1 compr};
mul (1) g116.0<1>D g111<1,1,1>W g109.4<1,1,1>UW {align1}; //intra_dc_mult
add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1};
mul (16) g118.0<1>D g[a0.0]<8,8,1>W g113.0<8,8,1>UW {align1 compr};
mul (16) g118.0<1>D g118.0<8,8,1>D g109.0<8,8,0>UW {align1 compr};
asr (16) g118.0<1>D g118.0<8,8,1>D 4UW {align1 compr};
add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1};
mul (16) g120.0<1>D g[a0.0]<8,8,1>W g114.0<8,8,1>UW {align1 compr};
mul (16) g120.0<1>D g120.0<8,8,1>D g109.0<8,8,0>UW {align1 compr};
asr (16) g120.0<1>D g120.0<8,8,1>D 4UW {align1 compr};
add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1};
mul (16) g122.0<1>D g[a0.0]<8,8,1>W g115.0<8,8,1>UW {align1 compr};
mul (16) g122.0<1>D g122.0<8,8,1>D g109.0<8,8,0>UW {align1 compr};
asr (16) g122.0<1>D g122.0<8,8,1>D 4UW {align1 compr};
add (1) ip g125.0<1,1,1>UD 0x20UD {align1}; //jump back

View File

@ -0,0 +1,59 @@
/*
* Copyright © 2009 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Author:
* Zou Nan hai <nanhai.zou@intel.com>
* Yan Li <li.l.yan@intel.com>
* Liu Xi bin<xibin.liu@intel.com>
*/
/* GRF allocation:
g1~g30: constant buffer
g1~g2:intra IQ matrix
g3~g4:non intra IQ matrix
g5~g20:IDCT table
g112~g115: intra IQ matrix in UW format (in order to use instruction compress), copys from g1~g2
g[a0.0]:DCT data of a block
g125: ip before jump
F''[v][u]=(((QF[v][u]*2)+Sign(QF[v][u])) * W[w][v][u] * quantiser_scale)/32;
*/
DO_IQ_NON_INTRA:
add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1};
mul (16) g116.0<1>D g[a0.0]<8,8,1>W g112.0<8,8,1>UW {align1 compr};
mul (16) g116.0<1>D g116.0<8,8,1>D g109.0<8,8,0>UW {align1 compr};
asr (16) g116.0<1>D g116.0<8,8,1>D 4UW {align1 compr};
add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1};
mul (16) g118.0<1>D g[a0.0]<8,8,1>W g113.0<8,8,1>UW {align1 compr};
mul (16) g118.0<1>D g118.0<8,8,1>D g109.0<8,8,0>UW {align1 compr};
asr (16) g118.0<1>D g118.0<8,8,1>D 4UW {align1 compr};
add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1};
mul (16) g120.0<1>D g[a0.0]<8,8,1>W g114.0<8,8,1>UW {align1 compr};
mul (16) g120.0<1>D g120.0<8,8,1>D g109.0<8,8,0>UW {align1 compr};
asr (16) g120.0<1>D g120.0<8,8,1>D 4UW {align1 compr};
add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1};
mul (16) g122.0<1>D g[a0.0]<8,8,1>W g115.0<8,8,1>UW {align1 compr};
mul (16) g122.0<1>D g122.0<8,8,1>D g109.0<8,8,0>UW {align1 compr};
asr (16) g122.0<1>D g122.0<8,8,1>D 4UW {align1 compr};
add (1) ip g125.0<1,1,1>UD 0x20UD {align1}; //jump back

View File

@ -0,0 +1,126 @@
/*
* Copyright © 2009 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Author:
* Zou Nan hai <nanhai.zou@intel.com>
* Yan Li <li.l.yan@intel.com>
* Liu Xi bin<xibin.liu@intel.com>
*/
/* GRF allocation:
g1~g30: constant buffer
g1~g2:intra IQ matrix
g3~g4:non intra IQ matrix
g5~g20:IDCT table
g31: thread payload
g58~g81:reference data
g82: thread payload backup
g83~g106:IDCT data
g115: message descriptor for reading reference data */
mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
mov(2) g31.0<1>UD g82.12<2,2,1>UW {align1};
mov (1) g126.8<1>UD ip {align1};
mov (1) ip g21.0<1,1,1>UD {align1};
/*field 0 of Y*/
asr (2) g31.14<1>W g82.20<2,2,1>W 1W {align1};
shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
and.nz (1) null g82.2<1,1,1>UW 0x2000UW {align1};
(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
define(`surface',`7')
define(`mv1',`g82.20')
define(`mv2',`g82.22')
include(`motion_field_y.g4i')
mov (8) g58.0<1>UD g32.0<8,8,1>UD {align1};
mov (8) g60.0<1>UD g33.0<8,8,1>UD {align1};
mov (8) g62.0<1>UD g34.0<8,8,1>UD {align1};
mov (8) g64.0<1>UD g35.0<8,8,1>UD {align1};
mov (8) g66.0<1>UD g36.0<8,8,1>UD {align1};
mov (8) g68.0<1>UD g37.0<8,8,1>UD {align1};
mov (8) g70.0<1>UD g38.0<8,8,1>UD {align1};
mov (8) g72.0<1>UD g39.0<8,8,1>UD {align1};
/*field 1 of Y*/
asr (2) g31.14<1>W g82.28<2,2,1>W 1W {align1};
shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
and.nz (1) null g82.2<1,1,1>UW 0x8000UW {align1};
(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
define(`surface',`7')
define(`mv1',`g82.28')
define(`mv2',`g82.30')
include(`motion_field_y.g4i')
mov (8) g59.0<1>UD g32.0<8,8,1>UD {align1};
mov (8) g61.0<1>UD g33.0<8,8,1>UD {align1};
mov (8) g63.0<1>UD g34.0<8,8,1>UD {align1};
mov (8) g65.0<1>UD g35.0<8,8,1>UD {align1};
mov (8) g67.0<1>UD g36.0<8,8,1>UD {align1};
mov (8) g69.0<1>UD g37.0<8,8,1>UD {align1};
mov (8) g71.0<1>UD g38.0<8,8,1>UD {align1};
mov (8) g73.0<1>UD g39.0<8,8,1>UD {align1};
/*field 0 of UV*/
shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1};
asr (2) g82.20<1>W g82.20<2,2,1>W 1W {align1};
asr (2) g31.14<1>W g82.20<2,2,1>W 1W {align1};
shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
and.nz (1) null g82.2<1,1,1>UW 0x2000UW {align1};
(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
define(`surface_u', `8')
define(`surface_v', `9')
define(`mv1',`g82.20')
define(`mv2',`g82.22')
include(`motion_field_uv.g4i')
mov (8) g74.0<1>UW g32.0<8,8,1>UW {align1};
mov (8) g75.0<1>UW g33.0<8,8,1>UW {align1};
mov (8) g76.0<1>UW g34.0<8,8,1>UW {align1};
mov (8) g77.0<1>UW g35.0<8,8,1>UW {align1};
mov (8) g78.0<1>UW g36.0<8,8,1>UW {align1};
mov (8) g79.0<1>UW g37.0<8,8,1>UW {align1};
mov (8) g80.0<1>UW g38.0<8,8,1>UW {align1};
mov (8) g81.0<1>UW g39.0<8,8,1>UW {align1};
/*field 1 of UV*/
asr (2) g82.28<1>W g82.28<2,2,1>W 1W {align1};
asr (2) g31.14<1>W g82.28<2,2,1>W 1W {align1};
shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
and.nz (1) null g82.2<1,1,1>UW 0x8000UW {align1};
(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
define(`mv1',`g82.28')
define(`mv2',`g82.30')
include(`motion_field_uv.g4i')
mov (8) g74.16<1>UW g32.0<8,8,1>UW {align1};
mov (8) g75.16<1>UW g33.0<8,8,1>UW {align1};
mov (8) g76.16<1>UW g34.0<8,8,1>UW {align1};
mov (8) g77.16<1>UW g35.0<8,8,1>UW {align1};
mov (8) g78.16<1>UW g36.0<8,8,1>UW {align1};
mov (8) g79.16<1>UW g37.0<8,8,1>UW {align1};
mov (8) g80.16<1>UW g38.0<8,8,1>UW {align1};
mov (8) g81.16<1>UW g39.0<8,8,1>UW {align1};
include(`addidct.g4i')
send (16) 0 acc0<1>UW g0<8,8,1>UW
thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};

View File

@ -0,0 +1,413 @@
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 },
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 },
{ 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
{ 0x00000001, 0x34000020, 0x002102a0, 0x00000000 },
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 },
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x20002000 },
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
{ 0x01000005, 0x20002dbc, 0x00210a54, 0x00010001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
{ 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
{ 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 },
{ 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 },
{ 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 },
{ 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 },
{ 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 },
{ 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 },
{ 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 },
{ 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 },
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 },
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 },
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 },
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 },
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 },
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 },
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 },
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 },
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 },
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 },
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 },
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 },
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 },
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 },
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 },
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 },
{ 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 },
{ 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 },
{ 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 },
{ 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 },
{ 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 },
{ 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
{ 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
{ 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 },
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 },
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 },
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 },
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 },
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 },
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 },
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
{ 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 },
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 },
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 },
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 },
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 },
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 },
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 },
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
{ 0x00800001, 0x24000229, 0x00b10500, 0x00000000 },
{ 0x00800001, 0x24200229, 0x00b10540, 0x00000000 },
{ 0x00800001, 0x24400229, 0x00b10580, 0x00000000 },
{ 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 },
{ 0x00800001, 0x24800229, 0x00b10600, 0x00000000 },
{ 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 },
{ 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 },
{ 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 },
{ 0x00600001, 0x27400021, 0x008d0400, 0x00000000 },
{ 0x00600001, 0x27800021, 0x008d0420, 0x00000000 },
{ 0x00600001, 0x27c00021, 0x008d0440, 0x00000000 },
{ 0x00600001, 0x28000021, 0x008d0460, 0x00000000 },
{ 0x00600001, 0x28400021, 0x008d0480, 0x00000000 },
{ 0x00600001, 0x28800021, 0x008d04a0, 0x00000000 },
{ 0x00600001, 0x28c00021, 0x008d04c0, 0x00000000 },
{ 0x00600001, 0x29000021, 0x008d04e0, 0x00000000 },
{ 0x0020000c, 0x23ee3dad, 0x00450a5c, 0x00010001 },
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x80008000 },
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
{ 0x01000005, 0x20002dbc, 0x00210a5c, 0x00010001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
{ 0x01000005, 0x20002dbc, 0x00210a5e, 0x00010001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
{ 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 },
{ 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 },
{ 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 },
{ 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 },
{ 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 },
{ 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 },
{ 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 },
{ 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 },
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 },
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 },
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 },
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 },
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 },
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 },
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 },
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 },
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 },
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 },
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 },
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 },
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 },
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 },
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 },
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 },
{ 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 },
{ 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 },
{ 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 },
{ 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 },
{ 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 },
{ 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
{ 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
{ 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 },
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 },
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 },
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 },
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 },
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 },
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 },
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
{ 0x01000005, 0x20002dbc, 0x00210a5e, 0x00010001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 },
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 },
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 },
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 },
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 },
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 },
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 },
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
{ 0x00800001, 0x24000229, 0x00b10500, 0x00000000 },
{ 0x00800001, 0x24200229, 0x00b10540, 0x00000000 },
{ 0x00800001, 0x24400229, 0x00b10580, 0x00000000 },
{ 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 },
{ 0x00800001, 0x24800229, 0x00b10600, 0x00000000 },
{ 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 },
{ 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 },
{ 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 },
{ 0x00600001, 0x27600021, 0x008d0400, 0x00000000 },
{ 0x00600001, 0x27a00021, 0x008d0420, 0x00000000 },
{ 0x00600001, 0x27e00021, 0x008d0440, 0x00000000 },
{ 0x00600001, 0x28200021, 0x008d0460, 0x00000000 },
{ 0x00600001, 0x28600021, 0x008d0480, 0x00000000 },
{ 0x00600001, 0x28a00021, 0x008d04a0, 0x00000000 },
{ 0x00600001, 0x28e00021, 0x008d04c0, 0x00000000 },
{ 0x00600001, 0x29200021, 0x008d04e0, 0x00000000 },
{ 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 },
{ 0x0020000c, 0x2a543dad, 0x00450a54, 0x00010001 },
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 },
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x20002000 },
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
{ 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a008 },
{ 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a009 },
{ 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 },
{ 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 },
{ 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 },
{ 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 },
{ 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 },
{ 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 },
{ 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 },
{ 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 },
{ 0x00600001, 0x29400129, 0x008d0400, 0x00000000 },
{ 0x00600001, 0x29600129, 0x008d0420, 0x00000000 },
{ 0x00600001, 0x29800129, 0x008d0440, 0x00000000 },
{ 0x00600001, 0x29a00129, 0x008d0460, 0x00000000 },
{ 0x00600001, 0x29c00129, 0x008d0480, 0x00000000 },
{ 0x00600001, 0x29e00129, 0x008d04a0, 0x00000000 },
{ 0x00600001, 0x2a000129, 0x008d04c0, 0x00000000 },
{ 0x00600001, 0x2a200129, 0x008d04e0, 0x00000000 },
{ 0x0020000c, 0x2a5c3dad, 0x00450a5c, 0x00010001 },
{ 0x0020000c, 0x23ee3dad, 0x00450a5c, 0x00010001 },
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x80008000 },
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
{ 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a008 },
{ 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a009 },
{ 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 },
{ 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 },
{ 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 },
{ 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 },
{ 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 },
{ 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 },
{ 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 },
{ 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 },
{ 0x00600001, 0x29500129, 0x008d0400, 0x00000000 },
{ 0x00600001, 0x29700129, 0x008d0420, 0x00000000 },
{ 0x00600001, 0x29900129, 0x008d0440, 0x00000000 },
{ 0x00600001, 0x29b00129, 0x008d0460, 0x00000000 },
{ 0x00600001, 0x29d00129, 0x008d0480, 0x00000000 },
{ 0x00600001, 0x29f00129, 0x008d04a0, 0x00000000 },
{ 0x00600001, 0x2a100129, 0x008d04c0, 0x00000000 },
{ 0x00600001, 0x2a300129, 0x008d04e0, 0x00000000 },
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 },
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 },
{ 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 },
{ 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 },
{ 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 },
{ 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 },
{ 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 },
{ 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 },
{ 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 },
{ 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 },
{ 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 },
{ 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 },
{ 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 },
{ 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 },
{ 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 },
{ 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 },
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 },
{ 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 },
{ 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 },
{ 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 },
{ 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 },
{ 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 },
{ 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 },
{ 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 },
{ 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 },
{ 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 },
{ 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 },
{ 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 },
{ 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 },
{ 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 },
{ 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 },
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 },
{ 0x00000001, 0x23e80061, 0x00000000, 0x000f000f },
{ 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 },
{ 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 },
{ 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 },
{ 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 },
{ 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 },
{ 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 },
{ 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 },
{ 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 },
{ 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 },
{ 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 },
{ 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 },
{ 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 },
{ 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 },
{ 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 },
{ 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 },
{ 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 },
{ 0x00800001, 0x20200232, 0x00b20740, 0x00000000 },
{ 0x00800001, 0x20300232, 0x00b20760, 0x00000000 },
{ 0x00800001, 0x20400232, 0x00b20780, 0x00000000 },
{ 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 },
{ 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 },
{ 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 },
{ 0x00800001, 0x20800232, 0x00b20800, 0x00000000 },
{ 0x00800001, 0x20900232, 0x00b20820, 0x00000000 },
{ 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 },
{ 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 },
{ 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 },
{ 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 },
{ 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 },
{ 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 },
{ 0x00800001, 0x21000232, 0x00b20900, 0x00000000 },
{ 0x00800001, 0x21100232, 0x00b20920, 0x00000000 },
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 },
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 },
{ 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 },
{ 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 },
{ 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 },
{ 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 },
{ 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 },
{ 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 },
{ 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 },
{ 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 },
{ 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 },
{ 0x00800001, 0x20200232, 0x00b20940, 0x00000000 },
{ 0x00800001, 0x20300232, 0x00b20960, 0x00000000 },
{ 0x00800001, 0x20400232, 0x00b20980, 0x00000000 },
{ 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 },
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 },
{ 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 },
{ 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 },
{ 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 },
{ 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 },
{ 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 },
{ 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 },
{ 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 },
{ 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 },
{ 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 },
{ 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 },
{ 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 },
{ 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 },
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 },
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },

View File

@ -0,0 +1,213 @@
/*
* Copyright © 2009 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Author:
* Zou Nan hai <nanhai.zou@intel.com>
* Yan Li <li.l.yan@intel.com>
* Liu Xi bin<xibin.liu@intel.com>
*/
/* GRF allocation:
g1~g30: constant buffer
g1~g2:intra IQ matrix
g3~g4:non intra IQ matrix
g5~g20:IDCT table
g31: thread payload
g58~g81:reference data
g82: thread payload backup
g83~g106:IDCT data
g115: message descriptor for reading reference data */
mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
mov(2) g31.0<1>UD g82.12<2,2,1>UW {align1};
mov (1) g126.8<1>UD ip {align1};
mov (1) ip g21.0<1,1,1>UD {align1};
/*field 0 forward prediction of Y*/
asr (2) g31.14<1>W g82.16<2,2,1>W 1W {align1};
shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
and.nz (1) null g82.2<1,1,1>UW 0x1000UW {align1};
(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
define(`surface',`4')
define(`mv1',`g82.16')
define(`mv2',`g82.18')
include(`motion_field_y.g4i')
mov (8) g58.0<1>UD g32.0<8,8,1>UD {align1};
mov (8) g60.0<1>UD g33.0<8,8,1>UD {align1};
mov (8) g62.0<1>UD g34.0<8,8,1>UD {align1};
mov (8) g64.0<1>UD g35.0<8,8,1>UD {align1};
mov (8) g66.0<1>UD g36.0<8,8,1>UD {align1};
mov (8) g68.0<1>UD g37.0<8,8,1>UD {align1};
mov (8) g70.0<1>UD g38.0<8,8,1>UD {align1};
mov (8) g72.0<1>UD g39.0<8,8,1>UD {align1};
/*field 1 forward prediction of Y*/
asr (2) g31.14<1>W g82.24<2,2,1>W 1W {align1};
shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
and.nz (1) null g82.2<1,1,1>UW 0x4000UW {align1};
(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
define(`surface',`4')
define(`mv1',`g82.24')
define(`mv2',`g82.26')
include(`motion_field_y.g4i')
mov (8) g59.0<1>UD g32.0<8,8,1>UD {align1};
mov (8) g61.0<1>UD g33.0<8,8,1>UD {align1};
mov (8) g63.0<1>UD g34.0<8,8,1>UD {align1};
mov (8) g65.0<1>UD g35.0<8,8,1>UD {align1};
mov (8) g67.0<1>UD g36.0<8,8,1>UD {align1};
mov (8) g69.0<1>UD g37.0<8,8,1>UD {align1};
mov (8) g71.0<1>UD g38.0<8,8,1>UD {align1};
mov (8) g73.0<1>UD g39.0<8,8,1>UD {align1};
/*field 0 forward prediction of UV*/
shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1};
asr (2) g82.16<1>W g82.16<2,2,1>W 1W {align1};
asr (2) g31.14<1>W g82.16<2,2,1>W 1W {align1};
shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
and.nz (1) null g82.2<1,1,1>UW 0x1000UW {align1};
(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
define(`surface_u', `5')
define(`surface_v', `6')
define(`mv1',`g82.16')
define(`mv2',`g82.18')
include(`motion_field_uv.g4i')
mov (8) g74.0<1>UW g32.0<8,8,1>UW {align1};
mov (8) g75.0<1>UW g33.0<8,8,1>UW {align1};
mov (8) g76.0<1>UW g34.0<8,8,1>UW {align1};
mov (8) g77.0<1>UW g35.0<8,8,1>UW {align1};
mov (8) g78.0<1>UW g36.0<8,8,1>UW {align1};
mov (8) g79.0<1>UW g37.0<8,8,1>UW {align1};
mov (8) g80.0<1>UW g38.0<8,8,1>UW {align1};
mov (8) g81.0<1>UW g39.0<8,8,1>UW {align1};
/*field 1 forward prediction of UV*/
asr (2) g82.24<1>W g82.24<2,2,1>W 1W {align1};
asr (2) g31.14<1>W g82.24<2,2,1>W 1W {align1};
shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
and.nz (1) null g82.2<1,1,1>UW 0x4000UW {align1};
(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
define(`mv1',`g82.24')
define(`mv2',`g82.26')
include(`motion_field_uv.g4i')
mov (8) g74.16<1>UW g32.0<8,8,1>UW {align1};
mov (8) g75.16<1>UW g33.0<8,8,1>UW {align1};
mov (8) g76.16<1>UW g34.0<8,8,1>UW {align1};
mov (8) g77.16<1>UW g35.0<8,8,1>UW {align1};
mov (8) g78.16<1>UW g36.0<8,8,1>UW {align1};
mov (8) g79.16<1>UW g37.0<8,8,1>UW {align1};
mov (8) g80.16<1>UW g38.0<8,8,1>UW {align1};
mov (8) g81.16<1>UW g39.0<8,8,1>UW {align1};
/*field 0 backward prediction of Y*/
mov(2) g31.0<1>UD g82.12<2,2,1>UW {align1};
asr (2) g31.14<1>W g82.20<2,2,1>W 1W {align1};
shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
and.nz (1) null g82.2<1,1,1>UW 0x2000UW {align1};
(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
define(`surface',`7')
define(`mv1',`g82.20')
define(`mv2',`g82.22')
include(`motion_field_y.g4i')
avg.sat (16) g58.0<1>UW g58.0<16,16,1>UW g32.0<16,16,1>UW {align1};
avg.sat (16) g60.0<1>UW g60.0<16,16,1>UW g33.0<16,16,1>UW {align1};
avg.sat (16) g62.0<1>UW g62.0<16,16,1>UW g34.0<16,16,1>UW {align1};
avg.sat (16) g64.0<1>UW g64.0<16,16,1>UW g35.0<16,16,1>UW {align1};
avg.sat (16) g66.0<1>UW g66.0<16,16,1>UW g36.0<16,16,1>UW {align1};
avg.sat (16) g68.0<1>UW g68.0<16,16,1>UW g37.0<16,16,1>UW {align1};
avg.sat (16) g70.0<1>UW g70.0<16,16,1>UW g38.0<16,16,1>UW {align1};
avg.sat (16) g72.0<1>UW g72.0<16,16,1>UW g39.0<16,16,1>UW {align1};
/*field 1 backward prediction of Y*/
asr (2) g31.14<1>W g82.28<2,2,1>W 1W {align1};
shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
and.nz (1) null g82.2<1,1,1>UW 0x8000UW {align1};
(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
define(`surface',`7')
define(`mv1',`g82.28')
define(`mv2',`g82.30')
include(`motion_field_y.g4i')
avg.sat (16) g59.0<1>UW g59.0<16,16,1>UW g32.0<16,16,1>UW {align1};
avg.sat (16) g61.0<1>UW g61.0<16,16,1>UW g33.0<16,16,1>UW {align1};
avg.sat (16) g63.0<1>UW g63.0<16,16,1>UW g34.0<16,16,1>UW {align1};
avg.sat (16) g65.0<1>UW g65.0<16,16,1>UW g35.0<16,16,1>UW {align1};
avg.sat (16) g67.0<1>UW g67.0<16,16,1>UW g36.0<16,16,1>UW {align1};
avg.sat (16) g69.0<1>UW g69.0<16,16,1>UW g37.0<16,16,1>UW {align1};
avg.sat (16) g71.0<1>UW g71.0<16,16,1>UW g38.0<16,16,1>UW {align1};
avg.sat (16) g73.0<1>UW g73.0<16,16,1>UW g39.0<16,16,1>UW {align1};
/*field 0 backward prediction of UV*/
shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1};
asr (2) g82.20<1>W g82.20<2,2,1>W 1W {align1};
asr (2) g31.14<1>W g82.20<2,2,1>W 1W {align1};
shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
and.nz (1) null g82.2<1,1,1>UW 0x2000UW {align1};
(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
define(`surface_u', `8')
define(`surface_v', `9')
define(`mv1',`g82.20')
define(`mv2',`g82.22')
include(`motion_field_uv.g4i')
avg.sat (8) g74.0<1>UW g74.0<8,8,1>UW g32.0<8,8,1>UW {align1};
avg.sat (8) g75.0<1>UW g75.0<8,8,1>UW g33.0<8,8,1>UW {align1};
avg.sat (8) g76.0<1>UW g76.0<8,8,1>UW g34.0<8,8,1>UW {align1};
avg.sat (8) g77.0<1>UW g77.0<8,8,1>UW g35.0<8,8,1>UW {align1};
avg.sat (8) g78.0<1>UW g78.0<8,8,1>UW g36.0<8,8,1>UW {align1};
avg.sat (8) g79.0<1>UW g79.0<8,8,1>UW g37.0<8,8,1>UW {align1};
avg.sat (8) g80.0<1>UW g80.0<8,8,1>UW g38.0<8,8,1>UW {align1};
avg.sat (8) g81.0<1>UW g81.0<8,8,1>UW g39.0<8,8,1>UW {align1};
/*field 1 backward prediction of UV*/
asr (2) g82.28<1>W g82.28<2,2,1>W 1W {align1};
asr (2) g31.14<1>W g82.28<2,2,1>W 1W {align1};
shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
and.nz (1) null g82.2<1,1,1>UW 0x8000UW {align1};
(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
define(`mv1',`g82.28')
define(`mv2',`g82.30')
include(`motion_field_uv.g4i')
avg.sat (8) g74.16<1>UW g74.16<8,8,1>UW g32.0<8,8,1>UW {align1};
avg.sat (8) g75.16<1>UW g75.16<8,8,1>UW g33.0<8,8,1>UW {align1};
avg.sat (8) g76.16<1>UW g76.16<8,8,1>UW g34.0<8,8,1>UW {align1};
avg.sat (8) g77.16<1>UW g77.16<8,8,1>UW g35.0<8,8,1>UW {align1};
avg.sat (8) g78.16<1>UW g78.16<8,8,1>UW g36.0<8,8,1>UW {align1};
avg.sat (8) g79.16<1>UW g79.16<8,8,1>UW g37.0<8,8,1>UW {align1};
avg.sat (8) g80.16<1>UW g80.16<8,8,1>UW g38.0<8,8,1>UW {align1};
avg.sat (8) g81.16<1>UW g81.16<8,8,1>UW g39.0<8,8,1>UW {align1};
include(`addidct.g4i')
send (16) 0 acc0<1>UW g0<8,8,1>UW
thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};

View File

@ -0,0 +1,727 @@
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 },
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 },
{ 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
{ 0x00000001, 0x34000020, 0x002102a0, 0x00000000 },
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 },
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 },
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
{ 0x01000005, 0x20002dbc, 0x00210a50, 0x00010001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
{ 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
{ 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 },
{ 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 },
{ 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 },
{ 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 },
{ 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 },
{ 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 },
{ 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 },
{ 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 },
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 },
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 },
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 },
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 },
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 },
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 },
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 },
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 },
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 },
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 },
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 },
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 },
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 },
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 },
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 },
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 },
{ 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 },
{ 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 },
{ 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 },
{ 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 },
{ 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 },
{ 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
{ 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
{ 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 },
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 },
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 },
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 },
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 },
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 },
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 },
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
{ 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 },
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 },
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 },
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 },
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 },
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 },
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 },
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
{ 0x00800001, 0x24000229, 0x00b10500, 0x00000000 },
{ 0x00800001, 0x24200229, 0x00b10540, 0x00000000 },
{ 0x00800001, 0x24400229, 0x00b10580, 0x00000000 },
{ 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 },
{ 0x00800001, 0x24800229, 0x00b10600, 0x00000000 },
{ 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 },
{ 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 },
{ 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 },
{ 0x00600001, 0x27400021, 0x008d0400, 0x00000000 },
{ 0x00600001, 0x27800021, 0x008d0420, 0x00000000 },
{ 0x00600001, 0x27c00021, 0x008d0440, 0x00000000 },
{ 0x00600001, 0x28000021, 0x008d0460, 0x00000000 },
{ 0x00600001, 0x28400021, 0x008d0480, 0x00000000 },
{ 0x00600001, 0x28800021, 0x008d04a0, 0x00000000 },
{ 0x00600001, 0x28c00021, 0x008d04c0, 0x00000000 },
{ 0x00600001, 0x29000021, 0x008d04e0, 0x00000000 },
{ 0x0020000c, 0x23ee3dad, 0x00450a58, 0x00010001 },
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x40004000 },
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
{ 0x01000005, 0x20002dbc, 0x00210a58, 0x00010001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
{ 0x01000005, 0x20002dbc, 0x00210a5a, 0x00010001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
{ 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 },
{ 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 },
{ 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 },
{ 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 },
{ 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 },
{ 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 },
{ 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 },
{ 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 },
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 },
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 },
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 },
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 },
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 },
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 },
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 },
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 },
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 },
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 },
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 },
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 },
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 },
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 },
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 },
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 },
{ 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 },
{ 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 },
{ 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 },
{ 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 },
{ 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 },
{ 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
{ 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
{ 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 },
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 },
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 },
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 },
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 },
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 },
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 },
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
{ 0x01000005, 0x20002dbc, 0x00210a5a, 0x00010001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 },
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 },
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 },
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 },
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 },
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 },
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 },
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
{ 0x00800001, 0x24000229, 0x00b10500, 0x00000000 },
{ 0x00800001, 0x24200229, 0x00b10540, 0x00000000 },
{ 0x00800001, 0x24400229, 0x00b10580, 0x00000000 },
{ 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 },
{ 0x00800001, 0x24800229, 0x00b10600, 0x00000000 },
{ 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 },
{ 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 },
{ 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 },
{ 0x00600001, 0x27600021, 0x008d0400, 0x00000000 },
{ 0x00600001, 0x27a00021, 0x008d0420, 0x00000000 },
{ 0x00600001, 0x27e00021, 0x008d0440, 0x00000000 },
{ 0x00600001, 0x28200021, 0x008d0460, 0x00000000 },
{ 0x00600001, 0x28600021, 0x008d0480, 0x00000000 },
{ 0x00600001, 0x28a00021, 0x008d04a0, 0x00000000 },
{ 0x00600001, 0x28e00021, 0x008d04c0, 0x00000000 },
{ 0x00600001, 0x29200021, 0x008d04e0, 0x00000000 },
{ 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 },
{ 0x0020000c, 0x2a503dad, 0x00450a50, 0x00010001 },
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 },
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 },
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
{ 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a005 },
{ 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a006 },
{ 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 },
{ 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 },
{ 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 },
{ 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 },
{ 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 },
{ 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 },
{ 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 },
{ 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 },
{ 0x00600001, 0x29400129, 0x008d0400, 0x00000000 },
{ 0x00600001, 0x29600129, 0x008d0420, 0x00000000 },
{ 0x00600001, 0x29800129, 0x008d0440, 0x00000000 },
{ 0x00600001, 0x29a00129, 0x008d0460, 0x00000000 },
{ 0x00600001, 0x29c00129, 0x008d0480, 0x00000000 },
{ 0x00600001, 0x29e00129, 0x008d04a0, 0x00000000 },
{ 0x00600001, 0x2a000129, 0x008d04c0, 0x00000000 },
{ 0x00600001, 0x2a200129, 0x008d04e0, 0x00000000 },
{ 0x0020000c, 0x2a583dad, 0x00450a58, 0x00010001 },
{ 0x0020000c, 0x23ee3dad, 0x00450a58, 0x00010001 },
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x40004000 },
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
{ 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a005 },
{ 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a006 },
{ 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 },
{ 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 },
{ 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 },
{ 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 },
{ 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 },
{ 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 },
{ 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 },
{ 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 },
{ 0x00600001, 0x29500129, 0x008d0400, 0x00000000 },
{ 0x00600001, 0x29700129, 0x008d0420, 0x00000000 },
{ 0x00600001, 0x29900129, 0x008d0440, 0x00000000 },
{ 0x00600001, 0x29b00129, 0x008d0460, 0x00000000 },
{ 0x00600001, 0x29d00129, 0x008d0480, 0x00000000 },
{ 0x00600001, 0x29f00129, 0x008d04a0, 0x00000000 },
{ 0x00600001, 0x2a100129, 0x008d04c0, 0x00000000 },
{ 0x00600001, 0x2a300129, 0x008d04e0, 0x00000000 },
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 },
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 },
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x20002000 },
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
{ 0x01000005, 0x20002dbc, 0x00210a54, 0x00010001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
{ 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
{ 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 },
{ 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 },
{ 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 },
{ 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 },
{ 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 },
{ 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 },
{ 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 },
{ 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 },
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 },
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 },
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 },
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 },
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 },
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 },
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 },
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 },
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 },
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 },
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 },
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 },
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 },
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 },
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 },
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 },
{ 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 },
{ 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 },
{ 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 },
{ 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 },
{ 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 },
{ 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
{ 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
{ 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 },
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 },
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 },
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 },
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 },
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 },
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 },
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
{ 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 },
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 },
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 },
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 },
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 },
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 },
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 },
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
{ 0x00800001, 0x24000229, 0x00b10500, 0x00000000 },
{ 0x00800001, 0x24200229, 0x00b10540, 0x00000000 },
{ 0x00800001, 0x24400229, 0x00b10580, 0x00000000 },
{ 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 },
{ 0x00800001, 0x24800229, 0x00b10600, 0x00000000 },
{ 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 },
{ 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 },
{ 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 },
{ 0x80800042, 0x27402529, 0x00b10740, 0x00b10400 },
{ 0x80800042, 0x27802529, 0x00b10780, 0x00b10420 },
{ 0x80800042, 0x27c02529, 0x00b107c0, 0x00b10440 },
{ 0x80800042, 0x28002529, 0x00b10800, 0x00b10460 },
{ 0x80800042, 0x28402529, 0x00b10840, 0x00b10480 },
{ 0x80800042, 0x28802529, 0x00b10880, 0x00b104a0 },
{ 0x80800042, 0x28c02529, 0x00b108c0, 0x00b104c0 },
{ 0x80800042, 0x29002529, 0x00b10900, 0x00b104e0 },
{ 0x0020000c, 0x23ee3dad, 0x00450a5c, 0x00010001 },
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x80008000 },
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
{ 0x01000005, 0x20002dbc, 0x00210a5c, 0x00010001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
{ 0x01000005, 0x20002dbc, 0x00210a5e, 0x00010001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
{ 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 },
{ 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 },
{ 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 },
{ 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 },
{ 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 },
{ 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 },
{ 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 },
{ 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 },
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 },
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 },
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 },
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 },
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 },
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 },
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 },
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 },
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 },
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 },
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 },
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 },
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 },
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 },
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 },
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 },
{ 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 },
{ 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 },
{ 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 },
{ 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 },
{ 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 },
{ 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
{ 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
{ 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 },
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 },
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 },
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 },
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 },
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 },
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 },
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
{ 0x01000005, 0x20002dbc, 0x00210a5e, 0x00010001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 },
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 },
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 },
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 },
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 },
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 },
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 },
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
{ 0x00800001, 0x24000229, 0x00b10500, 0x00000000 },
{ 0x00800001, 0x24200229, 0x00b10540, 0x00000000 },
{ 0x00800001, 0x24400229, 0x00b10580, 0x00000000 },
{ 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 },
{ 0x00800001, 0x24800229, 0x00b10600, 0x00000000 },
{ 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 },
{ 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 },
{ 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 },
{ 0x80800042, 0x27602529, 0x00b10760, 0x00b10400 },
{ 0x80800042, 0x27a02529, 0x00b107a0, 0x00b10420 },
{ 0x80800042, 0x27e02529, 0x00b107e0, 0x00b10440 },
{ 0x80800042, 0x28202529, 0x00b10820, 0x00b10460 },
{ 0x80800042, 0x28602529, 0x00b10860, 0x00b10480 },
{ 0x80800042, 0x28a02529, 0x00b108a0, 0x00b104a0 },
{ 0x80800042, 0x28e02529, 0x00b108e0, 0x00b104c0 },
{ 0x80800042, 0x29202529, 0x00b10920, 0x00b104e0 },
{ 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 },
{ 0x0020000c, 0x2a543dad, 0x00450a54, 0x00010001 },
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 },
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x20002000 },
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
{ 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a008 },
{ 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a009 },
{ 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 },
{ 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 },
{ 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 },
{ 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 },
{ 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 },
{ 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 },
{ 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 },
{ 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 },
{ 0x80600042, 0x29402529, 0x008d0940, 0x008d0400 },
{ 0x80600042, 0x29602529, 0x008d0960, 0x008d0420 },
{ 0x80600042, 0x29802529, 0x008d0980, 0x008d0440 },
{ 0x80600042, 0x29a02529, 0x008d09a0, 0x008d0460 },
{ 0x80600042, 0x29c02529, 0x008d09c0, 0x008d0480 },
{ 0x80600042, 0x29e02529, 0x008d09e0, 0x008d04a0 },
{ 0x80600042, 0x2a002529, 0x008d0a00, 0x008d04c0 },
{ 0x80600042, 0x2a202529, 0x008d0a20, 0x008d04e0 },
{ 0x0020000c, 0x2a5c3dad, 0x00450a5c, 0x00010001 },
{ 0x0020000c, 0x23ee3dad, 0x00450a5c, 0x00010001 },
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x80008000 },
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
{ 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a008 },
{ 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a009 },
{ 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 },
{ 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 },
{ 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 },
{ 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 },
{ 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 },
{ 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 },
{ 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 },
{ 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 },
{ 0x80600042, 0x29502529, 0x008d0950, 0x008d0400 },
{ 0x80600042, 0x29702529, 0x008d0970, 0x008d0420 },
{ 0x80600042, 0x29902529, 0x008d0990, 0x008d0440 },
{ 0x80600042, 0x29b02529, 0x008d09b0, 0x008d0460 },
{ 0x80600042, 0x29d02529, 0x008d09d0, 0x008d0480 },
{ 0x80600042, 0x29f02529, 0x008d09f0, 0x008d04a0 },
{ 0x80600042, 0x2a102529, 0x008d0a10, 0x008d04c0 },
{ 0x80600042, 0x2a302529, 0x008d0a30, 0x008d04e0 },
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 },
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 },
{ 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 },
{ 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 },
{ 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 },
{ 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 },
{ 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 },
{ 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 },
{ 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 },
{ 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 },
{ 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 },
{ 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 },
{ 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 },
{ 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 },
{ 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 },
{ 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 },
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 },
{ 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 },
{ 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 },
{ 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 },
{ 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 },
{ 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 },
{ 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 },
{ 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 },
{ 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 },
{ 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 },
{ 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 },
{ 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 },
{ 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 },
{ 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 },
{ 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 },
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 },
{ 0x00000001, 0x23e80061, 0x00000000, 0x000f000f },
{ 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 },
{ 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 },
{ 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 },
{ 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 },
{ 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 },
{ 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 },
{ 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 },
{ 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 },
{ 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 },
{ 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 },
{ 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 },
{ 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 },
{ 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 },
{ 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 },
{ 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 },
{ 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 },
{ 0x00800001, 0x20200232, 0x00b20740, 0x00000000 },
{ 0x00800001, 0x20300232, 0x00b20760, 0x00000000 },
{ 0x00800001, 0x20400232, 0x00b20780, 0x00000000 },
{ 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 },
{ 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 },
{ 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 },
{ 0x00800001, 0x20800232, 0x00b20800, 0x00000000 },
{ 0x00800001, 0x20900232, 0x00b20820, 0x00000000 },
{ 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 },
{ 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 },
{ 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 },
{ 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 },
{ 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 },
{ 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 },
{ 0x00800001, 0x21000232, 0x00b20900, 0x00000000 },
{ 0x00800001, 0x21100232, 0x00b20920, 0x00000000 },
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 },
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 },
{ 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 },
{ 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 },
{ 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 },
{ 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 },
{ 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 },
{ 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 },
{ 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 },
{ 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 },
{ 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 },
{ 0x00800001, 0x20200232, 0x00b20940, 0x00000000 },
{ 0x00800001, 0x20300232, 0x00b20960, 0x00000000 },
{ 0x00800001, 0x20400232, 0x00b20980, 0x00000000 },
{ 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 },
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 },
{ 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 },
{ 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 },
{ 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 },
{ 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 },
{ 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 },
{ 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 },
{ 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 },
{ 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 },
{ 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 },
{ 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 },
{ 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 },
{ 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 },
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 },
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },

View File

@ -0,0 +1,130 @@
/*
* Copyright © 2009 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Author:
* Zou Nan hai <nanhai.zou@intel.com>
* Yan Li <li.l.yan@intel.com>
* Liu Xi bin<xibin.liu@intel.com>
*/
/* GRF allocation:
g1~g30: constant buffer
g1~g2:intra IQ matrix
g3~g4:non intra IQ matrix
g5~g20:IDCT table
g31: thread payload
g58~g81:reference data
g82: thread payload backup
g83~g106:IDCT data
g115: message descriptor for reading reference data */
mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
mov (2) g31.0<1>UD g82.12<2,2,1>UW {align1};
mov (1) g126.8<1>UD ip {align1};
mov (1) ip g21.0<1,1,1>UD {align1};
/*field 0 of Y*/
asr (2) g31.14<1>W g82.16<2,2,1>W 1W {align1};
shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
and.nz (1) null g82.2<1,1,1>UW 0x1000UW {align1}; //motion vertical field select
(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
define(`surface',`4')
define(`mv1',`g82.16')
define(`mv2',`g82.18')
include(`motion_field_y.g4i')
mov (8) g58.0<1>UD g32.0<8,8,1>UD {align1};
mov (8) g60.0<1>UD g33.0<8,8,1>UD {align1};
mov (8) g62.0<1>UD g34.0<8,8,1>UD {align1};
mov (8) g64.0<1>UD g35.0<8,8,1>UD {align1};
mov (8) g66.0<1>UD g36.0<8,8,1>UD {align1};
mov (8) g68.0<1>UD g37.0<8,8,1>UD {align1};
mov (8) g70.0<1>UD g38.0<8,8,1>UD {align1};
mov (8) g72.0<1>UD g39.0<8,8,1>UD {align1};
/*field 1 of Y*/
asr (2) g31.14<1>W g82.24<2,2,1>W 1W {align1};
shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
and.nz (1) null g82.2<1,1,1>UW 0x4000UW {align1};
(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
define(`surface',`4')
define(`mv1',`g82.24')
define(`mv2',`g82.26')
include(`motion_field_y.g4i')
mov (8) g59.0<1>UD g32.0<8,8,1>UD {align1};
mov (8) g61.0<1>UD g33.0<8,8,1>UD {align1};
mov (8) g63.0<1>UD g34.0<8,8,1>UD {align1};
mov (8) g65.0<1>UD g35.0<8,8,1>UD {align1};
mov (8) g67.0<1>UD g36.0<8,8,1>UD {align1};
mov (8) g69.0<1>UD g37.0<8,8,1>UD {align1};
mov (8) g71.0<1>UD g38.0<8,8,1>UD {align1};
mov (8) g73.0<1>UD g39.0<8,8,1>UD {align1};
/*field 0 of UV*/
shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1};
asr (2) g82.16<1>W g82.16<2,2,1>W 1W {align1};
asr (2) g31.14<1>W g82.16<2,2,1>W 1W {align1};
shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
and.nz (1) null g82.2<1,1,1>UW 0x1000UW {align1};
(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
define(`surface_u', `5')
define(`surface_v', `6')
define(`mv1',`g82.16')
define(`mv2',`g82.18')
include(`motion_field_uv.g4i')
mov (8) g74.0<1>UW g32.0<8,8,1>UW {align1};
mov (8) g75.0<1>UW g33.0<8,8,1>UW {align1};
mov (8) g76.0<1>UW g34.0<8,8,1>UW {align1};
mov (8) g77.0<1>UW g35.0<8,8,1>UW {align1};
mov (8) g78.0<1>UW g36.0<8,8,1>UW {align1};
mov (8) g79.0<1>UW g37.0<8,8,1>UW {align1};
mov (8) g80.0<1>UW g38.0<8,8,1>UW {align1};
mov (8) g81.0<1>UW g39.0<8,8,1>UW {align1};
/*field 1 of UV*/
asr (2) g82.24<1>W g82.24<2,2,1>W 1W {align1};
asr (2) g31.14<1>W g82.24<2,2,1>W 1W {align1};
shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1};
add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
and.nz (1) null g82.2<1,1,1>UW 0x4000UW {align1};
(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
define(`surface_u', `5')
define(`surface_v', `6')
define(`mv1',`g82.24')
define(`mv2',`g82.26')
include(`motion_field_uv.g4i')
mov (8) g74.16<1>UW g32.0<8,8,1>UW {align1};
mov (8) g75.16<1>UW g33.0<8,8,1>UW {align1};
mov (8) g76.16<1>UW g34.0<8,8,1>UW {align1};
mov (8) g77.16<1>UW g35.0<8,8,1>UW {align1};
mov (8) g78.16<1>UW g36.0<8,8,1>UW {align1};
mov (8) g79.16<1>UW g37.0<8,8,1>UW {align1};
mov (8) g80.16<1>UW g38.0<8,8,1>UW {align1};
mov (8) g81.16<1>UW g39.0<8,8,1>UW {align1};
include(`addidct.g4i')
send (16) 0 acc0<1>UW g0<8,8,1>UW
thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};

View File

@ -0,0 +1,415 @@
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 },
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 },
{ 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
{ 0x00000001, 0x34000020, 0x002102a0, 0x00000000 },
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 },
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 },
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
{ 0x01000005, 0x20002dbc, 0x00210a50, 0x00010001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
{ 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
{ 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 },
{ 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 },
{ 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 },
{ 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 },
{ 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 },
{ 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 },
{ 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 },
{ 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 },
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 },
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 },
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 },
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 },
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 },
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 },
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 },
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 },
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 },
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 },
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 },
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 },
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 },
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 },
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 },
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 },
{ 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 },
{ 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 },
{ 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 },
{ 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 },
{ 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 },
{ 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
{ 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
{ 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 },
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 },
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 },
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 },
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 },
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 },
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 },
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
{ 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 },
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 },
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 },
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 },
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 },
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 },
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 },
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
{ 0x00800001, 0x24000229, 0x00b10500, 0x00000000 },
{ 0x00800001, 0x24200229, 0x00b10540, 0x00000000 },
{ 0x00800001, 0x24400229, 0x00b10580, 0x00000000 },
{ 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 },
{ 0x00800001, 0x24800229, 0x00b10600, 0x00000000 },
{ 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 },
{ 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 },
{ 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 },
{ 0x00600001, 0x27400021, 0x008d0400, 0x00000000 },
{ 0x00600001, 0x27800021, 0x008d0420, 0x00000000 },
{ 0x00600001, 0x27c00021, 0x008d0440, 0x00000000 },
{ 0x00600001, 0x28000021, 0x008d0460, 0x00000000 },
{ 0x00600001, 0x28400021, 0x008d0480, 0x00000000 },
{ 0x00600001, 0x28800021, 0x008d04a0, 0x00000000 },
{ 0x00600001, 0x28c00021, 0x008d04c0, 0x00000000 },
{ 0x00600001, 0x29000021, 0x008d04e0, 0x00000000 },
{ 0x0020000c, 0x23ee3dad, 0x00450a58, 0x00010001 },
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x40004000 },
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
{ 0x01000005, 0x20002dbc, 0x00210a58, 0x00010001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
{ 0x01000005, 0x20002dbc, 0x00210a5a, 0x00010001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
{ 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 },
{ 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 },
{ 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 },
{ 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 },
{ 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 },
{ 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 },
{ 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 },
{ 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 },
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 },
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 },
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 },
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 },
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 },
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 },
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 },
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 },
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 },
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 },
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 },
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 },
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 },
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 },
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 },
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 },
{ 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 },
{ 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 },
{ 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 },
{ 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 },
{ 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 },
{ 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
{ 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
{ 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 },
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 },
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 },
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 },
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 },
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 },
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 },
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
{ 0x01000005, 0x20002dbc, 0x00210a5a, 0x00010001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 },
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 },
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 },
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 },
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 },
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 },
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 },
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 },
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
{ 0x00800001, 0x24000229, 0x00b10500, 0x00000000 },
{ 0x00800001, 0x24200229, 0x00b10540, 0x00000000 },
{ 0x00800001, 0x24400229, 0x00b10580, 0x00000000 },
{ 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 },
{ 0x00800001, 0x24800229, 0x00b10600, 0x00000000 },
{ 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 },
{ 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 },
{ 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 },
{ 0x00600001, 0x27600021, 0x008d0400, 0x00000000 },
{ 0x00600001, 0x27a00021, 0x008d0420, 0x00000000 },
{ 0x00600001, 0x27e00021, 0x008d0440, 0x00000000 },
{ 0x00600001, 0x28200021, 0x008d0460, 0x00000000 },
{ 0x00600001, 0x28600021, 0x008d0480, 0x00000000 },
{ 0x00600001, 0x28a00021, 0x008d04a0, 0x00000000 },
{ 0x00600001, 0x28e00021, 0x008d04c0, 0x00000000 },
{ 0x00600001, 0x29200021, 0x008d04e0, 0x00000000 },
{ 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 },
{ 0x0020000c, 0x2a503dad, 0x00450a50, 0x00010001 },
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 },
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 },
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
{ 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a005 },
{ 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a006 },
{ 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 },
{ 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 },
{ 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 },
{ 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 },
{ 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 },
{ 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 },
{ 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 },
{ 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 },
{ 0x00600001, 0x29400129, 0x008d0400, 0x00000000 },
{ 0x00600001, 0x29600129, 0x008d0420, 0x00000000 },
{ 0x00600001, 0x29800129, 0x008d0440, 0x00000000 },
{ 0x00600001, 0x29a00129, 0x008d0460, 0x00000000 },
{ 0x00600001, 0x29c00129, 0x008d0480, 0x00000000 },
{ 0x00600001, 0x29e00129, 0x008d04a0, 0x00000000 },
{ 0x00600001, 0x2a000129, 0x008d04c0, 0x00000000 },
{ 0x00600001, 0x2a200129, 0x008d04e0, 0x00000000 },
{ 0x0020000c, 0x2a583dad, 0x00450a58, 0x00010001 },
{ 0x0020000c, 0x23ee3dad, 0x00450a58, 0x00010001 },
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 },
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x40004000 },
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
{ 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a005 },
{ 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a006 },
{ 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 },
{ 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 },
{ 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 },
{ 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 },
{ 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 },
{ 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 },
{ 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 },
{ 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 },
{ 0x00600001, 0x29500129, 0x008d0400, 0x00000000 },
{ 0x00600001, 0x29700129, 0x008d0420, 0x00000000 },
{ 0x00600001, 0x29900129, 0x008d0440, 0x00000000 },
{ 0x00600001, 0x29b00129, 0x008d0460, 0x00000000 },
{ 0x00600001, 0x29d00129, 0x008d0480, 0x00000000 },
{ 0x00600001, 0x29f00129, 0x008d04a0, 0x00000000 },
{ 0x00600001, 0x2a100129, 0x008d04c0, 0x00000000 },
{ 0x00600001, 0x2a300129, 0x008d04e0, 0x00000000 },
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 },
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 },
{ 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 },
{ 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 },
{ 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 },
{ 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 },
{ 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 },
{ 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 },
{ 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 },
{ 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 },
{ 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 },
{ 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 },
{ 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 },
{ 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 },
{ 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 },
{ 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 },
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 },
{ 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 },
{ 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 },
{ 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 },
{ 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 },
{ 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 },
{ 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 },
{ 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 },
{ 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 },
{ 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 },
{ 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 },
{ 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 },
{ 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 },
{ 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 },
{ 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 },
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 },
{ 0x00000001, 0x23e80061, 0x00000000, 0x000f000f },
{ 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 },
{ 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 },
{ 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 },
{ 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 },
{ 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 },
{ 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 },
{ 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 },
{ 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 },
{ 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 },
{ 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 },
{ 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 },
{ 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 },
{ 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 },
{ 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 },
{ 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 },
{ 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 },
{ 0x00800001, 0x20200232, 0x00b20740, 0x00000000 },
{ 0x00800001, 0x20300232, 0x00b20760, 0x00000000 },
{ 0x00800001, 0x20400232, 0x00b20780, 0x00000000 },
{ 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 },
{ 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 },
{ 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 },
{ 0x00800001, 0x20800232, 0x00b20800, 0x00000000 },
{ 0x00800001, 0x20900232, 0x00b20820, 0x00000000 },
{ 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 },
{ 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 },
{ 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 },
{ 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 },
{ 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 },
{ 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 },
{ 0x00800001, 0x21000232, 0x00b20900, 0x00000000 },
{ 0x00800001, 0x21100232, 0x00b20920, 0x00000000 },
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 },
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 },
{ 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 },
{ 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 },
{ 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 },
{ 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 },
{ 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 },
{ 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 },
{ 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 },
{ 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 },
{ 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 },
{ 0x00800001, 0x20200232, 0x00b20940, 0x00000000 },
{ 0x00800001, 0x20300232, 0x00b20960, 0x00000000 },
{ 0x00800001, 0x20400232, 0x00b20980, 0x00000000 },
{ 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 },
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 },
{ 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 },
{ 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 },
{ 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 },
{ 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 },
{ 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 },
{ 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 },
{ 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 },
{ 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 },
{ 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 },
{ 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 },
{ 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 },
{ 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 },
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 },
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },

View File

@ -0,0 +1,61 @@
/*
* Copyright © 2009 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Author:
* Zou Nan hai <nanhai.zou@intel.com>
* Yan Li <li.l.yan@intel.com>
* Liu Xi bin<xibin.liu@intel.com>
*/
/* GRF allocation:
g1~g30: constant buffer
g1~g2:intra IQ matrix
g3~g4:non intra IQ matrix
g5~g20:IDCT table
g31: thread payload
g32: message descriptor for reading reference data
g58~g81:reference data
g82: thread payload backup
g83~g106:IDCT data */
mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
mov(2) g31.0<1>UD g82.12<2,2,1>UW {align1};
mov (1) g126.8<1>UD ip {align1};
mov (1) ip g21.0<1,1,1>UD {align1};
//Y, (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1)
asr (2) g31.14<1>W g82.20<2,2,1>W 1W {align1};
add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
define(`input_surface', `7')
define(`mv1', `g82.20')
define(`mv2', `g82.22')
include(`motion_frame_y.g4i')
//UV, (x', y') = (x >> 1, y >> 1) + (motion_vector.x >> 2, motion_vector.y >> 2)
shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1};
asr (2) g31.14<1>W g82.20<2,2,1>W 2W {align1};
add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
define(`input_surface1', `8')
define(`input_surface2', `9')
include(`motion_frame_uv.g4i')
include(`addidct.g4i')
send (16) 0 acc0<1>UW g0<8,8,1>UW
thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};

View File

@ -0,0 +1,263 @@
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 },
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 },
{ 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
{ 0x00000001, 0x34000020, 0x002102a0, 0x00000000 },
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 },
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
{ 0x01000005, 0x20000d3c, 0x00210a54, 0x00000001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000005f },
{ 0x01000005, 0x20000d3c, 0x00210a56, 0x00000001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000048 },
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 },
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 },
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a007 },
{ 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 },
{ 0x00800040, 0x27604629, 0x00b104e0, 0x00b104e1 },
{ 0x00800040, 0x27804629, 0x00b10500, 0x00b10501 },
{ 0x00800040, 0x27a04629, 0x00b10520, 0x00b10521 },
{ 0x00800040, 0x27c04629, 0x00b10540, 0x00b10541 },
{ 0x00800040, 0x27e04629, 0x00b10560, 0x00b10561 },
{ 0x00800040, 0x28004629, 0x00b10580, 0x00b10581 },
{ 0x00800040, 0x28204629, 0x00b105a0, 0x00b105a1 },
{ 0x00800040, 0x28404629, 0x00b105c0, 0x00b105c1 },
{ 0x00800040, 0x28604629, 0x00b105e0, 0x00b105e1 },
{ 0x00800040, 0x28804629, 0x00b10600, 0x00b10601 },
{ 0x00800040, 0x28a04629, 0x00b10620, 0x00b10621 },
{ 0x00800040, 0x28c04629, 0x00b10640, 0x00b10641 },
{ 0x00800040, 0x28e04629, 0x00b10660, 0x00b10661 },
{ 0x00800040, 0x29004629, 0x00b10680, 0x00b10681 },
{ 0x00800040, 0x29204629, 0x00b106a0, 0x00b106a1 },
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b104e0 },
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10500 },
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10520 },
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10540 },
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10560 },
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10580 },
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b105a0 },
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b105c0 },
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b105e0 },
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10600 },
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10620 },
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10640 },
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10660 },
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10680 },
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b106a0 },
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 },
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b104e1 },
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10501 },
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10521 },
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10541 },
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10561 },
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10581 },
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b105a1 },
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b105c1 },
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b105e1 },
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10601 },
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10621 },
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10641 },
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10661 },
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10681 },
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b106a1 },
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 },
{ 0x80800008, 0x27402d29, 0x00b10740, 0x00020002 },
{ 0x80800008, 0x27602d29, 0x00b10760, 0x00020002 },
{ 0x80800008, 0x27802d29, 0x00b10780, 0x00020002 },
{ 0x80800008, 0x27a02d29, 0x00b107a0, 0x00020002 },
{ 0x80800008, 0x27c02d29, 0x00b107c0, 0x00020002 },
{ 0x80800008, 0x27e02d29, 0x00b107e0, 0x00020002 },
{ 0x80800008, 0x28002d29, 0x00b10800, 0x00020002 },
{ 0x80800008, 0x28202d29, 0x00b10820, 0x00020002 },
{ 0x80800008, 0x28402d29, 0x00b10840, 0x00020002 },
{ 0x80800008, 0x28602d29, 0x00b10860, 0x00020002 },
{ 0x80800008, 0x28802d29, 0x00b10880, 0x00020002 },
{ 0x80800008, 0x28a02d29, 0x00b108a0, 0x00020002 },
{ 0x80800008, 0x28c02d29, 0x00b108c0, 0x00020002 },
{ 0x80800008, 0x28e02d29, 0x00b108e0, 0x00020002 },
{ 0x80800008, 0x29002d29, 0x00b10900, 0x00020002 },
{ 0x80800008, 0x29202d29, 0x00b10920, 0x00020002 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000043 },
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 },
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 },
{ 0x80800042, 0x27404629, 0x00b104c0, 0x00b104c1 },
{ 0x80800042, 0x27604629, 0x00b104e0, 0x00b104e1 },
{ 0x80800042, 0x27804629, 0x00b10500, 0x00b10501 },
{ 0x80800042, 0x27a04629, 0x00b10520, 0x00b10521 },
{ 0x80800042, 0x27c04629, 0x00b10540, 0x00b10541 },
{ 0x80800042, 0x27e04629, 0x00b10560, 0x00b10561 },
{ 0x80800042, 0x28004629, 0x00b10580, 0x00b10581 },
{ 0x80800042, 0x28204629, 0x00b105a0, 0x00b105a1 },
{ 0x80800042, 0x28404629, 0x00b105c0, 0x00b105c1 },
{ 0x80800042, 0x28604629, 0x00b105e0, 0x00b105e1 },
{ 0x80800042, 0x28804629, 0x00b10600, 0x00b10601 },
{ 0x80800042, 0x28a04629, 0x00b10620, 0x00b10621 },
{ 0x80800042, 0x28c04629, 0x00b10640, 0x00b10641 },
{ 0x80800042, 0x28e04629, 0x00b10660, 0x00b10661 },
{ 0x80800042, 0x29004629, 0x00b10680, 0x00b10681 },
{ 0x80800042, 0x29204629, 0x00b106a0, 0x00b106a1 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
{ 0x01000005, 0x20000d3c, 0x00210a56, 0x00000001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000018 },
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 },
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 },
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a007 },
{ 0x80800042, 0x27404629, 0x00b104c0, 0x00b104e0 },
{ 0x80800042, 0x27604629, 0x00b104e0, 0x00b10500 },
{ 0x80800042, 0x27804629, 0x00b10500, 0x00b10520 },
{ 0x80800042, 0x27a04629, 0x00b10520, 0x00b10540 },
{ 0x80800042, 0x27c04629, 0x00b10540, 0x00b10560 },
{ 0x80800042, 0x27e04629, 0x00b10560, 0x00b10580 },
{ 0x80800042, 0x28004629, 0x00b10580, 0x00b105a0 },
{ 0x80800042, 0x28204629, 0x00b105a0, 0x00b105c0 },
{ 0x80800042, 0x28404629, 0x00b105c0, 0x00b105e0 },
{ 0x80800042, 0x28604629, 0x00b105e0, 0x00b10600 },
{ 0x80800042, 0x28804629, 0x00b10600, 0x00b10620 },
{ 0x80800042, 0x28a04629, 0x00b10620, 0x00b10640 },
{ 0x80800042, 0x28c04629, 0x00b10640, 0x00b10660 },
{ 0x80800042, 0x28e04629, 0x00b10660, 0x00b10680 },
{ 0x80800042, 0x29004629, 0x00b10680, 0x00b106a0 },
{ 0x80800042, 0x29204629, 0x00b106a0, 0x00b106c0 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000014 },
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 },
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 },
{ 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 },
{ 0x00800001, 0x27600229, 0x00b104e0, 0x00000000 },
{ 0x00800001, 0x27800229, 0x00b10500, 0x00000000 },
{ 0x00800001, 0x27a00229, 0x00b10520, 0x00000000 },
{ 0x00800001, 0x27c00229, 0x00b10540, 0x00000000 },
{ 0x00800001, 0x27e00229, 0x00b10560, 0x00000000 },
{ 0x00800001, 0x28000229, 0x00b10580, 0x00000000 },
{ 0x00800001, 0x28200229, 0x00b105a0, 0x00000000 },
{ 0x00800001, 0x28400229, 0x00b105c0, 0x00000000 },
{ 0x00800001, 0x28600229, 0x00b105e0, 0x00000000 },
{ 0x00800001, 0x28800229, 0x00b10600, 0x00000000 },
{ 0x00800001, 0x28a00229, 0x00b10620, 0x00000000 },
{ 0x00800001, 0x28c00229, 0x00b10640, 0x00000000 },
{ 0x00800001, 0x28e00229, 0x00b10660, 0x00000000 },
{ 0x00800001, 0x29000229, 0x00b10680, 0x00000000 },
{ 0x00800001, 0x29200229, 0x00b106a0, 0x00000000 },
{ 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 },
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00020002 },
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f },
{ 0x00800031, 0x24801d29, 0x008d0400, 0x0414a008 },
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a009 },
{ 0x00800001, 0x29400229, 0x00ad0480, 0x00000000 },
{ 0x00800001, 0x29600229, 0x00ad04a0, 0x00000000 },
{ 0x00800001, 0x29800229, 0x00ad04c0, 0x00000000 },
{ 0x00800001, 0x29a00229, 0x00ad04e0, 0x00000000 },
{ 0x00800001, 0x29c00229, 0x00ad0500, 0x00000000 },
{ 0x00800001, 0x29e00229, 0x00ad0520, 0x00000000 },
{ 0x00800001, 0x2a000229, 0x00ad0540, 0x00000000 },
{ 0x00800001, 0x2a200229, 0x00ad0560, 0x00000000 },
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 },
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 },
{ 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 },
{ 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 },
{ 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 },
{ 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 },
{ 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 },
{ 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 },
{ 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 },
{ 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 },
{ 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 },
{ 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 },
{ 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 },
{ 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 },
{ 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 },
{ 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 },
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 },
{ 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 },
{ 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 },
{ 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 },
{ 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 },
{ 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 },
{ 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 },
{ 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 },
{ 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 },
{ 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 },
{ 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 },
{ 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 },
{ 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 },
{ 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 },
{ 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 },
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 },
{ 0x00000001, 0x23e80061, 0x00000000, 0x000f000f },
{ 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 },
{ 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 },
{ 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 },
{ 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 },
{ 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 },
{ 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 },
{ 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 },
{ 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 },
{ 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 },
{ 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 },
{ 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 },
{ 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 },
{ 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 },
{ 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 },
{ 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 },
{ 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 },
{ 0x00800001, 0x20200232, 0x00b20740, 0x00000000 },
{ 0x00800001, 0x20300232, 0x00b20760, 0x00000000 },
{ 0x00800001, 0x20400232, 0x00b20780, 0x00000000 },
{ 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 },
{ 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 },
{ 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 },
{ 0x00800001, 0x20800232, 0x00b20800, 0x00000000 },
{ 0x00800001, 0x20900232, 0x00b20820, 0x00000000 },
{ 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 },
{ 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 },
{ 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 },
{ 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 },
{ 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 },
{ 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 },
{ 0x00800001, 0x21000232, 0x00b20900, 0x00000000 },
{ 0x00800001, 0x21100232, 0x00b20920, 0x00000000 },
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 },
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 },
{ 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 },
{ 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 },
{ 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 },
{ 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 },
{ 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 },
{ 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 },
{ 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 },
{ 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 },
{ 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 },
{ 0x00800001, 0x20200232, 0x00b20940, 0x00000000 },
{ 0x00800001, 0x20300232, 0x00b20960, 0x00000000 },
{ 0x00800001, 0x20400232, 0x00b20980, 0x00000000 },
{ 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 },
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 },
{ 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 },
{ 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 },
{ 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 },
{ 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 },
{ 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 },
{ 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 },
{ 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 },
{ 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 },
{ 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 },
{ 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 },
{ 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 },
{ 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 },
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 },
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },

View File

@ -0,0 +1,120 @@
/*
* Copyright © 2009 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Author:
* Zou Nan hai <nanhai.zou@intel.com>
* Yan Li <li.l.yan@intel.com>
* Liu Xi bin<xibin.liu@intel.com>
*/
/* GRF allocation:
g1~g30: constant buffer
g1~g2:intra IQ matrix
g3~g4:non intra IQ matrix
g5~g20:IDCT table
g31: thread payload
g32: message descriptor for reading reference data
g58~g81:reference data
g82: thread payload backup
g83~g106:IDCT data */
mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
mov (2) g31.0<1>UD g82.12<2,2,1>UW {align1};
mov (1) g126.8<1>UD ip {align1};
mov (1) ip g21.0<1,1,1>UD {align1};
//Y, Forward
mov (1) g31.8<1>UD 0x0070007UD {align1};
define(`input_surface', `4')
define(`mv1', `g82.16')
define(`mv2', `g82.18')
asr (2) g31.14<1>W g82.16<2,2,1>W 1W {align1};
add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
include(`motion_frame_y.g4i')
//Save Forward
mov (16) g108.0<1>UD g58.0<16,16,1>UD {align1 compr};
mov (16) g110.0<1>UD g60.0<16,16,1>UD {align1 compr};
mov (16) g112.0<1>UD g62.0<16,16,1>UD {align1 compr};
mov (16) g114.0<1>UD g64.0<16,16,1>UD {align1 compr};
mov (16) g116.0<1>UD g66.0<16,16,1>UD {align1 compr};
mov (16) g118.0<1>UD g68.0<16,16,1>UD {align1 compr};
mov (16) g120.0<1>UD g70.0<16,16,1>UD {align1 compr};
mov (16) g122.0<1>UD g72.0<16,16,1>UD {align1 compr};
//Y, Backward
define(`input_surface', `7')
define(`mv1', `g82.20')
define(`mv2', `g82.22')
asr (2) g31.14<1>W g82.20<2,2,1>W 1W {align1};
add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
include(`motion_frame_y.g4i')
//Average Forward and Backward
avg.sat (16) g58.0<1>UW g58.0<16,16,1>UW g108.0<16,16,1>UW {align1};
avg.sat (16) g59.0<1>UW g59.0<16,16,1>UW g109.0<16,16,1>UW {align1};
avg.sat (16) g60.0<1>UW g60.0<16,16,1>UW g110.0<16,16,1>UW {align1};
avg.sat (16) g61.0<1>UW g61.0<16,16,1>UW g111.0<16,16,1>UW {align1};
avg.sat (16) g62.0<1>UW g62.0<16,16,1>UW g112.0<16,16,1>UW {align1};
avg.sat (16) g63.0<1>UW g63.0<16,16,1>UW g113.0<16,16,1>UW {align1};
avg.sat (16) g64.0<1>UW g64.0<16,16,1>UW g114.0<16,16,1>UW {align1};
avg.sat (16) g65.0<1>UW g65.0<16,16,1>UW g115.0<16,16,1>UW {align1};
avg.sat (16) g66.0<1>UW g66.0<16,16,1>UW g116.0<16,16,1>UW {align1};
avg.sat (16) g67.0<1>UW g67.0<16,16,1>UW g117.0<16,16,1>UW {align1};
avg.sat (16) g68.0<1>UW g68.0<16,16,1>UW g118.0<16,16,1>UW {align1};
avg.sat (16) g69.0<1>UW g69.0<16,16,1>UW g119.0<16,16,1>UW {align1};
avg.sat (16) g70.0<1>UW g70.0<16,16,1>UW g120.0<16,16,1>UW {align1};
avg.sat (16) g71.0<1>UW g71.0<16,16,1>UW g121.0<16,16,1>UW {align1};
avg.sat (16) g72.0<1>UW g72.0<16,16,1>UW g122.0<16,16,1>UW {align1};
avg.sat (16) g73.0<1>UW g73.0<16,16,1>UW g123.0<16,16,1>UW {align1};
//UV, Forward
shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1};
asr (2) g31.14<1>W g82.16<2,2,1>W 2W {align1};
add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
define(`input_surface1', `5')
define(`input_surface2', `6')
mov (1) g32.8<1>UD 0x007000fUD {align1};
include(`motion_frame_uv.g4i')
//Save UV Forward
mov (16) g108.0<1>UB g74.0<16,16,2>UB {align1};
mov (16) g108.16<1>UB g75.0<16,16,2>UB {align1};
mov (16) g109.0<1>UB g76.0<16,16,2>UB {align1};
mov (16) g109.16<1>UB g77.0<16,16,2>UB {align1};
mov (16) g110.0<1>UB g78.0<16,16,2>UB {align1};
mov (16) g110.16<1>UB g79.0<16,16,2>UB {align1};
mov (16) g111.0<1>UB g80.0<16,16,2>UB {align1};
mov (16) g111.16<1>UB g81.0<16,16,2>UB {align1};
//UV, Backward
asr (2) g31.14<1>W g82.20<2,2,1>W 2W {align1};
add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
define(`input_surface1', `8')
define(`input_surface2', `9')
include(`motion_frame_uv.g4i')
//Average Forward and Backward
avg.sat (16) g74.0<1>UW g74.0<16,16,1>UW g108.0<16,16,1>UB {align1};
avg.sat (16) g75.0<1>UW g75.0<16,16,1>UW g108.16<16,16,1>UB {align1};
avg.sat (16) g76.0<1>UW g76.0<16,16,1>UW g109.0<16,16,1>UB {align1};
avg.sat (16) g77.0<1>UW g77.0<16,16,1>UW g109.16<16,16,1>UB {align1};
avg.sat (16) g78.0<1>UW g78.0<16,16,1>UW g110.0<16,16,1>UB {align1};
avg.sat (16) g79.0<1>UW g79.0<16,16,1>UW g110.16<16,16,1>UB {align1};
avg.sat (16) g80.0<1>UW g80.0<16,16,1>UW g111.0<16,16,1>UB {align1};
avg.sat (16) g81.0<1>UW g81.0<16,16,1>UW g111.16<16,16,1>UB {align1};
include(`addidct.g4i')
send (16) 0 acc0<1>UW g0<8,8,1>UW
thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};

View File

@ -0,0 +1,463 @@
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 },
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 },
{ 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
{ 0x00000001, 0x34000020, 0x002102a0, 0x00000000 },
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 },
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 },
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
{ 0x01000005, 0x20000d3c, 0x00210a50, 0x00000001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000005f },
{ 0x01000005, 0x20000d3c, 0x00210a52, 0x00000001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000048 },
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 },
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 },
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a004 },
{ 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 },
{ 0x00800040, 0x27604629, 0x00b104e0, 0x00b104e1 },
{ 0x00800040, 0x27804629, 0x00b10500, 0x00b10501 },
{ 0x00800040, 0x27a04629, 0x00b10520, 0x00b10521 },
{ 0x00800040, 0x27c04629, 0x00b10540, 0x00b10541 },
{ 0x00800040, 0x27e04629, 0x00b10560, 0x00b10561 },
{ 0x00800040, 0x28004629, 0x00b10580, 0x00b10581 },
{ 0x00800040, 0x28204629, 0x00b105a0, 0x00b105a1 },
{ 0x00800040, 0x28404629, 0x00b105c0, 0x00b105c1 },
{ 0x00800040, 0x28604629, 0x00b105e0, 0x00b105e1 },
{ 0x00800040, 0x28804629, 0x00b10600, 0x00b10601 },
{ 0x00800040, 0x28a04629, 0x00b10620, 0x00b10621 },
{ 0x00800040, 0x28c04629, 0x00b10640, 0x00b10641 },
{ 0x00800040, 0x28e04629, 0x00b10660, 0x00b10661 },
{ 0x00800040, 0x29004629, 0x00b10680, 0x00b10681 },
{ 0x00800040, 0x29204629, 0x00b106a0, 0x00b106a1 },
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b104e0 },
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10500 },
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10520 },
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10540 },
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10560 },
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10580 },
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b105a0 },
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b105c0 },
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b105e0 },
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10600 },
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10620 },
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10640 },
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10660 },
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10680 },
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b106a0 },
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 },
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b104e1 },
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10501 },
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10521 },
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10541 },
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10561 },
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10581 },
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b105a1 },
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b105c1 },
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b105e1 },
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10601 },
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10621 },
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10641 },
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10661 },
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10681 },
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b106a1 },
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 },
{ 0x80800008, 0x27402d29, 0x00b10740, 0x00020002 },
{ 0x80800008, 0x27602d29, 0x00b10760, 0x00020002 },
{ 0x80800008, 0x27802d29, 0x00b10780, 0x00020002 },
{ 0x80800008, 0x27a02d29, 0x00b107a0, 0x00020002 },
{ 0x80800008, 0x27c02d29, 0x00b107c0, 0x00020002 },
{ 0x80800008, 0x27e02d29, 0x00b107e0, 0x00020002 },
{ 0x80800008, 0x28002d29, 0x00b10800, 0x00020002 },
{ 0x80800008, 0x28202d29, 0x00b10820, 0x00020002 },
{ 0x80800008, 0x28402d29, 0x00b10840, 0x00020002 },
{ 0x80800008, 0x28602d29, 0x00b10860, 0x00020002 },
{ 0x80800008, 0x28802d29, 0x00b10880, 0x00020002 },
{ 0x80800008, 0x28a02d29, 0x00b108a0, 0x00020002 },
{ 0x80800008, 0x28c02d29, 0x00b108c0, 0x00020002 },
{ 0x80800008, 0x28e02d29, 0x00b108e0, 0x00020002 },
{ 0x80800008, 0x29002d29, 0x00b10900, 0x00020002 },
{ 0x80800008, 0x29202d29, 0x00b10920, 0x00020002 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000043 },
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 },
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 },
{ 0x80800042, 0x27404629, 0x00b104c0, 0x00b104c1 },
{ 0x80800042, 0x27604629, 0x00b104e0, 0x00b104e1 },
{ 0x80800042, 0x27804629, 0x00b10500, 0x00b10501 },
{ 0x80800042, 0x27a04629, 0x00b10520, 0x00b10521 },
{ 0x80800042, 0x27c04629, 0x00b10540, 0x00b10541 },
{ 0x80800042, 0x27e04629, 0x00b10560, 0x00b10561 },
{ 0x80800042, 0x28004629, 0x00b10580, 0x00b10581 },
{ 0x80800042, 0x28204629, 0x00b105a0, 0x00b105a1 },
{ 0x80800042, 0x28404629, 0x00b105c0, 0x00b105c1 },
{ 0x80800042, 0x28604629, 0x00b105e0, 0x00b105e1 },
{ 0x80800042, 0x28804629, 0x00b10600, 0x00b10601 },
{ 0x80800042, 0x28a04629, 0x00b10620, 0x00b10621 },
{ 0x80800042, 0x28c04629, 0x00b10640, 0x00b10641 },
{ 0x80800042, 0x28e04629, 0x00b10660, 0x00b10661 },
{ 0x80800042, 0x29004629, 0x00b10680, 0x00b10681 },
{ 0x80800042, 0x29204629, 0x00b106a0, 0x00b106a1 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
{ 0x01000005, 0x20000d3c, 0x00210a52, 0x00000001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000018 },
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 },
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 },
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a004 },
{ 0x80800042, 0x27404629, 0x00b104c0, 0x00b104e0 },
{ 0x80800042, 0x27604629, 0x00b104e0, 0x00b10500 },
{ 0x80800042, 0x27804629, 0x00b10500, 0x00b10520 },
{ 0x80800042, 0x27a04629, 0x00b10520, 0x00b10540 },
{ 0x80800042, 0x27c04629, 0x00b10540, 0x00b10560 },
{ 0x80800042, 0x27e04629, 0x00b10560, 0x00b10580 },
{ 0x80800042, 0x28004629, 0x00b10580, 0x00b105a0 },
{ 0x80800042, 0x28204629, 0x00b105a0, 0x00b105c0 },
{ 0x80800042, 0x28404629, 0x00b105c0, 0x00b105e0 },
{ 0x80800042, 0x28604629, 0x00b105e0, 0x00b10600 },
{ 0x80800042, 0x28804629, 0x00b10600, 0x00b10620 },
{ 0x80800042, 0x28a04629, 0x00b10620, 0x00b10640 },
{ 0x80800042, 0x28c04629, 0x00b10640, 0x00b10660 },
{ 0x80800042, 0x28e04629, 0x00b10660, 0x00b10680 },
{ 0x80800042, 0x29004629, 0x00b10680, 0x00b106a0 },
{ 0x80800042, 0x29204629, 0x00b106a0, 0x00b106c0 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000014 },
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 },
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 },
{ 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 },
{ 0x00800001, 0x27600229, 0x00b104e0, 0x00000000 },
{ 0x00800001, 0x27800229, 0x00b10500, 0x00000000 },
{ 0x00800001, 0x27a00229, 0x00b10520, 0x00000000 },
{ 0x00800001, 0x27c00229, 0x00b10540, 0x00000000 },
{ 0x00800001, 0x27e00229, 0x00b10560, 0x00000000 },
{ 0x00800001, 0x28000229, 0x00b10580, 0x00000000 },
{ 0x00800001, 0x28200229, 0x00b105a0, 0x00000000 },
{ 0x00800001, 0x28400229, 0x00b105c0, 0x00000000 },
{ 0x00800001, 0x28600229, 0x00b105e0, 0x00000000 },
{ 0x00800001, 0x28800229, 0x00b10600, 0x00000000 },
{ 0x00800001, 0x28a00229, 0x00b10620, 0x00000000 },
{ 0x00800001, 0x28c00229, 0x00b10640, 0x00000000 },
{ 0x00800001, 0x28e00229, 0x00b10660, 0x00000000 },
{ 0x00800001, 0x29000229, 0x00b10680, 0x00000000 },
{ 0x00800001, 0x29200229, 0x00b106a0, 0x00000000 },
{ 0x00802001, 0x2d800021, 0x00b10740, 0x00000000 },
{ 0x00802001, 0x2dc00021, 0x00b10780, 0x00000000 },
{ 0x00802001, 0x2e000021, 0x00b107c0, 0x00000000 },
{ 0x00802001, 0x2e400021, 0x00b10800, 0x00000000 },
{ 0x00802001, 0x2e800021, 0x00b10840, 0x00000000 },
{ 0x00802001, 0x2ec00021, 0x00b10880, 0x00000000 },
{ 0x00802001, 0x2f000021, 0x00b108c0, 0x00000000 },
{ 0x00802001, 0x2f400021, 0x00b10900, 0x00000000 },
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 },
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
{ 0x01000005, 0x20000d3c, 0x00210a54, 0x00000001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000005f },
{ 0x01000005, 0x20000d3c, 0x00210a56, 0x00000001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000048 },
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 },
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 },
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a007 },
{ 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 },
{ 0x00800040, 0x27604629, 0x00b104e0, 0x00b104e1 },
{ 0x00800040, 0x27804629, 0x00b10500, 0x00b10501 },
{ 0x00800040, 0x27a04629, 0x00b10520, 0x00b10521 },
{ 0x00800040, 0x27c04629, 0x00b10540, 0x00b10541 },
{ 0x00800040, 0x27e04629, 0x00b10560, 0x00b10561 },
{ 0x00800040, 0x28004629, 0x00b10580, 0x00b10581 },
{ 0x00800040, 0x28204629, 0x00b105a0, 0x00b105a1 },
{ 0x00800040, 0x28404629, 0x00b105c0, 0x00b105c1 },
{ 0x00800040, 0x28604629, 0x00b105e0, 0x00b105e1 },
{ 0x00800040, 0x28804629, 0x00b10600, 0x00b10601 },
{ 0x00800040, 0x28a04629, 0x00b10620, 0x00b10621 },
{ 0x00800040, 0x28c04629, 0x00b10640, 0x00b10641 },
{ 0x00800040, 0x28e04629, 0x00b10660, 0x00b10661 },
{ 0x00800040, 0x29004629, 0x00b10680, 0x00b10681 },
{ 0x00800040, 0x29204629, 0x00b106a0, 0x00b106a1 },
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b104e0 },
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10500 },
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10520 },
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10540 },
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10560 },
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10580 },
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b105a0 },
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b105c0 },
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b105e0 },
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10600 },
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10620 },
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10640 },
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10660 },
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10680 },
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b106a0 },
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 },
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b104e1 },
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10501 },
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10521 },
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10541 },
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10561 },
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10581 },
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b105a1 },
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b105c1 },
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b105e1 },
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10601 },
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10621 },
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10641 },
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10661 },
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10681 },
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b106a1 },
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 },
{ 0x80800008, 0x27402d29, 0x00b10740, 0x00020002 },
{ 0x80800008, 0x27602d29, 0x00b10760, 0x00020002 },
{ 0x80800008, 0x27802d29, 0x00b10780, 0x00020002 },
{ 0x80800008, 0x27a02d29, 0x00b107a0, 0x00020002 },
{ 0x80800008, 0x27c02d29, 0x00b107c0, 0x00020002 },
{ 0x80800008, 0x27e02d29, 0x00b107e0, 0x00020002 },
{ 0x80800008, 0x28002d29, 0x00b10800, 0x00020002 },
{ 0x80800008, 0x28202d29, 0x00b10820, 0x00020002 },
{ 0x80800008, 0x28402d29, 0x00b10840, 0x00020002 },
{ 0x80800008, 0x28602d29, 0x00b10860, 0x00020002 },
{ 0x80800008, 0x28802d29, 0x00b10880, 0x00020002 },
{ 0x80800008, 0x28a02d29, 0x00b108a0, 0x00020002 },
{ 0x80800008, 0x28c02d29, 0x00b108c0, 0x00020002 },
{ 0x80800008, 0x28e02d29, 0x00b108e0, 0x00020002 },
{ 0x80800008, 0x29002d29, 0x00b10900, 0x00020002 },
{ 0x80800008, 0x29202d29, 0x00b10920, 0x00020002 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000043 },
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 },
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 },
{ 0x80800042, 0x27404629, 0x00b104c0, 0x00b104c1 },
{ 0x80800042, 0x27604629, 0x00b104e0, 0x00b104e1 },
{ 0x80800042, 0x27804629, 0x00b10500, 0x00b10501 },
{ 0x80800042, 0x27a04629, 0x00b10520, 0x00b10521 },
{ 0x80800042, 0x27c04629, 0x00b10540, 0x00b10541 },
{ 0x80800042, 0x27e04629, 0x00b10560, 0x00b10561 },
{ 0x80800042, 0x28004629, 0x00b10580, 0x00b10581 },
{ 0x80800042, 0x28204629, 0x00b105a0, 0x00b105a1 },
{ 0x80800042, 0x28404629, 0x00b105c0, 0x00b105c1 },
{ 0x80800042, 0x28604629, 0x00b105e0, 0x00b105e1 },
{ 0x80800042, 0x28804629, 0x00b10600, 0x00b10601 },
{ 0x80800042, 0x28a04629, 0x00b10620, 0x00b10621 },
{ 0x80800042, 0x28c04629, 0x00b10640, 0x00b10641 },
{ 0x80800042, 0x28e04629, 0x00b10660, 0x00b10661 },
{ 0x80800042, 0x29004629, 0x00b10680, 0x00b10681 },
{ 0x80800042, 0x29204629, 0x00b106a0, 0x00b106a1 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
{ 0x01000005, 0x20000d3c, 0x00210a56, 0x00000001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000018 },
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 },
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 },
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a007 },
{ 0x80800042, 0x27404629, 0x00b104c0, 0x00b104e0 },
{ 0x80800042, 0x27604629, 0x00b104e0, 0x00b10500 },
{ 0x80800042, 0x27804629, 0x00b10500, 0x00b10520 },
{ 0x80800042, 0x27a04629, 0x00b10520, 0x00b10540 },
{ 0x80800042, 0x27c04629, 0x00b10540, 0x00b10560 },
{ 0x80800042, 0x27e04629, 0x00b10560, 0x00b10580 },
{ 0x80800042, 0x28004629, 0x00b10580, 0x00b105a0 },
{ 0x80800042, 0x28204629, 0x00b105a0, 0x00b105c0 },
{ 0x80800042, 0x28404629, 0x00b105c0, 0x00b105e0 },
{ 0x80800042, 0x28604629, 0x00b105e0, 0x00b10600 },
{ 0x80800042, 0x28804629, 0x00b10600, 0x00b10620 },
{ 0x80800042, 0x28a04629, 0x00b10620, 0x00b10640 },
{ 0x80800042, 0x28c04629, 0x00b10640, 0x00b10660 },
{ 0x80800042, 0x28e04629, 0x00b10660, 0x00b10680 },
{ 0x80800042, 0x29004629, 0x00b10680, 0x00b106a0 },
{ 0x80800042, 0x29204629, 0x00b106a0, 0x00b106c0 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000014 },
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 },
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 },
{ 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 },
{ 0x00800001, 0x27600229, 0x00b104e0, 0x00000000 },
{ 0x00800001, 0x27800229, 0x00b10500, 0x00000000 },
{ 0x00800001, 0x27a00229, 0x00b10520, 0x00000000 },
{ 0x00800001, 0x27c00229, 0x00b10540, 0x00000000 },
{ 0x00800001, 0x27e00229, 0x00b10560, 0x00000000 },
{ 0x00800001, 0x28000229, 0x00b10580, 0x00000000 },
{ 0x00800001, 0x28200229, 0x00b105a0, 0x00000000 },
{ 0x00800001, 0x28400229, 0x00b105c0, 0x00000000 },
{ 0x00800001, 0x28600229, 0x00b105e0, 0x00000000 },
{ 0x00800001, 0x28800229, 0x00b10600, 0x00000000 },
{ 0x00800001, 0x28a00229, 0x00b10620, 0x00000000 },
{ 0x00800001, 0x28c00229, 0x00b10640, 0x00000000 },
{ 0x00800001, 0x28e00229, 0x00b10660, 0x00000000 },
{ 0x00800001, 0x29000229, 0x00b10680, 0x00000000 },
{ 0x00800001, 0x29200229, 0x00b106a0, 0x00000000 },
{ 0x80800042, 0x27402529, 0x00b10740, 0x00b10d80 },
{ 0x80800042, 0x27602529, 0x00b10760, 0x00b10da0 },
{ 0x80800042, 0x27802529, 0x00b10780, 0x00b10dc0 },
{ 0x80800042, 0x27a02529, 0x00b107a0, 0x00b10de0 },
{ 0x80800042, 0x27c02529, 0x00b107c0, 0x00b10e00 },
{ 0x80800042, 0x27e02529, 0x00b107e0, 0x00b10e20 },
{ 0x80800042, 0x28002529, 0x00b10800, 0x00b10e40 },
{ 0x80800042, 0x28202529, 0x00b10820, 0x00b10e60 },
{ 0x80800042, 0x28402529, 0x00b10840, 0x00b10e80 },
{ 0x80800042, 0x28602529, 0x00b10860, 0x00b10ea0 },
{ 0x80800042, 0x28802529, 0x00b10880, 0x00b10ec0 },
{ 0x80800042, 0x28a02529, 0x00b108a0, 0x00b10ee0 },
{ 0x80800042, 0x28c02529, 0x00b108c0, 0x00b10f00 },
{ 0x80800042, 0x28e02529, 0x00b108e0, 0x00b10f20 },
{ 0x80800042, 0x29002529, 0x00b10900, 0x00b10f40 },
{ 0x80800042, 0x29202529, 0x00b10920, 0x00b10f60 },
{ 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 },
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00020002 },
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f },
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f },
{ 0x00800031, 0x24801d29, 0x008d0400, 0x0414a005 },
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a006 },
{ 0x00800001, 0x29400229, 0x00ad0480, 0x00000000 },
{ 0x00800001, 0x29600229, 0x00ad04a0, 0x00000000 },
{ 0x00800001, 0x29800229, 0x00ad04c0, 0x00000000 },
{ 0x00800001, 0x29a00229, 0x00ad04e0, 0x00000000 },
{ 0x00800001, 0x29c00229, 0x00ad0500, 0x00000000 },
{ 0x00800001, 0x29e00229, 0x00ad0520, 0x00000000 },
{ 0x00800001, 0x2a000229, 0x00ad0540, 0x00000000 },
{ 0x00800001, 0x2a200229, 0x00ad0560, 0x00000000 },
{ 0x00800001, 0x2d800231, 0x00b20940, 0x00000000 },
{ 0x00800001, 0x2d900231, 0x00b20960, 0x00000000 },
{ 0x00800001, 0x2da00231, 0x00b20980, 0x00000000 },
{ 0x00800001, 0x2db00231, 0x00b209a0, 0x00000000 },
{ 0x00800001, 0x2dc00231, 0x00b209c0, 0x00000000 },
{ 0x00800001, 0x2dd00231, 0x00b209e0, 0x00000000 },
{ 0x00800001, 0x2de00231, 0x00b20a00, 0x00000000 },
{ 0x00800001, 0x2df00231, 0x00b20a20, 0x00000000 },
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00020002 },
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f },
{ 0x00800031, 0x24801d29, 0x008d0400, 0x0414a008 },
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a009 },
{ 0x00800001, 0x29400229, 0x00ad0480, 0x00000000 },
{ 0x00800001, 0x29600229, 0x00ad04a0, 0x00000000 },
{ 0x00800001, 0x29800229, 0x00ad04c0, 0x00000000 },
{ 0x00800001, 0x29a00229, 0x00ad04e0, 0x00000000 },
{ 0x00800001, 0x29c00229, 0x00ad0500, 0x00000000 },
{ 0x00800001, 0x29e00229, 0x00ad0520, 0x00000000 },
{ 0x00800001, 0x2a000229, 0x00ad0540, 0x00000000 },
{ 0x00800001, 0x2a200229, 0x00ad0560, 0x00000000 },
{ 0x80800042, 0x29404529, 0x00b10940, 0x00b10d80 },
{ 0x80800042, 0x29604529, 0x00b10960, 0x00b10d90 },
{ 0x80800042, 0x29804529, 0x00b10980, 0x00b10da0 },
{ 0x80800042, 0x29a04529, 0x00b109a0, 0x00b10db0 },
{ 0x80800042, 0x29c04529, 0x00b109c0, 0x00b10dc0 },
{ 0x80800042, 0x29e04529, 0x00b109e0, 0x00b10dd0 },
{ 0x80800042, 0x2a004529, 0x00b10a00, 0x00b10de0 },
{ 0x80800042, 0x2a204529, 0x00b10a20, 0x00b10df0 },
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 },
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 },
{ 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 },
{ 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 },
{ 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 },
{ 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 },
{ 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 },
{ 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 },
{ 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 },
{ 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 },
{ 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 },
{ 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 },
{ 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 },
{ 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 },
{ 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 },
{ 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 },
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 },
{ 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 },
{ 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 },
{ 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 },
{ 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 },
{ 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 },
{ 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 },
{ 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 },
{ 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 },
{ 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 },
{ 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 },
{ 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 },
{ 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 },
{ 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 },
{ 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 },
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 },
{ 0x00000001, 0x23e80061, 0x00000000, 0x000f000f },
{ 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 },
{ 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 },
{ 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 },
{ 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 },
{ 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 },
{ 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 },
{ 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 },
{ 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 },
{ 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 },
{ 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 },
{ 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 },
{ 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 },
{ 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 },
{ 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 },
{ 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 },
{ 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 },
{ 0x00800001, 0x20200232, 0x00b20740, 0x00000000 },
{ 0x00800001, 0x20300232, 0x00b20760, 0x00000000 },
{ 0x00800001, 0x20400232, 0x00b20780, 0x00000000 },
{ 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 },
{ 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 },
{ 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 },
{ 0x00800001, 0x20800232, 0x00b20800, 0x00000000 },
{ 0x00800001, 0x20900232, 0x00b20820, 0x00000000 },
{ 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 },
{ 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 },
{ 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 },
{ 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 },
{ 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 },
{ 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 },
{ 0x00800001, 0x21000232, 0x00b20900, 0x00000000 },
{ 0x00800001, 0x21100232, 0x00b20920, 0x00000000 },
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 },
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 },
{ 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 },
{ 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 },
{ 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 },
{ 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 },
{ 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 },
{ 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 },
{ 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 },
{ 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 },
{ 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 },
{ 0x00800001, 0x20200232, 0x00b20940, 0x00000000 },
{ 0x00800001, 0x20300232, 0x00b20960, 0x00000000 },
{ 0x00800001, 0x20400232, 0x00b20980, 0x00000000 },
{ 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 },
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 },
{ 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 },
{ 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 },
{ 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 },
{ 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 },
{ 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 },
{ 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 },
{ 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 },
{ 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 },
{ 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 },
{ 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 },
{ 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 },
{ 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 },
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 },
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },

View File

@ -0,0 +1,61 @@
/*
* Copyright © 2009 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Author:
* Zou Nan hai <nanhai.zou@intel.com>
* Yan Li <li.l.yan@intel.com>
* Liu Xi bin<xibin.liu@intel.com>
*/
/* GRF allocation:
g1~g30: constant buffer
g1~g2:intra IQ matrix
g3~g4:non intra IQ matrix
g5~g20:IDCT table
g31: thread payload
g32: message descriptor for reading reference data
g58~g81:reference data
g82: thread payload backup
g83~g106:IDCT data */
mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
mov (2) g31.0<1>UD g82.12<2,2,1>UW {align1};
mov (1) g126.8<1>UD ip {align1};
mov (1) ip g21.0<1,1,1>UD {align1};
//Y, (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1)
asr (2) g31.14<1>W g82.16<2,2,1>W 1W {align1};
add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
define(`input_surface', `4')
define(`mv1', `g82.16')
define(`mv2', `g82.18')
include(`motion_frame_y.g4i')
//UV, (x', y') = (x >> 1, y >> 1) + (motion_vector.x >> 2, motion_vector.y >> 2)
shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1};
asr (2) g31.14<1>W g82.16<2,2,1>W 2W {align1};
add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
define(`input_surface1', `5')
define(`input_surface2', `6')
include(`motion_frame_uv.g4i')
include(`addidct.g4i')
send (16) 0 acc0<1>UW g0<8,8,1>UW
thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};

View File

@ -0,0 +1,263 @@
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 },
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 },
{ 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
{ 0x00000001, 0x34000020, 0x002102a0, 0x00000000 },
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 },
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
{ 0x01000005, 0x20000d3c, 0x00210a50, 0x00000001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000005f },
{ 0x01000005, 0x20000d3c, 0x00210a52, 0x00000001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000048 },
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 },
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 },
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a004 },
{ 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 },
{ 0x00800040, 0x27604629, 0x00b104e0, 0x00b104e1 },
{ 0x00800040, 0x27804629, 0x00b10500, 0x00b10501 },
{ 0x00800040, 0x27a04629, 0x00b10520, 0x00b10521 },
{ 0x00800040, 0x27c04629, 0x00b10540, 0x00b10541 },
{ 0x00800040, 0x27e04629, 0x00b10560, 0x00b10561 },
{ 0x00800040, 0x28004629, 0x00b10580, 0x00b10581 },
{ 0x00800040, 0x28204629, 0x00b105a0, 0x00b105a1 },
{ 0x00800040, 0x28404629, 0x00b105c0, 0x00b105c1 },
{ 0x00800040, 0x28604629, 0x00b105e0, 0x00b105e1 },
{ 0x00800040, 0x28804629, 0x00b10600, 0x00b10601 },
{ 0x00800040, 0x28a04629, 0x00b10620, 0x00b10621 },
{ 0x00800040, 0x28c04629, 0x00b10640, 0x00b10641 },
{ 0x00800040, 0x28e04629, 0x00b10660, 0x00b10661 },
{ 0x00800040, 0x29004629, 0x00b10680, 0x00b10681 },
{ 0x00800040, 0x29204629, 0x00b106a0, 0x00b106a1 },
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b104e0 },
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10500 },
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10520 },
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10540 },
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10560 },
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10580 },
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b105a0 },
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b105c0 },
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b105e0 },
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10600 },
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10620 },
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10640 },
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10660 },
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10680 },
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b106a0 },
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 },
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b104e1 },
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10501 },
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10521 },
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10541 },
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10561 },
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10581 },
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b105a1 },
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b105c1 },
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b105e1 },
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10601 },
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10621 },
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10641 },
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10661 },
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10681 },
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b106a1 },
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 },
{ 0x80800008, 0x27402d29, 0x00b10740, 0x00020002 },
{ 0x80800008, 0x27602d29, 0x00b10760, 0x00020002 },
{ 0x80800008, 0x27802d29, 0x00b10780, 0x00020002 },
{ 0x80800008, 0x27a02d29, 0x00b107a0, 0x00020002 },
{ 0x80800008, 0x27c02d29, 0x00b107c0, 0x00020002 },
{ 0x80800008, 0x27e02d29, 0x00b107e0, 0x00020002 },
{ 0x80800008, 0x28002d29, 0x00b10800, 0x00020002 },
{ 0x80800008, 0x28202d29, 0x00b10820, 0x00020002 },
{ 0x80800008, 0x28402d29, 0x00b10840, 0x00020002 },
{ 0x80800008, 0x28602d29, 0x00b10860, 0x00020002 },
{ 0x80800008, 0x28802d29, 0x00b10880, 0x00020002 },
{ 0x80800008, 0x28a02d29, 0x00b108a0, 0x00020002 },
{ 0x80800008, 0x28c02d29, 0x00b108c0, 0x00020002 },
{ 0x80800008, 0x28e02d29, 0x00b108e0, 0x00020002 },
{ 0x80800008, 0x29002d29, 0x00b10900, 0x00020002 },
{ 0x80800008, 0x29202d29, 0x00b10920, 0x00020002 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000043 },
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 },
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 },
{ 0x80800042, 0x27404629, 0x00b104c0, 0x00b104c1 },
{ 0x80800042, 0x27604629, 0x00b104e0, 0x00b104e1 },
{ 0x80800042, 0x27804629, 0x00b10500, 0x00b10501 },
{ 0x80800042, 0x27a04629, 0x00b10520, 0x00b10521 },
{ 0x80800042, 0x27c04629, 0x00b10540, 0x00b10541 },
{ 0x80800042, 0x27e04629, 0x00b10560, 0x00b10561 },
{ 0x80800042, 0x28004629, 0x00b10580, 0x00b10581 },
{ 0x80800042, 0x28204629, 0x00b105a0, 0x00b105a1 },
{ 0x80800042, 0x28404629, 0x00b105c0, 0x00b105c1 },
{ 0x80800042, 0x28604629, 0x00b105e0, 0x00b105e1 },
{ 0x80800042, 0x28804629, 0x00b10600, 0x00b10601 },
{ 0x80800042, 0x28a04629, 0x00b10620, 0x00b10621 },
{ 0x80800042, 0x28c04629, 0x00b10640, 0x00b10641 },
{ 0x80800042, 0x28e04629, 0x00b10660, 0x00b10661 },
{ 0x80800042, 0x29004629, 0x00b10680, 0x00b10681 },
{ 0x80800042, 0x29204629, 0x00b106a0, 0x00b106a1 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
{ 0x01000005, 0x20000d3c, 0x00210a52, 0x00000001 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000018 },
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 },
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 },
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f },
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a004 },
{ 0x80800042, 0x27404629, 0x00b104c0, 0x00b104e0 },
{ 0x80800042, 0x27604629, 0x00b104e0, 0x00b10500 },
{ 0x80800042, 0x27804629, 0x00b10500, 0x00b10520 },
{ 0x80800042, 0x27a04629, 0x00b10520, 0x00b10540 },
{ 0x80800042, 0x27c04629, 0x00b10540, 0x00b10560 },
{ 0x80800042, 0x27e04629, 0x00b10560, 0x00b10580 },
{ 0x80800042, 0x28004629, 0x00b10580, 0x00b105a0 },
{ 0x80800042, 0x28204629, 0x00b105a0, 0x00b105c0 },
{ 0x80800042, 0x28404629, 0x00b105c0, 0x00b105e0 },
{ 0x80800042, 0x28604629, 0x00b105e0, 0x00b10600 },
{ 0x80800042, 0x28804629, 0x00b10600, 0x00b10620 },
{ 0x80800042, 0x28a04629, 0x00b10620, 0x00b10640 },
{ 0x80800042, 0x28c04629, 0x00b10640, 0x00b10660 },
{ 0x80800042, 0x28e04629, 0x00b10660, 0x00b10680 },
{ 0x80800042, 0x29004629, 0x00b10680, 0x00b106a0 },
{ 0x80800042, 0x29204629, 0x00b106a0, 0x00b106c0 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000014 },
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 },
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 },
{ 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 },
{ 0x00800001, 0x27600229, 0x00b104e0, 0x00000000 },
{ 0x00800001, 0x27800229, 0x00b10500, 0x00000000 },
{ 0x00800001, 0x27a00229, 0x00b10520, 0x00000000 },
{ 0x00800001, 0x27c00229, 0x00b10540, 0x00000000 },
{ 0x00800001, 0x27e00229, 0x00b10560, 0x00000000 },
{ 0x00800001, 0x28000229, 0x00b10580, 0x00000000 },
{ 0x00800001, 0x28200229, 0x00b105a0, 0x00000000 },
{ 0x00800001, 0x28400229, 0x00b105c0, 0x00000000 },
{ 0x00800001, 0x28600229, 0x00b105e0, 0x00000000 },
{ 0x00800001, 0x28800229, 0x00b10600, 0x00000000 },
{ 0x00800001, 0x28a00229, 0x00b10620, 0x00000000 },
{ 0x00800001, 0x28c00229, 0x00b10640, 0x00000000 },
{ 0x00800001, 0x28e00229, 0x00b10660, 0x00000000 },
{ 0x00800001, 0x29000229, 0x00b10680, 0x00000000 },
{ 0x00800001, 0x29200229, 0x00b106a0, 0x00000000 },
{ 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 },
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00020002 },
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f },
{ 0x00800031, 0x24801d29, 0x008d0400, 0x0414a005 },
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a006 },
{ 0x00800001, 0x29400229, 0x00ad0480, 0x00000000 },
{ 0x00800001, 0x29600229, 0x00ad04a0, 0x00000000 },
{ 0x00800001, 0x29800229, 0x00ad04c0, 0x00000000 },
{ 0x00800001, 0x29a00229, 0x00ad04e0, 0x00000000 },
{ 0x00800001, 0x29c00229, 0x00ad0500, 0x00000000 },
{ 0x00800001, 0x29e00229, 0x00ad0520, 0x00000000 },
{ 0x00800001, 0x2a000229, 0x00ad0540, 0x00000000 },
{ 0x00800001, 0x2a200229, 0x00ad0560, 0x00000000 },
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 },
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 },
{ 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 },
{ 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 },
{ 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 },
{ 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 },
{ 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 },
{ 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 },
{ 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 },
{ 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 },
{ 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 },
{ 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 },
{ 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 },
{ 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 },
{ 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 },
{ 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 },
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 },
{ 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 },
{ 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 },
{ 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 },
{ 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 },
{ 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 },
{ 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 },
{ 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 },
{ 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 },
{ 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 },
{ 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 },
{ 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 },
{ 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 },
{ 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 },
{ 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 },
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 },
{ 0x00000001, 0x23e80061, 0x00000000, 0x000f000f },
{ 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 },
{ 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 },
{ 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 },
{ 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 },
{ 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 },
{ 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 },
{ 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 },
{ 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 },
{ 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 },
{ 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 },
{ 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 },
{ 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 },
{ 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 },
{ 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 },
{ 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 },
{ 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 },
{ 0x00800001, 0x20200232, 0x00b20740, 0x00000000 },
{ 0x00800001, 0x20300232, 0x00b20760, 0x00000000 },
{ 0x00800001, 0x20400232, 0x00b20780, 0x00000000 },
{ 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 },
{ 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 },
{ 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 },
{ 0x00800001, 0x20800232, 0x00b20800, 0x00000000 },
{ 0x00800001, 0x20900232, 0x00b20820, 0x00000000 },
{ 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 },
{ 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 },
{ 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 },
{ 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 },
{ 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 },
{ 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 },
{ 0x00800001, 0x21000232, 0x00b20900, 0x00000000 },
{ 0x00800001, 0x21100232, 0x00b20920, 0x00000000 },
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 },
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 },
{ 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 },
{ 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 },
{ 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 },
{ 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 },
{ 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 },
{ 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 },
{ 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 },
{ 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 },
{ 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 },
{ 0x00800001, 0x20200232, 0x00b20940, 0x00000000 },
{ 0x00800001, 0x20300232, 0x00b20960, 0x00000000 },
{ 0x00800001, 0x20400232, 0x00b20980, 0x00000000 },
{ 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 },
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 },
{ 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 },
{ 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 },
{ 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 },
{ 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 },
{ 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 },
{ 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 },
{ 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 },
{ 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 },
{ 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 },
{ 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 },
{ 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 },
{ 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 },
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 },
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },

View File

@ -0,0 +1,147 @@
/*
* Copyright © 2009 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Author:
* Zou Nan hai <nanhai.zou@intel.com>
* Yan Li <li.l.yan@intel.com>
* Liu Xi bin<xibin.liu@intel.com>
*/
/* GRF allocation:
g1~g30: constant buffer
g1~g2:intra IQ matrix in UB format
g3~g4:non intra IQ matrix in UB format
g5~g20:IDCT table
g56~g79:DCT data after IQ before idct
g83~g106: IDCT data after idct
g82: thread payload backup
g125: ip before idct
*/
IDCT_START:
mov (1) g126.0<1>UD ip {align1};
jmpi DO_IDCT;
add (16) g32<1>D g32<8,8,1>D ROW_ADD {compr};
add (16) g34<1>D g34<8,8,1>D ROW_ADD {compr};
add (16) g36<1>D g36<8,8,1>D ROW_ADD {compr};
add (16) g38<1>D g38<8,8,1>D ROW_ADD {compr};
shr (16) g32<1>D g32<8,8,1>D ROW_SHIFT {compr};
shr (16) g34<1>D g34<8,8,1>D ROW_SHIFT {compr};
shr (16) g36<1>D g36<8,8,1>D ROW_SHIFT {compr};
shr (16) g38<1>D g38<8,8,1>D ROW_SHIFT {compr};
mov (16) g110.0<1>W g32<16,8,2>W {align1};
mov (16) g111.0<1>W g34<16,8,2>W {align1};
mov (16) g112.0<1>W g36<16,8,2>W {align1};
mov (16) g113.0<1>W g38<16,8,2>W {align1};
mov (1) g80.0<1>UD a0.0<1,1,1>UD {align1}; //save a0
mov (1) a0.0<1>UD 0x0DB00DA0UD {align1}; //begin at g110.0, the output of idct_row.g4i
mov (1) g126.0<1>UD ip {align1};
jmpi DO_IDCT;
add (16) g32<1>D g32<8,8,1>D COL_ADD {compr};
add (16) g34<1>D g34<8,8,1>D COL_ADD {compr};
add (16) g36<1>D g36<8,8,1>D COL_ADD {compr};
add (16) g38<1>D g38<8,8,1>D COL_ADD {compr};
shr (16) g32<1>D g32<8,8,1>D COL_SHIFT {compr};
shr (16) g34<1>D g34<8,8,1>D COL_SHIFT {compr};
shr (16) g36<1>D g36<8,8,1>D COL_SHIFT {compr};
shr (16) g38<1>D g38<8,8,1>D COL_SHIFT {compr};
mov (1) a0.0<1>UD g80.0<1,1,1>UD {align1}; //restore a0
add (1) ip g125.0<1,1,1>UD 0x20UD {align1}; //jump back
DO_IDCT:
add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1}; //increase the address
dp4 (16) g40<1>D g[a0.0]<8,8,1>W g5<8,8,1>D {align1 compr};
dp4 (16) g42<1>D g[a0.0]<8,8,1>W g7<8,8,1>D {align1 compr};
dp4 (16) g44<1>D g[a0.0]<8,8,1>W g9<8,8,1>D {align1 compr};
dp4 (16) g46<1>D g[a0.0]<8,8,1>W g11<8,8,1>D {align1 compr};
dp4 (16) g48<1>D g[a0.0]<8,8,1>W g13<8,8,1>D {align1 compr};
dp4 (16) g50<1>D g[a0.0]<8,8,1>W g15<8,8,1>D {align1 compr};
dp4 (16) g52<1>D g[a0.0]<8,8,1>W g17<8,8,1>D {align1 compr};
dp4 (16) g54<1>D g[a0.0]<8,8,1>W g19<8,8,1>D {align1 compr};
add (2) g32.0<1>D g40.0<8,1,8>D g40.16<8,1,8>D {align1};
add (2) g33.0<1>D g42.0<8,1,8>D g42.16<8,1,8>D {align1};
add (2) g34.0<1>D g44.0<8,1,8>D g44.16<8,1,8>D {align1};
add (2) g35.0<1>D g46.0<8,1,8>D g46.16<8,1,8>D {align1};
add (2) g36.0<1>D g48.0<8,1,8>D g48.16<8,1,8>D {align1};
add (2) g37.0<1>D g50.0<8,1,8>D g50.16<8,1,8>D {align1};
add (2) g38.0<1>D g52.0<8,1,8>D g52.16<8,1,8>D {align1};
add (2) g39.0<1>D g54.0<8,1,8>D g54.16<8,1,8>D {align1};
add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1};
dp4 (16) g40<1>D g[a0.0]<8,8,1>W g5<8,8,1>D {align1 compr};
dp4 (16) g42<1>D g[a0.0]<8,8,1>W g7<8,8,1>D {align1 compr};
dp4 (16) g44<1>D g[a0.0]<8,8,1>W g9<8,8,1>D {align1 compr};
dp4 (16) g46<1>D g[a0.0]<8,8,1>W g11<8,8,1>D {align1 compr};
dp4 (16) g48<1>D g[a0.0]<8,8,1>W g13<8,8,1>D {align1 compr};
dp4 (16) g50<1>D g[a0.0]<8,8,1>W g15<8,8,1>D {align1 compr};
dp4 (16) g52<1>D g[a0.0]<8,8,1>W g17<8,8,1>D {align1 compr};
dp4 (16) g54<1>D g[a0.0]<8,8,1>W g19<8,8,1>D {align1 compr};
add (2) g32.8<1>D g40.0<8,1,8>D g40.16<8,1,8>D {align1};
add (2) g33.8<1>D g42.0<8,1,8>D g42.16<8,1,8>D {align1};
add (2) g34.8<1>D g44.0<8,1,8>D g44.16<8,1,8>D {align1};
add (2) g35.8<1>D g46.0<8,1,8>D g46.16<8,1,8>D {align1};
add (2) g36.8<1>D g48.0<8,1,8>D g48.16<8,1,8>D {align1};
add (2) g37.8<1>D g50.0<8,1,8>D g50.16<8,1,8>D {align1};
add (2) g38.8<1>D g52.0<8,1,8>D g52.16<8,1,8>D {align1};
add (2) g39.8<1>D g54.0<8,1,8>D g54.16<8,1,8>D {align1};
add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1};
dp4 (16) g40<1>D g[a0.0]<8,8,1>W g5<8,8,1>D {align1 compr};
dp4 (16) g42<1>D g[a0.0]<8,8,1>W g7<8,8,1>D {align1 compr};
dp4 (16) g44<1>D g[a0.0]<8,8,1>W g9<8,8,1>D {align1 compr};
dp4 (16) g46<1>D g[a0.0]<8,8,1>W g11<8,8,1>D {align1 compr};
dp4 (16) g48<1>D g[a0.0]<8,8,1>W g13<8,8,1>D {align1 compr};
dp4 (16) g50<1>D g[a0.0]<8,8,1>W g15<8,8,1>D {align1 compr};
dp4 (16) g52<1>D g[a0.0]<8,8,1>W g17<8,8,1>D {align1 compr};
dp4 (16) g54<1>D g[a0.0]<8,8,1>W g19<8,8,1>D {align1 compr};
add (2) g32.16<1>D g40.0<8,1,8>D g40.16<8,1,8>D {align1};
add (2) g33.16<1>D g42.0<8,1,8>D g42.16<8,1,8>D {align1};
add (2) g34.16<1>D g44.0<8,1,8>D g44.16<8,1,8>D {align1};
add (2) g35.16<1>D g46.0<8,1,8>D g46.16<8,1,8>D {align1};
add (2) g36.16<1>D g48.0<8,1,8>D g48.16<8,1,8>D {align1};
add (2) g37.16<1>D g50.0<8,1,8>D g50.16<8,1,8>D {align1};
add (2) g38.16<1>D g52.0<8,1,8>D g52.16<8,1,8>D {align1};
add (2) g39.16<1>D g54.0<8,1,8>D g54.16<8,1,8>D {align1};
add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1};
dp4 (16) g40<1>D g[a0.0]<8,8,1>W g5<8,8,1>D {align1 compr};
dp4 (16) g42<1>D g[a0.0]<8,8,1>W g7<8,8,1>D {align1 compr};
dp4 (16) g44<1>D g[a0.0]<8,8,1>W g9<8,8,1>D {align1 compr};
dp4 (16) g46<1>D g[a0.0]<8,8,1>W g11<8,8,1>D {align1 compr};
dp4 (16) g48<1>D g[a0.0]<8,8,1>W g13<8,8,1>D {align1 compr};
dp4 (16) g50<1>D g[a0.0]<8,8,1>W g15<8,8,1>D {align1 compr};
dp4 (16) g52<1>D g[a0.0]<8,8,1>W g17<8,8,1>D {align1 compr};
dp4 (16) g54<1>D g[a0.0]<8,8,1>W g19<8,8,1>D {align1 compr};
add (2) g32.24<1>D g40.0<8,1,8>D g40.16<8,1,8>D {align1};
add (2) g33.24<1>D g42.0<8,1,8>D g42.16<8,1,8>D {align1};
add (2) g34.24<1>D g44.0<8,1,8>D g44.16<8,1,8>D {align1};
add (2) g35.24<1>D g46.0<8,1,8>D g46.16<8,1,8>D {align1};
add (2) g36.24<1>D g48.0<8,1,8>D g48.16<8,1,8>D {align1};
add (2) g37.24<1>D g50.0<8,1,8>D g50.16<8,1,8>D {align1};
add (2) g38.24<1>D g52.0<8,1,8>D g52.16<8,1,8>D {align1};
add (2) g39.24<1>D g54.0<8,1,8>D g54.16<8,1,8>D {align1};
add (1) ip g126.0<1,1,1>UD 0x20UD {align1}; //jump back

View File

@ -0,0 +1,209 @@
/*
* Copyright © 2009 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Author:
* Zou Nan hai <nanhai.zou@intel.com>
* Yan Li <li.l.yan@intel.com>
* Liu Xi bin<xibin.liu@intel.com>
*/
/*
GRF allocation:
g1~g30: constant buffer
g1~g2:intra IQ matrix
g3~g4:non intra IQ matrix
g5~g20:IDCT tab
g31: read and write message descriptor
g32~g55:DCT data
g58~g81:reference data
g82: thread payload
g83~g106:IDCT data
*/
mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
mov (2) g31.0<1>UD g82.12<2,2,1>UW {align1};
include(`iq_intra.g4i')
//defined for idct
define(`ROW_SHIFT', `11UD')
define(`ROW_ADD', `0x400UD')
define(`COL_SHIFT', `20UD')
define(`COL_ADD', `0x80000UD')
mov (1) a0.0<1>UD 0x06F006E0UD {align1}; //0x06F006E0UD+0x00200020UD=0x07100700UD (g56.0 and g56.16)
//Y0
mov (1) g125.0<1>UD ip {align1};
jmpi IDCT_START;
add (8) g83.0<1>W g32.0<16,8,2>W 128UW {align1};
add (8) g84.0<1>W g33.0<16,8,2>W 128UW {align1};
add (8) g85.0<1>W g34.0<16,8,2>W 128UW {align1};
add (8) g86.0<1>W g35.0<16,8,2>W 128UW {align1};
add (8) g87.0<1>W g36.0<16,8,2>W 128UW {align1};
add (8) g88.0<1>W g37.0<16,8,2>W 128UW {align1};
add (8) g89.0<1>W g38.0<16,8,2>W 128UW {align1};
add (8) g90.0<1>W g39.0<16,8,2>W 128UW {align1};
//Y1
mov (1) g125.0<1>UD ip {align1};
jmpi IDCT_START;
add (8) g83.16<1>W g32.0<16,8,2>W 128UW {align1};
add (8) g84.16<1>W g33.0<16,8,2>W 128UW {align1};
add (8) g85.16<1>W g34.0<16,8,2>W 128UW {align1};
add (8) g86.16<1>W g35.0<16,8,2>W 128UW {align1};
add (8) g87.16<1>W g36.0<16,8,2>W 128UW {align1};
add (8) g88.16<1>W g37.0<16,8,2>W 128UW {align1};
add (8) g89.16<1>W g38.0<16,8,2>W 128UW {align1};
add (8) g90.16<1>W g39.0<16,8,2>W 128UW {align1};
//Y2
mov (1) g125.0<1>UD ip {align1};
jmpi IDCT_START;
add (8) g91.0<1>W g32.0<16,8,2>W 128UW {align1};
add (8) g92.0<1>W g33.0<16,8,2>W 128UW {align1};
add (8) g93.0<1>W g34.0<16,8,2>W 128UW {align1};
add (8) g94.0<1>W g35.0<16,8,2>W 128UW {align1};
add (8) g95.0<1>W g36.0<16,8,2>W 128UW {align1};
add (8) g96.0<1>W g37.0<16,8,2>W 128UW {align1};
add (8) g97.0<1>W g38.0<16,8,2>W 128UW {align1};
add (8) g98.0<1>W g39.0<16,8,2>W 128UW {align1};
//Y3
mov (1) g125.0<1>UD ip {align1};
jmpi IDCT_START;
add (8) g91.16<1>W g32.0<16,8,2>W 128UW {align1};
add (8) g92.16<1>W g33.0<16,8,2>W 128UW {align1};
add (8) g93.16<1>W g34.0<16,8,2>W 128UW {align1};
add (8) g94.16<1>W g35.0<16,8,2>W 128UW {align1};
add (8) g95.16<1>W g36.0<16,8,2>W 128UW {align1};
add (8) g96.16<1>W g37.0<16,8,2>W 128UW {align1};
add (8) g97.16<1>W g38.0<16,8,2>W 128UW {align1};
add (8) g98.16<1>W g39.0<16,8,2>W 128UW {align1};
//U
mov (1) g125.0<1>UD ip {align1};
jmpi IDCT_START;
add (16) g99.0<1>W g32.0<16,8,2>W 128UW {align1};
add (16) g100.0<1>W g34.0<16,8,2>W 128UW {align1};
add (16) g101.0<1>W g36.0<16,8,2>W 128UW {align1};
add (16) g102.0<1>W g38.0<16,8,2>W 128UW {align1};
//V
mov (1) g125.0<1>UD ip {align1};
jmpi IDCT_START;
add (16) g103.0<1>W g32.0<16,8,2>W 128UW {align1};
add (16) g104.0<1>W g34.0<16,8,2>W 128UW {align1};
add (16) g105.0<1>W g36.0<16,8,2>W 128UW {align1};
add (16) g106.0<1>W g38.0<16,8,2>W 128UW {align1};
/******************* MC ************************/
mov (1) g31.8<1>UD 0x00F000FUD {align1};
mov.sat (16) g83.0<2>UB g83.0<16,16,1>W {align1};
mov.sat (16) g84.0<2>UB g84.0<16,16,1>W {align1};
mov.sat (16) g85.0<2>UB g85.0<16,16,1>W {align1};
mov.sat (16) g86.0<2>UB g86.0<16,16,1>W {align1};
mov.sat (16) g87.0<2>UB g87.0<16,16,1>W {align1};
mov.sat (16) g88.0<2>UB g88.0<16,16,1>W {align1};
mov.sat (16) g89.0<2>UB g89.0<16,16,1>W {align1};
mov.sat (16) g90.0<2>UB g90.0<16,16,1>W {align1};
mov.sat (16) g91.0<2>UB g91.0<16,16,1>W {align1};
mov.sat (16) g92.0<2>UB g92.0<16,16,1>W {align1};
mov.sat (16) g93.0<2>UB g93.0<16,16,1>W {align1};
mov.sat (16) g94.0<2>UB g94.0<16,16,1>W {align1};
mov.sat (16) g95.0<2>UB g95.0<16,16,1>W {align1};
mov.sat (16) g96.0<2>UB g96.0<16,16,1>W {align1};
mov.sat (16) g97.0<2>UB g97.0<16,16,1>W {align1};
mov.sat (16) g98.0<2>UB g98.0<16,16,1>W {align1};
and.nz (1) null g82.2<1,1,1>UW 0x20UW{align1};
(f0) jmpi field_dct;
mov (16) m1.0<1>UB g83.0<16,16,2>UB {align1};
mov (16) m1.16<1>UB g84.0<16,16,2>UB {align1};
mov (16) m2.0<1>UB g85.0<16,16,2>UB {align1};
mov (16) m2.16<1>UB g86.0<16,16,2>UB {align1};
mov (16) m3.0<1>UB g87.0<16,16,2>UB {align1};
mov (16) m3.16<1>UB g88.0<16,16,2>UB {align1};
mov (16) m4.0<1>UB g89.0<16,16,2>UB {align1};
mov (16) m4.16<1>UB g90.0<16,16,2>UB {align1};
mov (16) m5.0<1>UB g91.0<16,16,2>UB {align1};
mov (16) m5.16<1>UB g92.0<16,16,2>UB {align1};
mov (16) m6.0<1>UB g93.0<16,16,2>UB {align1};
mov (16) m6.16<1>UB g94.0<16,16,2>UB {align1};
mov (16) m7.0<1>UB g95.0<16,16,2>UB {align1};
mov (16) m7.16<1>UB g96.0<16,16,2>UB {align1};
mov (16) m8.0<1>UB g97.0<16,16,2>UB {align1};
mov (16) m8.16<1>UB g98.0<16,16,2>UB {align1};
jmpi write_back;
field_dct:
mov (16) m1.0<1>UB g83.0<16,16,2>UB {align1};
mov (16) m1.16<1>UB g91.0<16,16,2>UB {align1};
mov (16) m2.0<1>UB g84.0<16,16,2>UB {align1};
mov (16) m2.16<1>UB g92.0<16,16,2>UB {align1};
mov (16) m3.0<1>UB g85.0<16,16,2>UB {align1};
mov (16) m3.16<1>UB g93.0<16,16,2>UB {align1};
mov (16) m4.0<1>UB g86.0<16,16,2>UB {align1};
mov (16) m4.16<1>UB g94.0<16,16,2>UB {align1};
mov (16) m5.0<1>UB g87.0<16,16,2>UB {align1};
mov (16) m5.16<1>UB g95.0<16,16,2>UB {align1};
mov (16) m6.0<1>UB g88.0<16,16,2>UB {align1};
mov (16) m6.16<1>UB g96.0<16,16,2>UB {align1};
mov (16) m7.0<1>UB g89.0<16,16,2>UB {align1};
mov (16) m7.16<1>UB g97.0<16,16,2>UB {align1};
mov (16) m8.0<1>UB g90.0<16,16,2>UB {align1};
mov (16) m8.16<1>UB g98.0<16,16,2>UB {align1};
write_back:
send (16) 0 acc0<1>UW g31<8,8,1>UW write(0,0,2,0) mlen 9 rlen 0 {align1};
//U
mov (1) g31.8<1>UD 0x0070007UD { align1 };
shr (2) g31.0<1>UD g82.12<2,2,1>UW 1D {align1};
mov.sat (16) g99.0<2>UB g99.0<16,16,1>W {align1};
mov.sat (16) g100.0<2>UB g100.0<16,16,1>W {align1};
mov.sat (16) g101.0<2>UB g101.0<16,16,1>W {align1};
mov.sat (16) g102.0<2>UB g102.0<16,16,1>W {align1};
mov (16) m1.0<1>UB g99.0<16,16,2>UB {align1};
mov (16) m1.16<1>UB g100.0<16,16,2>UB {align1};
mov (16) m2.0<1>UB g101.0<16,16,2>UB {align1};
mov (16) m2.16<1>UB g102.0<16,16,2>UB {align1};
send (16) 0 acc0<1>UW g31<8,8,1>UW write(1, 0, 2, 0) mlen 3 rlen 0 { align1 };
//V
mov.sat (16) g103.0<2>UB g103.0<16,16,1>W {align1};
mov.sat (16) g104.0<2>UB g104.0<16,16,1>W {align1};
mov.sat (16) g105.0<2>UB g105.0<16,16,1>W {align1};
mov.sat (16) g106.0<2>UB g106.0<16,16,1>W {align1};
mov (16) m1.0<1>UB g103.0<16,16,2>UB {align1};
mov (16) m1.16<1>UB g104.0<16,16,2>UB {align1};
mov (16) m2.0<1>UB g105.0<16,16,2>UB {align1};
mov (16) m2.16<1>UB g106.0<16,16,2>UB {align1};
send (16) 0 acc0<1>UW g31<8,8,1>UW write(2, 0, 2, 0) mlen 3 rlen 0 { align1 };
OUT:
send (16) 0 acc0<1>UW g0<8,8,1>UW
thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
include(`do_iq_intra.g4i')
include(`idct.g4i')

View File

@ -0,0 +1,313 @@
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 },
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 },
{ 0x00000005, 0x2da02d29, 0x00210a48, 0x001f001f },
{ 0x00000005, 0x2da42d29, 0x00210a48, 0x60006000 },
{ 0x00000008, 0x2da42d29, 0x00210da4, 0x000d000d },
{ 0x00000001, 0x2da60169, 0x00000000, 0x00080008 },
{ 0x00000008, 0x2da42529, 0x00210da6, 0x00210da4 },
{ 0x01000005, 0x20002d3c, 0x00210a48, 0x00200020 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000012 },
{ 0x05000010, 0x20002d3c, 0x00210da0, 0x00090009 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
{ 0x05000010, 0x20002d3c, 0x00210da0, 0x00110011 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000006 },
{ 0x05000010, 0x20002d3c, 0x00210da0, 0x00190019 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
{ 0x00000040, 0x2da03d29, 0x00210da0, 0xffe7ffe7 },
{ 0x00000009, 0x2da02d29, 0x00210da0, 0x00030003 },
{ 0x00000040, 0x2da02d29, 0x00210da0, 0x00400040 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000009 },
{ 0x00000040, 0x2da03d29, 0x00210da0, 0xfff7fff7 },
{ 0x00000009, 0x2da02d29, 0x00210da0, 0x00010001 },
{ 0x00000040, 0x2da02d29, 0x00210da0, 0x000a000a },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000005 },
{ 0x00000040, 0x2da03d29, 0x00210da0, 0xffefffef },
{ 0x00000009, 0x2da02d29, 0x00210da0, 0x00020002 },
{ 0x00000040, 0x2da02d29, 0x00210da0, 0x001c001c },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000001 },
{ 0x00000009, 0x2da00d29, 0x00210da0, 0x00000001 },
{ 0x00000001, 0x2dc00129, 0x00210da0, 0x00000000 },
{ 0x00800001, 0x2e000229, 0x00b10020, 0x00000000 },
{ 0x00800001, 0x2e200229, 0x00b10030, 0x00000000 },
{ 0x00800001, 0x2e400229, 0x00b10040, 0x00000000 },
{ 0x00800001, 0x2e600229, 0x00b10050, 0x00000000 },
{ 0x00000001, 0x22000060, 0x00000000, 0x03f003e0 },
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x000000a1 },
{ 0x00800001, 0x270001ad, 0x00ae0e80, 0x00000000 },
{ 0x00800001, 0x272001ad, 0x00ae0ec0, 0x00000000 },
{ 0x00800001, 0x274001ad, 0x00ae0f00, 0x00000000 },
{ 0x00800001, 0x276001ad, 0x00ae0f40, 0x00000000 },
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000009b },
{ 0x00800001, 0x278001ad, 0x00ae0e80, 0x00000000 },
{ 0x00800001, 0x27a001ad, 0x00ae0ec0, 0x00000000 },
{ 0x00800001, 0x27c001ad, 0x00ae0f00, 0x00000000 },
{ 0x00800001, 0x27e001ad, 0x00ae0f40, 0x00000000 },
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000095 },
{ 0x00800001, 0x280001ad, 0x00ae0e80, 0x00000000 },
{ 0x00800001, 0x282001ad, 0x00ae0ec0, 0x00000000 },
{ 0x00800001, 0x284001ad, 0x00ae0f00, 0x00000000 },
{ 0x00800001, 0x286001ad, 0x00ae0f40, 0x00000000 },
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000008f },
{ 0x00800001, 0x288001ad, 0x00ae0e80, 0x00000000 },
{ 0x00800001, 0x28a001ad, 0x00ae0ec0, 0x00000000 },
{ 0x00800001, 0x28c001ad, 0x00ae0f00, 0x00000000 },
{ 0x00800001, 0x28e001ad, 0x00ae0f40, 0x00000000 },
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000089 },
{ 0x00800001, 0x290001ad, 0x00ae0e80, 0x00000000 },
{ 0x00800001, 0x292001ad, 0x00ae0ec0, 0x00000000 },
{ 0x00800001, 0x294001ad, 0x00ae0f00, 0x00000000 },
{ 0x00800001, 0x296001ad, 0x00ae0f40, 0x00000000 },
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000083 },
{ 0x00800001, 0x298001ad, 0x00ae0e80, 0x00000000 },
{ 0x00800001, 0x29a001ad, 0x00ae0ec0, 0x00000000 },
{ 0x00800001, 0x29c001ad, 0x00ae0f00, 0x00000000 },
{ 0x00800001, 0x29e001ad, 0x00ae0f40, 0x00000000 },
{ 0x00000001, 0x22000060, 0x00000000, 0x06f006e0 },
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000008f },
{ 0x00600040, 0x2a602dad, 0x00ae0400, 0x00800080 },
{ 0x00600040, 0x2a802dad, 0x00ae0420, 0x00800080 },
{ 0x00600040, 0x2aa02dad, 0x00ae0440, 0x00800080 },
{ 0x00600040, 0x2ac02dad, 0x00ae0460, 0x00800080 },
{ 0x00600040, 0x2ae02dad, 0x00ae0480, 0x00800080 },
{ 0x00600040, 0x2b002dad, 0x00ae04a0, 0x00800080 },
{ 0x00600040, 0x2b202dad, 0x00ae04c0, 0x00800080 },
{ 0x00600040, 0x2b402dad, 0x00ae04e0, 0x00800080 },
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000085 },
{ 0x00600040, 0x2a702dad, 0x00ae0400, 0x00800080 },
{ 0x00600040, 0x2a902dad, 0x00ae0420, 0x00800080 },
{ 0x00600040, 0x2ab02dad, 0x00ae0440, 0x00800080 },
{ 0x00600040, 0x2ad02dad, 0x00ae0460, 0x00800080 },
{ 0x00600040, 0x2af02dad, 0x00ae0480, 0x00800080 },
{ 0x00600040, 0x2b102dad, 0x00ae04a0, 0x00800080 },
{ 0x00600040, 0x2b302dad, 0x00ae04c0, 0x00800080 },
{ 0x00600040, 0x2b502dad, 0x00ae04e0, 0x00800080 },
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000007b },
{ 0x00600040, 0x2b602dad, 0x00ae0400, 0x00800080 },
{ 0x00600040, 0x2b802dad, 0x00ae0420, 0x00800080 },
{ 0x00600040, 0x2ba02dad, 0x00ae0440, 0x00800080 },
{ 0x00600040, 0x2bc02dad, 0x00ae0460, 0x00800080 },
{ 0x00600040, 0x2be02dad, 0x00ae0480, 0x00800080 },
{ 0x00600040, 0x2c002dad, 0x00ae04a0, 0x00800080 },
{ 0x00600040, 0x2c202dad, 0x00ae04c0, 0x00800080 },
{ 0x00600040, 0x2c402dad, 0x00ae04e0, 0x00800080 },
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000071 },
{ 0x00600040, 0x2b702dad, 0x00ae0400, 0x00800080 },
{ 0x00600040, 0x2b902dad, 0x00ae0420, 0x00800080 },
{ 0x00600040, 0x2bb02dad, 0x00ae0440, 0x00800080 },
{ 0x00600040, 0x2bd02dad, 0x00ae0460, 0x00800080 },
{ 0x00600040, 0x2bf02dad, 0x00ae0480, 0x00800080 },
{ 0x00600040, 0x2c102dad, 0x00ae04a0, 0x00800080 },
{ 0x00600040, 0x2c302dad, 0x00ae04c0, 0x00800080 },
{ 0x00600040, 0x2c502dad, 0x00ae04e0, 0x00800080 },
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000067 },
{ 0x00800040, 0x2c602dad, 0x00ae0400, 0x00800080 },
{ 0x00800040, 0x2c802dad, 0x00ae0440, 0x00800080 },
{ 0x00800040, 0x2ca02dad, 0x00ae0480, 0x00800080 },
{ 0x00800040, 0x2cc02dad, 0x00ae04c0, 0x00800080 },
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000061 },
{ 0x00800040, 0x2ce02dad, 0x00ae0400, 0x00800080 },
{ 0x00800040, 0x2d002dad, 0x00ae0440, 0x00800080 },
{ 0x00800040, 0x2d202dad, 0x00ae0480, 0x00800080 },
{ 0x00800040, 0x2d402dad, 0x00ae04c0, 0x00800080 },
{ 0x00000001, 0x23e80061, 0x00000000, 0x000f000f },
{ 0x80800001, 0x4a6001b1, 0x00b10a60, 0x00000000 },
{ 0x80800001, 0x4a8001b1, 0x00b10a80, 0x00000000 },
{ 0x80800001, 0x4aa001b1, 0x00b10aa0, 0x00000000 },
{ 0x80800001, 0x4ac001b1, 0x00b10ac0, 0x00000000 },
{ 0x80800001, 0x4ae001b1, 0x00b10ae0, 0x00000000 },
{ 0x80800001, 0x4b0001b1, 0x00b10b00, 0x00000000 },
{ 0x80800001, 0x4b2001b1, 0x00b10b20, 0x00000000 },
{ 0x80800001, 0x4b4001b1, 0x00b10b40, 0x00000000 },
{ 0x80800001, 0x4b6001b1, 0x00b10b60, 0x00000000 },
{ 0x80800001, 0x4b8001b1, 0x00b10b80, 0x00000000 },
{ 0x80800001, 0x4ba001b1, 0x00b10ba0, 0x00000000 },
{ 0x80800001, 0x4bc001b1, 0x00b10bc0, 0x00000000 },
{ 0x80800001, 0x4be001b1, 0x00b10be0, 0x00000000 },
{ 0x80800001, 0x4c0001b1, 0x00b10c00, 0x00000000 },
{ 0x80800001, 0x4c2001b1, 0x00b10c20, 0x00000000 },
{ 0x80800001, 0x4c4001b1, 0x00b10c40, 0x00000000 },
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
{ 0x00800001, 0x20200232, 0x00b20a60, 0x00000000 },
{ 0x00800001, 0x20300232, 0x00b20a80, 0x00000000 },
{ 0x00800001, 0x20400232, 0x00b20aa0, 0x00000000 },
{ 0x00800001, 0x20500232, 0x00b20ac0, 0x00000000 },
{ 0x00800001, 0x20600232, 0x00b20ae0, 0x00000000 },
{ 0x00800001, 0x20700232, 0x00b20b00, 0x00000000 },
{ 0x00800001, 0x20800232, 0x00b20b20, 0x00000000 },
{ 0x00800001, 0x20900232, 0x00b20b40, 0x00000000 },
{ 0x00800001, 0x20a00232, 0x00b20b60, 0x00000000 },
{ 0x00800001, 0x20b00232, 0x00b20b80, 0x00000000 },
{ 0x00800001, 0x20c00232, 0x00b20ba0, 0x00000000 },
{ 0x00800001, 0x20d00232, 0x00b20bc0, 0x00000000 },
{ 0x00800001, 0x20e00232, 0x00b20be0, 0x00000000 },
{ 0x00800001, 0x20f00232, 0x00b20c00, 0x00000000 },
{ 0x00800001, 0x21000232, 0x00b20c20, 0x00000000 },
{ 0x00800001, 0x21100232, 0x00b20c40, 0x00000000 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
{ 0x00800001, 0x20200232, 0x00b20a60, 0x00000000 },
{ 0x00800001, 0x20300232, 0x00b20b60, 0x00000000 },
{ 0x00800001, 0x20400232, 0x00b20a80, 0x00000000 },
{ 0x00800001, 0x20500232, 0x00b20b80, 0x00000000 },
{ 0x00800001, 0x20600232, 0x00b20aa0, 0x00000000 },
{ 0x00800001, 0x20700232, 0x00b20ba0, 0x00000000 },
{ 0x00800001, 0x20800232, 0x00b20ac0, 0x00000000 },
{ 0x00800001, 0x20900232, 0x00b20bc0, 0x00000000 },
{ 0x00800001, 0x20a00232, 0x00b20ae0, 0x00000000 },
{ 0x00800001, 0x20b00232, 0x00b20be0, 0x00000000 },
{ 0x00800001, 0x20c00232, 0x00b20b00, 0x00000000 },
{ 0x00800001, 0x20d00232, 0x00b20c00, 0x00000000 },
{ 0x00800001, 0x20e00232, 0x00b20b20, 0x00000000 },
{ 0x00800001, 0x20f00232, 0x00b20c20, 0x00000000 },
{ 0x00800001, 0x21000232, 0x00b20b40, 0x00000000 },
{ 0x00800001, 0x21100232, 0x00b20c40, 0x00000000 },
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 },
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 },
{ 0x00200008, 0x23e01d21, 0x00450a4c, 0x00000001 },
{ 0x80800001, 0x4c6001b1, 0x00b10c60, 0x00000000 },
{ 0x80800001, 0x4c8001b1, 0x00b10c80, 0x00000000 },
{ 0x80800001, 0x4ca001b1, 0x00b10ca0, 0x00000000 },
{ 0x80800001, 0x4cc001b1, 0x00b10cc0, 0x00000000 },
{ 0x00800001, 0x20200232, 0x00b20c60, 0x00000000 },
{ 0x00800001, 0x20300232, 0x00b20c80, 0x00000000 },
{ 0x00800001, 0x20400232, 0x00b20ca0, 0x00000000 },
{ 0x00800001, 0x20500232, 0x00b20cc0, 0x00000000 },
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 },
{ 0x80800001, 0x4ce001b1, 0x00b10ce0, 0x00000000 },
{ 0x80800001, 0x4d0001b1, 0x00b10d00, 0x00000000 },
{ 0x80800001, 0x4d2001b1, 0x00b10d20, 0x00000000 },
{ 0x80800001, 0x4d4001b1, 0x00b10d40, 0x00000000 },
{ 0x00800001, 0x20200232, 0x00b20ce0, 0x00000000 },
{ 0x00800001, 0x20300232, 0x00b20d00, 0x00000000 },
{ 0x00800001, 0x20400232, 0x00b20d20, 0x00000000 },
{ 0x00800001, 0x20500232, 0x00b20d40, 0x00000000 },
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 },
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
{ 0x00000001, 0x2de001ad, 0x00218000, 0x00000000 },
{ 0x00802041, 0x2e8025a5, 0x008d8000, 0x008d0e00 },
{ 0x00802041, 0x2e8024a5, 0x008d0e80, 0x008c0da0 },
{ 0x0080200c, 0x2e802ca5, 0x008d0e80, 0x00040004 },
{ 0x00000041, 0x2e8025a5, 0x00210de0, 0x00210da4 },
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
{ 0x00802041, 0x2ec025a5, 0x008d8000, 0x008d0e20 },
{ 0x00802041, 0x2ec024a5, 0x008d0ec0, 0x008c0da0 },
{ 0x0080200c, 0x2ec02ca5, 0x008d0ec0, 0x00040004 },
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
{ 0x00802041, 0x2f0025a5, 0x008d8000, 0x008d0e40 },
{ 0x00802041, 0x2f0024a5, 0x008d0f00, 0x008c0da0 },
{ 0x0080200c, 0x2f002ca5, 0x008d0f00, 0x00040004 },
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
{ 0x00802041, 0x2f4025a5, 0x008d8000, 0x008d0e60 },
{ 0x00802041, 0x2f4024a5, 0x008d0f40, 0x008c0da0 },
{ 0x0080200c, 0x2f402ca5, 0x008d0f40, 0x00040004 },
{ 0x00000040, 0x34000c20, 0x00210fa0, 0x00000020 },
{ 0x00000001, 0x2fc00001, 0x00001400, 0x00000000 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
{ 0x00802040, 0x24000ca5, 0x008d0400, 0x00000400 },
{ 0x00802040, 0x24400ca5, 0x008d0440, 0x00000400 },
{ 0x00802040, 0x24800ca5, 0x008d0480, 0x00000400 },
{ 0x00802040, 0x24c00ca5, 0x008d04c0, 0x00000400 },
{ 0x00802008, 0x24000ca5, 0x008d0400, 0x0000000b },
{ 0x00802008, 0x24400ca5, 0x008d0440, 0x0000000b },
{ 0x00802008, 0x24800ca5, 0x008d0480, 0x0000000b },
{ 0x00802008, 0x24c00ca5, 0x008d04c0, 0x0000000b },
{ 0x00800001, 0x2dc001ad, 0x00ae0400, 0x00000000 },
{ 0x00800001, 0x2de001ad, 0x00ae0440, 0x00000000 },
{ 0x00800001, 0x2e0001ad, 0x00ae0480, 0x00000000 },
{ 0x00800001, 0x2e2001ad, 0x00ae04c0, 0x00000000 },
{ 0x00000001, 0x2a000001, 0x00210200, 0x00000000 },
{ 0x00000001, 0x22000060, 0x00000000, 0x0db00da0 },
{ 0x00000001, 0x2fc00001, 0x00001400, 0x00000000 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000000a },
{ 0x00802040, 0x24000ca5, 0x008d0400, 0x00080000 },
{ 0x00802040, 0x24400ca5, 0x008d0440, 0x00080000 },
{ 0x00802040, 0x24800ca5, 0x008d0480, 0x00080000 },
{ 0x00802040, 0x24c00ca5, 0x008d04c0, 0x00080000 },
{ 0x00802008, 0x24000ca5, 0x008d0400, 0x00000014 },
{ 0x00802008, 0x24400ca5, 0x008d0440, 0x00000014 },
{ 0x00802008, 0x24800ca5, 0x008d0480, 0x00000014 },
{ 0x00802008, 0x24c00ca5, 0x008d04c0, 0x00000014 },
{ 0x00000001, 0x22000020, 0x00210a00, 0x00000000 },
{ 0x00000040, 0x34000c20, 0x00210fa0, 0x00000020 },
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 },
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 },
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 },
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 },
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 },
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 },
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 },
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 },
{ 0x00200040, 0x240014a5, 0x00800500, 0x00800510 },
{ 0x00200040, 0x242014a5, 0x00800540, 0x00800550 },
{ 0x00200040, 0x244014a5, 0x00800580, 0x00800590 },
{ 0x00200040, 0x246014a5, 0x008005c0, 0x008005d0 },
{ 0x00200040, 0x248014a5, 0x00800600, 0x00800610 },
{ 0x00200040, 0x24a014a5, 0x00800640, 0x00800650 },
{ 0x00200040, 0x24c014a5, 0x00800680, 0x00800690 },
{ 0x00200040, 0x24e014a5, 0x008006c0, 0x008006d0 },
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 },
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 },
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 },
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 },
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 },
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 },
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 },
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 },
{ 0x00200040, 0x240814a5, 0x00800500, 0x00800510 },
{ 0x00200040, 0x242814a5, 0x00800540, 0x00800550 },
{ 0x00200040, 0x244814a5, 0x00800580, 0x00800590 },
{ 0x00200040, 0x246814a5, 0x008005c0, 0x008005d0 },
{ 0x00200040, 0x248814a5, 0x00800600, 0x00800610 },
{ 0x00200040, 0x24a814a5, 0x00800640, 0x00800650 },
{ 0x00200040, 0x24c814a5, 0x00800680, 0x00800690 },
{ 0x00200040, 0x24e814a5, 0x008006c0, 0x008006d0 },
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 },
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 },
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 },
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 },
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 },
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 },
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 },
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 },
{ 0x00200040, 0x241014a5, 0x00800500, 0x00800510 },
{ 0x00200040, 0x243014a5, 0x00800540, 0x00800550 },
{ 0x00200040, 0x245014a5, 0x00800580, 0x00800590 },
{ 0x00200040, 0x247014a5, 0x008005c0, 0x008005d0 },
{ 0x00200040, 0x249014a5, 0x00800600, 0x00800610 },
{ 0x00200040, 0x24b014a5, 0x00800640, 0x00800650 },
{ 0x00200040, 0x24d014a5, 0x00800680, 0x00800690 },
{ 0x00200040, 0x24f014a5, 0x008006c0, 0x008006d0 },
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 },
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 },
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 },
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 },
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 },
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 },
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 },
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 },
{ 0x00200040, 0x241814a5, 0x00800500, 0x00800510 },
{ 0x00200040, 0x243814a5, 0x00800540, 0x00800550 },
{ 0x00200040, 0x245814a5, 0x00800580, 0x00800590 },
{ 0x00200040, 0x247814a5, 0x008005c0, 0x008005d0 },
{ 0x00200040, 0x249814a5, 0x00800600, 0x00800610 },
{ 0x00200040, 0x24b814a5, 0x00800640, 0x00800650 },
{ 0x00200040, 0x24d814a5, 0x00800680, 0x00800690 },
{ 0x00200040, 0x24f814a5, 0x008006c0, 0x008006d0 },
{ 0x00000040, 0x34000c20, 0x00210fc0, 0x00000020 },

View File

@ -0,0 +1,131 @@
/*
* Copyright © 2009 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Author:
* Zou Nan hai <nanhai.zou@intel.com>
* Yan Li <li.l.yan@intel.com>
* Liu Xi bin<xibin.liu@intel.com>
*/
/* GRF allocation:
g1~g30: constant buffer
g1~g2:intra IQ matrix in UB format
g3~g4:non intra IQ matrix in UB format
g5~g20:IDCT table
g32~g55:DCT data before IQ
g56~g79:DCT data after IQ
g82: thread payload backup
g109: g109.0:q_scale_code, g109.4:intra_dc_mult,
g110: q_scale_code
g111: intra DC coefficient
g112~g115: intra IQ matrix in UW format (in order to use instruction compress), copys from g1~g2
g125: ip before jump
*/
and (1) g109.0<1>UW g82.8<1,1,1>UW 0x1fUW {align1}; //q_scale_code
and (1) g109.4<1>UW g82.8<1,1,1>UW 0x6000UW {align1}; //intra_dc_presion
shr (1) g109.4<1>UW g109.4<1,1,1>UW 13UW {align1};
mov (1) g109.6<1>UW 0x8UW {align1};
shr (1) g109.4<1>UW g109.6<1,1,1>UW g109.4<1,1,1>UW {align1}; //intra_dc_mult
and.z (1) null g82.8<1,1,1>UW 0x20UW {align1}; //if(q_scale_type==0) q_scale=q_scale_code*2;
(f0) jmpi Q_SCALE_TYPE_0;
cmp.l (1) null g109.0<1,1,1>UW 9UW {align1}; //if(q_scale_type!=0) calculate q_scale
(f0) jmpi DO_IQ;
cmp.l (1) null g109.0<1,1,1>UW 17UW {align1};
(f0) jmpi RANG_9_16;
cmp.l (1) null g109.0<1,1,1>UW 25UW {align1};
(f0) jmpi RANG_17_24;
RANG_25_31:
add (1) g109.0<1>UW g109.0<1,1,1>UW -25W {align1};
shl (1) g109.0<1>UW g109.0<1,1,1>UW 3UW {align1};
add (1) g109.0<1>UW g109.0<1,1,1>UW 64UW {align1};
jmpi DO_IQ;
RANG_9_16:
add (1) g109.0<1>UW g109.0<1,1,1>UW -9W {align1};
shl (1) g109.0<1>UW g109.0<1,1,1>UW 1UW {align1};
add (1) g109.0<1>UW g109.0<1,1,1>UW 10UW {align1};
jmpi DO_IQ;
RANG_17_24:
add (1) g109.0<1>UW g109.0<1,1,1>UW -17W {align1};
shl (1) g109.0<1>UW g109.0<1,1,1>UW 2UW {align1};
add (1) g109.0<1>UW g109.0<1,1,1>UW 28UW {align1};
jmpi DO_IQ;
Q_SCALE_TYPE_0:
shl (1) g109.0<1>UW g109.0<1,1,1>UW 1UD {align1};
DO_IQ:
mov (1) g110.0<1>UW g109.0<1,1,1>UW {align1};
mov (16) g112.0<1>UW g1.0<16,16,1>UB {align1};
mov (16) g113.0<1>UW g1.16<16,16,1>UB {align1};
mov (16) g114.0<1>UW g2.0<16,16,1>UB {align1};
mov (16) g115.0<1>UW g2.16<16,16,1>UB {align1};
mov (1) a0.0<1>UD 0x03F003E0UD {align1};
mov (1) g125.0<1>UD ip {align1};
jmpi DO_IQ_INTRA;
mov (16) g56.0<1>W g116.0<16,8,2>W {align1};
mov (16) g57.0<1>W g118.0<16,8,2>W {align1};
mov (16) g58.0<1>W g120.0<16,8,2>W {align1};
mov (16) g59.0<1>W g122.0<16,8,2>W {align1};
mov (1) g125.0<1>UD ip {align1};
jmpi DO_IQ_INTRA;
mov (16) g60.0<1>W g116.0<16,8,2>W {align1};
mov (16) g61.0<1>W g118.0<16,8,2>W {align1};
mov (16) g62.0<1>W g120.0<16,8,2>W {align1};
mov (16) g63.0<1>W g122.0<16,8,2>W {align1};
mov (1) g125.0<1>UD ip {align1};
jmpi DO_IQ_INTRA;
mov (16) g64.0<1>W g116.0<16,8,2>W {align1};
mov (16) g65.0<1>W g118.0<16,8,2>W {align1};
mov (16) g66.0<1>W g120.0<16,8,2>W {align1};
mov (16) g67.0<1>W g122.0<16,8,2>W {align1};
mov (1) g125.0<1>UD ip {align1};
jmpi DO_IQ_INTRA;
mov (16) g68.0<1>W g116.0<16,8,2>W {align1};
mov (16) g69.0<1>W g118.0<16,8,2>W {align1};
mov (16) g70.0<1>W g120.0<16,8,2>W {align1};
mov (16) g71.0<1>W g122.0<16,8,2>W {align1};
mov (1) g125.0<1>UD ip {align1};
jmpi DO_IQ_INTRA;
mov (16) g72.0<1>W g116.0<16,8,2>W {align1};
mov (16) g73.0<1>W g118.0<16,8,2>W {align1};
mov (16) g74.0<1>W g120.0<16,8,2>W {align1};
mov (16) g75.0<1>W g122.0<16,8,2>W {align1};
mov (1) g125.0<1>UD ip {align1};
jmpi DO_IQ_INTRA;
mov (16) g76.0<1>W g116.0<16,8,2>W {align1};
mov (16) g77.0<1>W g118.0<16,8,2>W {align1};
mov (16) g78.0<1>W g120.0<16,8,2>W {align1};
mov (16) g79.0<1>W g122.0<16,8,2>W {align1};

View File

@ -0,0 +1,150 @@
/*
* Copyright © 2009 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Author:
* Zou Nan hai <nanhai.zou@intel.com>
* Yan Li <li.l.yan@intel.com>
* Liu Xi bin<xibin.liu@intel.com>
*/
/* GRF allocation:
g1~g30: constant buffer
g1~g2:intra IQ matrix in UB format
g3~g4:non intra IQ matrix in UB format
g5~g20:IDCT table
g32~g55:DCT data before IQ
g56~g79:DCT data after IQ
g82: thread payload backup
g109: q_scale_code
g110: q_scale_code
g112~g115: non intra IQ matrix in UW format (in order to use instruction compress), copys from g3~g4
g125: ip before jump
*/
and (1) g109.0<1>UW g82.8<1,1,1>UW 0x1fUW {align1}; //q_scale_code
and.z (1) null g82.8<1,1,1>UW 0x20UW {align1}; //if(q_scale_type==0) q_scale=q_scale_code*2;
(f0) jmpi Q_SCALE_TYPE_0;
cmp.l (1) null g109.0<1,1,1>UW 9UW {align1}; //if(q_scale_type!=0) calculate q_scale
(f0) jmpi DO_IQ;
cmp.l (1) null g109.0<1,1,1>UW 17UW {align1};
(f0) jmpi RANG_9_16;
cmp.l (1) null g109.0<1,1,1>UW 25UW {align1};
(f0) jmpi RANG_17_24;
RANG_25_31:
add (1) g109.0<1>UW g109.0<1,1,1>UW -25W {align1};
shl (1) g109.0<1>UW g109.0<1,1,1>UW 3UW {align1};
add (1) g109.0<1>UW g109.0<1,1,1>UW 64UW {align1};
jmpi DO_IQ;
RANG_9_16:
add (1) g109.0<1>UW g109.0<1,1,1>UW -9W {align1};
shl (1) g109.0<1>UW g109.0<1,1,1>UW 1UW {align1};
add (1) g109.0<1>UW g109.0<1,1,1>UW 10UW {align1};
jmpi DO_IQ;
RANG_17_24:
add (1) g109.0<1>UW g109.0<1,1,1>UW -17W {align1};
shl (1) g109.0<1>UW g109.0<1,1,1>UW 2UW {align1};
add (1) g109.0<1>UW g109.0<1,1,1>UW 28UW {align1};
jmpi DO_IQ;
Q_SCALE_TYPE_0:
shl (1) g109.0<1>UW g109.0<1,1,1>UW 1UD {align1};
DO_IQ:
mov (1) g110.0<1>UW g109.0<1,1,1>UW {align1};
mov (16) g112.0<1>UW g3.0<16,16,1>UB {align1};
mov (16) g113.0<1>UW g3.16<16,16,1>UB {align1};
mov (16) g114.0<1>UW g4.0<16,16,1>UB {align1};
mov (16) g115.0<1>UW g4.16<16,16,1>UB {align1};
mov (1) a0.0<1>UD 0x03F003E0UD {align1};
//Y0
iq_non_intra_y0:
and.z (1) null g82.8<1,1,1>UW 0x800UW {align1};
(f0) jmpi iq_non_intra_y1;
mov (1) g125.0<1>UD ip {align1};
jmpi DO_IQ_NON_INTRA;
mov (16) g56.0<1>W g116.0<16,8,2>W {align1};
mov (16) g57.0<1>W g118.0<16,8,2>W {align1};
mov (16) g58.0<1>W g120.0<16,8,2>W {align1};
mov (16) g59.0<1>W g122.0<16,8,2>W {align1};
//Y1
iq_non_intra_y1:
and.z (1) null g82.8<1,1,1>UW 0x400UW {align1};
(f0) jmpi iq_non_intra_y2;
mov (1) g125.0<1>UD ip {align1};
jmpi DO_IQ_NON_INTRA;
mov (16) g60.0<1>W g116.0<16,8,2>W {align1};
mov (16) g61.0<1>W g118.0<16,8,2>W {align1};
mov (16) g62.0<1>W g120.0<16,8,2>W {align1};
mov (16) g63.0<1>W g122.0<16,8,2>W {align1};
//Y2
iq_non_intra_y2:
and.z (1) null g82.8<1,1,1>UW 0x200UW {align1};
(f0) jmpi iq_non_intra_y3;
mov (1) g125.0<1>UD ip {align1};
jmpi DO_IQ_NON_INTRA;
mov (16) g64.0<1>W g116.0<16,8,2>W {align1};
mov (16) g65.0<1>W g118.0<16,8,2>W {align1};
mov (16) g66.0<1>W g120.0<16,8,2>W {align1};
mov (16) g67.0<1>W g122.0<16,8,2>W {align1};
//Y3
iq_non_intra_y3:
and.z (1) null g82.8<1,1,1>UW 0x100UW {align1};
(f0) jmpi iq_non_intra_u;
mov (1) g125.0<1>UD ip {align1};
jmpi DO_IQ_NON_INTRA;
mov (16) g68.0<1>W g116.0<16,8,2>W {align1};
mov (16) g69.0<1>W g118.0<16,8,2>W {align1};
mov (16) g70.0<1>W g120.0<16,8,2>W {align1};
mov (16) g71.0<1>W g122.0<16,8,2>W {align1};
//U
iq_non_intra_u:
and.z (1) null g82.8<1,1,1>UW 0x80UW {align1};
(f0) jmpi iq_non_intra_v;
mov (1) g125.0<1>UD ip {align1};
jmpi DO_IQ_NON_INTRA;
mov (16) g72.0<1>W g116.0<16,8,2>W {align1};
mov (16) g73.0<1>W g118.0<16,8,2>W {align1};
mov (16) g74.0<1>W g120.0<16,8,2>W {align1};
mov (16) g75.0<1>W g122.0<16,8,2>W {align1};
//V
iq_non_intra_v:
and.z (1) null g82.8<1,1,1>UW 0x40UW {align1};
(f0) jmpi iq_non_intra_end;
mov (1) g125.0<1>UD ip {align1};
jmpi DO_IQ_NON_INTRA;
mov (16) g76.0<1>W g116.0<16,8,2>W {align1};
mov (16) g77.0<1>W g118.0<16,8,2>W {align1};
mov (16) g78.0<1>W g120.0<16,8,2>W {align1};
mov (16) g79.0<1>W g122.0<16,8,2>W {align1};
iq_non_intra_end:

190
src/xvmc/shader/vld/lib.g4a Normal file
View File

@ -0,0 +1,190 @@
/*
* Copyright © 2009 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Author:
* Zou Nan hai <nanhai.zou@intel.com>
* Yan Li <li.l.yan@intel.com>
* Liu Xi bin<xibin.liu@intel.com>
*/
/* GRF allocation:
g1~g30: constant buffer
g1~g2:intra IQ matrix in UB format
g3~g4:non intra IQ matrix in UB format
g5~g20:IDCT table
g32~g55:DCT data before IQ
g56~g79:DCT data after IQ
g83~g106: IDCT data after idct
g82: thread payload backup
g125: ip before jump
*/
include(`iq_non_intra.g4i')
define(`ROW_SHIFT', `11UD') //define for idct
define(`ROW_ADD', `0x400UD')
define(`COL_SHIFT', `20UD')
define(`COL_ADD', `0x80000UD')
mov (1) a0.0<1>UD 0x06F006E0UD {align1};//0x06F006E0UD+0x00200020UD=0x07100700UD (g56.0 and g56.16,the start of DCT data)
//Y0
and.nz (1) null g82.8<1,1,1>UW 0x800UW {align1};
(f0) jmpi do_idct_y0;
mov (8) g83.0<1>UW 0UW {align1};
mov (8) g84.0<1>UW 0UW {align1};
mov (8) g85.0<1>UW 0UW {align1};
mov (8) g86.0<1>UW 0UW {align1};
mov (8) g87.0<1>UW 0UW {align1};
mov (8) g88.0<1>UW 0UW {align1};
mov (8) g89.0<1>UW 0UW {align1};
mov (8) g90.0<1>UW 0UW {align1};
add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00800080UD {align1};
jmpi block_y1;
do_idct_y0:
mov (1) g125.0<1>UD ip {align1};
jmpi IDCT_START;
mov (8) g83.0<1>W g32.0<16,8,2>W {align1};
mov (8) g84.0<1>W g33.0<16,8,2>W {align1};
mov (8) g85.0<1>W g34.0<16,8,2>W {align1};
mov (8) g86.0<1>W g35.0<16,8,2>W {align1};
mov (8) g87.0<1>W g36.0<16,8,2>W {align1};
mov (8) g88.0<1>W g37.0<16,8,2>W {align1};
mov (8) g89.0<1>W g38.0<16,8,2>W {align1};
mov (8) g90.0<1>W g39.0<16,8,2>W {align1};
//Y1
block_y1:
and.nz (1) null g82.8<1,1,1>UW 0x400UW {align1};
(f0) jmpi do_idct_y1;
mov (8) g83.16<1>UW 0UW {align1};
mov (8) g84.16<1>UW 0UW {align1};
mov (8) g85.16<1>UW 0UW {align1};
mov (8) g86.16<1>UW 0UW {align1};
mov (8) g87.16<1>UW 0UW {align1};
mov (8) g88.16<1>UW 0UW {align1};
mov (8) g89.16<1>UW 0UW {align1};
mov (8) g90.16<1>UW 0UW {align1};
add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00800080UD {align1};
jmpi block_y2;
do_idct_y1:
mov (1) g125.0<1>UD ip {align1};
jmpi IDCT_START;
mov (8) g83.16<1>W g32.0<16,8,2>W {align1};
mov (8) g84.16<1>W g33.0<16,8,2>W {align1};
mov (8) g85.16<1>W g34.0<16,8,2>W {align1};
mov (8) g86.16<1>W g35.0<16,8,2>W {align1};
mov (8) g87.16<1>W g36.0<16,8,2>W {align1};
mov (8) g88.16<1>W g37.0<16,8,2>W {align1};
mov (8) g89.16<1>W g38.0<16,8,2>W {align1};
mov (8) g90.16<1>W g39.0<16,8,2>W {align1};
//Y2
block_y2:
and.nz (1) null g82.8<1,1,1>UW 0x200UW {align1};
(f0) jmpi do_idct_y2;
mov (8) g91.0<1>UW 0UW {align1};
mov (8) g92.0<1>UW 0UW {align1};
mov (8) g93.0<1>UW 0UW {align1};
mov (8) g94.0<1>UW 0UW {align1};
mov (8) g95.0<1>UW 0UW {align1};
mov (8) g96.0<1>UW 0UW {align1};
mov (8) g97.0<1>UW 0UW {align1};
mov (8) g98.0<1>UW 0UW {align1};
add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00800080UD {align1};
jmpi block_y3;
do_idct_y2:
mov (1) g125.0<1>UD ip {align1};
jmpi IDCT_START;
mov (8) g91.0<1>W g32.0<16,8,2>W {align1};
mov (8) g92.0<1>W g33.0<16,8,2>W {align1};
mov (8) g93.0<1>W g34.0<16,8,2>W {align1};
mov (8) g94.0<1>W g35.0<16,8,2>W {align1};
mov (8) g95.0<1>W g36.0<16,8,2>W {align1};
mov (8) g96.0<1>W g37.0<16,8,2>W {align1};
mov (8) g97.0<1>W g38.0<16,8,2>W {align1};
mov (8) g98.0<1>W g39.0<16,8,2>W {align1};
//Y3
block_y3:
and.nz (1) null g82.8<1,1,1>UW 0x100UW {align1};
(f0) jmpi do_idct_y3;
mov (8) g91.16<1>UW 0UW {align1};
mov (8) g92.16<1>UW 0UW {align1};
mov (8) g93.16<1>UW 0UW {align1};
mov (8) g94.16<1>UW 0UW {align1};
mov (8) g95.16<1>UW 0UW {align1};
mov (8) g96.16<1>UW 0UW {align1};
mov (8) g97.16<1>UW 0UW {align1};
mov (8) g98.16<1>UW 0UW {align1};
add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00800080UD {align1};
jmpi block_u;
do_idct_y3:
mov (1) g125.0<1>UD ip {align1};
jmpi IDCT_START;
mov (8) g91.16<1>W g32.0<16,8,2>W {align1};
mov (8) g92.16<1>W g33.0<16,8,2>W {align1};
mov (8) g93.16<1>W g34.0<16,8,2>W {align1};
mov (8) g94.16<1>W g35.0<16,8,2>W {align1};
mov (8) g95.16<1>W g36.0<16,8,2>W {align1};
mov (8) g96.16<1>W g37.0<16,8,2>W {align1};
mov (8) g97.16<1>W g38.0<16,8,2>W {align1};
mov (8) g98.16<1>W g39.0<16,8,2>W {align1};
//U
block_u:
and.nz (1) null g82.8<1,1,1>UW 0x80UW {align1};
(f0) jmpi do_idct_u;
mov (16) g99.0<1>UW 0UW {align1};
mov (16) g100.0<1>UW 0UW {align1};
mov (16) g101.0<1>UW 0UW {align1};
mov (16) g102.0<1>UW 0UW {align1};
add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00800080UD {align1};
jmpi block_v;
do_idct_u:
mov (1) g125.0<1>UD ip {align1};
jmpi IDCT_START;
mov (16) g99.0<1>W g32.0<16,8,2>W {align1};
mov (16) g100.0<1>W g34.0<16,8,2>W {align1};
mov (16) g101.0<1>W g36.0<16,8,2>W {align1};
mov (16) g102.0<1>W g38.0<16,8,2>W {align1};
//V
block_v:
and.nz (1) null g82.8<1,1,1>UW 0x40UW {align1};
(f0) jmpi do_idct_v;
mov (16) g103.0<1>UW 0UW {align1};
mov (16) g104.0<1>UW 0UW {align1};
mov (16) g105.0<1>UW 0UW {align1};
mov (16) g106.0<1>UW 0UW {align1};
jmpi block_end;
do_idct_v:
mov (1) g125.0<1>UD ip {align1};
jmpi IDCT_START;
mov (16) g103.0<1>W g32.0<16,8,2>W {align1};
mov (16) g104.0<1>W g34.0<16,8,2>W {align1};
mov (16) g105.0<1>W g36.0<16,8,2>W {align1};
mov (16) g106.0<1>W g38.0<16,8,2>W {align1};
block_end:
add (1) ip g126.8<1,1,1>UD 0x20UD {align1}; //jump back
include(`do_iq_non_intra.g4i')
include(`idct.g4i')

307
src/xvmc/shader/vld/lib.g4b Normal file
View File

@ -0,0 +1,307 @@
{ 0x00000005, 0x2da02d29, 0x00210a48, 0x001f001f },
{ 0x01000005, 0x20002d3c, 0x00210a48, 0x00200020 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000012 },
{ 0x05000010, 0x20002d3c, 0x00210da0, 0x00090009 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
{ 0x05000010, 0x20002d3c, 0x00210da0, 0x00110011 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000006 },
{ 0x05000010, 0x20002d3c, 0x00210da0, 0x00190019 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
{ 0x00000040, 0x2da03d29, 0x00210da0, 0xffe7ffe7 },
{ 0x00000009, 0x2da02d29, 0x00210da0, 0x00030003 },
{ 0x00000040, 0x2da02d29, 0x00210da0, 0x00400040 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000009 },
{ 0x00000040, 0x2da03d29, 0x00210da0, 0xfff7fff7 },
{ 0x00000009, 0x2da02d29, 0x00210da0, 0x00010001 },
{ 0x00000040, 0x2da02d29, 0x00210da0, 0x000a000a },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000005 },
{ 0x00000040, 0x2da03d29, 0x00210da0, 0xffefffef },
{ 0x00000009, 0x2da02d29, 0x00210da0, 0x00020002 },
{ 0x00000040, 0x2da02d29, 0x00210da0, 0x001c001c },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000001 },
{ 0x00000009, 0x2da00d29, 0x00210da0, 0x00000001 },
{ 0x00000001, 0x2dc00129, 0x00210da0, 0x00000000 },
{ 0x00800001, 0x2e000229, 0x00b10060, 0x00000000 },
{ 0x00800001, 0x2e200229, 0x00b10070, 0x00000000 },
{ 0x00800001, 0x2e400229, 0x00b10080, 0x00000000 },
{ 0x00800001, 0x2e600229, 0x00b10090, 0x00000000 },
{ 0x00000001, 0x22000060, 0x00000000, 0x03f003e0 },
{ 0x01000005, 0x20002d3c, 0x00210a48, 0x08000800 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000006 },
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x000000a1 },
{ 0x00800001, 0x270001ad, 0x00ae0e80, 0x00000000 },
{ 0x00800001, 0x272001ad, 0x00ae0ec0, 0x00000000 },
{ 0x00800001, 0x274001ad, 0x00ae0f00, 0x00000000 },
{ 0x00800001, 0x276001ad, 0x00ae0f40, 0x00000000 },
{ 0x01000005, 0x20002d3c, 0x00210a48, 0x04000400 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000006 },
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000099 },
{ 0x00800001, 0x278001ad, 0x00ae0e80, 0x00000000 },
{ 0x00800001, 0x27a001ad, 0x00ae0ec0, 0x00000000 },
{ 0x00800001, 0x27c001ad, 0x00ae0f00, 0x00000000 },
{ 0x00800001, 0x27e001ad, 0x00ae0f40, 0x00000000 },
{ 0x01000005, 0x20002d3c, 0x00210a48, 0x02000200 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000006 },
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000091 },
{ 0x00800001, 0x280001ad, 0x00ae0e80, 0x00000000 },
{ 0x00800001, 0x282001ad, 0x00ae0ec0, 0x00000000 },
{ 0x00800001, 0x284001ad, 0x00ae0f00, 0x00000000 },
{ 0x00800001, 0x286001ad, 0x00ae0f40, 0x00000000 },
{ 0x01000005, 0x20002d3c, 0x00210a48, 0x01000100 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000006 },
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000089 },
{ 0x00800001, 0x288001ad, 0x00ae0e80, 0x00000000 },
{ 0x00800001, 0x28a001ad, 0x00ae0ec0, 0x00000000 },
{ 0x00800001, 0x28c001ad, 0x00ae0f00, 0x00000000 },
{ 0x00800001, 0x28e001ad, 0x00ae0f40, 0x00000000 },
{ 0x01000005, 0x20002d3c, 0x00210a48, 0x00800080 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000006 },
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000081 },
{ 0x00800001, 0x290001ad, 0x00ae0e80, 0x00000000 },
{ 0x00800001, 0x292001ad, 0x00ae0ec0, 0x00000000 },
{ 0x00800001, 0x294001ad, 0x00ae0f00, 0x00000000 },
{ 0x00800001, 0x296001ad, 0x00ae0f40, 0x00000000 },
{ 0x01000005, 0x20002d3c, 0x00210a48, 0x00400040 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000006 },
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000079 },
{ 0x00800001, 0x298001ad, 0x00ae0e80, 0x00000000 },
{ 0x00800001, 0x29a001ad, 0x00ae0ec0, 0x00000000 },
{ 0x00800001, 0x29c001ad, 0x00ae0f00, 0x00000000 },
{ 0x00800001, 0x29e001ad, 0x00ae0f40, 0x00000000 },
{ 0x00000001, 0x22000060, 0x00000000, 0x06f006e0 },
{ 0x02000005, 0x20002d3c, 0x00210a48, 0x08000800 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000000a },
{ 0x00600001, 0x2a600169, 0x00000000, 0x00000000 },
{ 0x00600001, 0x2a800169, 0x00000000, 0x00000000 },
{ 0x00600001, 0x2aa00169, 0x00000000, 0x00000000 },
{ 0x00600001, 0x2ac00169, 0x00000000, 0x00000000 },
{ 0x00600001, 0x2ae00169, 0x00000000, 0x00000000 },
{ 0x00600001, 0x2b000169, 0x00000000, 0x00000000 },
{ 0x00600001, 0x2b200169, 0x00000000, 0x00000000 },
{ 0x00600001, 0x2b400169, 0x00000000, 0x00000000 },
{ 0x00000040, 0x22000c00, 0x00210200, 0x00800080 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000000a },
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000077 },
{ 0x00600001, 0x2a6001ad, 0x00ae0400, 0x00000000 },
{ 0x00600001, 0x2a8001ad, 0x00ae0420, 0x00000000 },
{ 0x00600001, 0x2aa001ad, 0x00ae0440, 0x00000000 },
{ 0x00600001, 0x2ac001ad, 0x00ae0460, 0x00000000 },
{ 0x00600001, 0x2ae001ad, 0x00ae0480, 0x00000000 },
{ 0x00600001, 0x2b0001ad, 0x00ae04a0, 0x00000000 },
{ 0x00600001, 0x2b2001ad, 0x00ae04c0, 0x00000000 },
{ 0x00600001, 0x2b4001ad, 0x00ae04e0, 0x00000000 },
{ 0x02000005, 0x20002d3c, 0x00210a48, 0x04000400 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000000a },
{ 0x00600001, 0x2a700169, 0x00000000, 0x00000000 },
{ 0x00600001, 0x2a900169, 0x00000000, 0x00000000 },
{ 0x00600001, 0x2ab00169, 0x00000000, 0x00000000 },
{ 0x00600001, 0x2ad00169, 0x00000000, 0x00000000 },
{ 0x00600001, 0x2af00169, 0x00000000, 0x00000000 },
{ 0x00600001, 0x2b100169, 0x00000000, 0x00000000 },
{ 0x00600001, 0x2b300169, 0x00000000, 0x00000000 },
{ 0x00600001, 0x2b500169, 0x00000000, 0x00000000 },
{ 0x00000040, 0x22000c00, 0x00210200, 0x00800080 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000000a },
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000061 },
{ 0x00600001, 0x2a7001ad, 0x00ae0400, 0x00000000 },
{ 0x00600001, 0x2a9001ad, 0x00ae0420, 0x00000000 },
{ 0x00600001, 0x2ab001ad, 0x00ae0440, 0x00000000 },
{ 0x00600001, 0x2ad001ad, 0x00ae0460, 0x00000000 },
{ 0x00600001, 0x2af001ad, 0x00ae0480, 0x00000000 },
{ 0x00600001, 0x2b1001ad, 0x00ae04a0, 0x00000000 },
{ 0x00600001, 0x2b3001ad, 0x00ae04c0, 0x00000000 },
{ 0x00600001, 0x2b5001ad, 0x00ae04e0, 0x00000000 },
{ 0x02000005, 0x20002d3c, 0x00210a48, 0x02000200 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000000a },
{ 0x00600001, 0x2b600169, 0x00000000, 0x00000000 },
{ 0x00600001, 0x2b800169, 0x00000000, 0x00000000 },
{ 0x00600001, 0x2ba00169, 0x00000000, 0x00000000 },
{ 0x00600001, 0x2bc00169, 0x00000000, 0x00000000 },
{ 0x00600001, 0x2be00169, 0x00000000, 0x00000000 },
{ 0x00600001, 0x2c000169, 0x00000000, 0x00000000 },
{ 0x00600001, 0x2c200169, 0x00000000, 0x00000000 },
{ 0x00600001, 0x2c400169, 0x00000000, 0x00000000 },
{ 0x00000040, 0x22000c00, 0x00210200, 0x00800080 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000000a },
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000004b },
{ 0x00600001, 0x2b6001ad, 0x00ae0400, 0x00000000 },
{ 0x00600001, 0x2b8001ad, 0x00ae0420, 0x00000000 },
{ 0x00600001, 0x2ba001ad, 0x00ae0440, 0x00000000 },
{ 0x00600001, 0x2bc001ad, 0x00ae0460, 0x00000000 },
{ 0x00600001, 0x2be001ad, 0x00ae0480, 0x00000000 },
{ 0x00600001, 0x2c0001ad, 0x00ae04a0, 0x00000000 },
{ 0x00600001, 0x2c2001ad, 0x00ae04c0, 0x00000000 },
{ 0x00600001, 0x2c4001ad, 0x00ae04e0, 0x00000000 },
{ 0x02000005, 0x20002d3c, 0x00210a48, 0x01000100 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000000a },
{ 0x00600001, 0x2b700169, 0x00000000, 0x00000000 },
{ 0x00600001, 0x2b900169, 0x00000000, 0x00000000 },
{ 0x00600001, 0x2bb00169, 0x00000000, 0x00000000 },
{ 0x00600001, 0x2bd00169, 0x00000000, 0x00000000 },
{ 0x00600001, 0x2bf00169, 0x00000000, 0x00000000 },
{ 0x00600001, 0x2c100169, 0x00000000, 0x00000000 },
{ 0x00600001, 0x2c300169, 0x00000000, 0x00000000 },
{ 0x00600001, 0x2c500169, 0x00000000, 0x00000000 },
{ 0x00000040, 0x22000c00, 0x00210200, 0x00800080 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000000a },
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000035 },
{ 0x00600001, 0x2b7001ad, 0x00ae0400, 0x00000000 },
{ 0x00600001, 0x2b9001ad, 0x00ae0420, 0x00000000 },
{ 0x00600001, 0x2bb001ad, 0x00ae0440, 0x00000000 },
{ 0x00600001, 0x2bd001ad, 0x00ae0460, 0x00000000 },
{ 0x00600001, 0x2bf001ad, 0x00ae0480, 0x00000000 },
{ 0x00600001, 0x2c1001ad, 0x00ae04a0, 0x00000000 },
{ 0x00600001, 0x2c3001ad, 0x00ae04c0, 0x00000000 },
{ 0x00600001, 0x2c5001ad, 0x00ae04e0, 0x00000000 },
{ 0x02000005, 0x20002d3c, 0x00210a48, 0x00800080 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000006 },
{ 0x00800001, 0x2c600169, 0x00000000, 0x00000000 },
{ 0x00800001, 0x2c800169, 0x00000000, 0x00000000 },
{ 0x00800001, 0x2ca00169, 0x00000000, 0x00000000 },
{ 0x00800001, 0x2cc00169, 0x00000000, 0x00000000 },
{ 0x00000040, 0x22000c00, 0x00210200, 0x00800080 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000023 },
{ 0x00800001, 0x2c6001ad, 0x00ae0400, 0x00000000 },
{ 0x00800001, 0x2c8001ad, 0x00ae0440, 0x00000000 },
{ 0x00800001, 0x2ca001ad, 0x00ae0480, 0x00000000 },
{ 0x00800001, 0x2cc001ad, 0x00ae04c0, 0x00000000 },
{ 0x02000005, 0x20002d3c, 0x00210a48, 0x00400040 },
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000005 },
{ 0x00800001, 0x2ce00169, 0x00000000, 0x00000000 },
{ 0x00800001, 0x2d000169, 0x00000000, 0x00000000 },
{ 0x00800001, 0x2d200169, 0x00000000, 0x00000000 },
{ 0x00800001, 0x2d400169, 0x00000000, 0x00000000 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000016 },
{ 0x00800001, 0x2ce001ad, 0x00ae0400, 0x00000000 },
{ 0x00800001, 0x2d0001ad, 0x00ae0440, 0x00000000 },
{ 0x00800001, 0x2d2001ad, 0x00ae0480, 0x00000000 },
{ 0x00800001, 0x2d4001ad, 0x00ae04c0, 0x00000000 },
{ 0x00000040, 0x34000c20, 0x00210fc8, 0x00000020 },
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
{ 0x00802041, 0x2e8025a5, 0x008d8000, 0x008d0e00 },
{ 0x00802041, 0x2e8024a5, 0x008d0e80, 0x008c0da0 },
{ 0x0080200c, 0x2e802ca5, 0x008d0e80, 0x00040004 },
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
{ 0x00802041, 0x2ec025a5, 0x008d8000, 0x008d0e20 },
{ 0x00802041, 0x2ec024a5, 0x008d0ec0, 0x008c0da0 },
{ 0x0080200c, 0x2ec02ca5, 0x008d0ec0, 0x00040004 },
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
{ 0x00802041, 0x2f0025a5, 0x008d8000, 0x008d0e40 },
{ 0x00802041, 0x2f0024a5, 0x008d0f00, 0x008c0da0 },
{ 0x0080200c, 0x2f002ca5, 0x008d0f00, 0x00040004 },
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
{ 0x00802041, 0x2f4025a5, 0x008d8000, 0x008d0e60 },
{ 0x00802041, 0x2f4024a5, 0x008d0f40, 0x008c0da0 },
{ 0x0080200c, 0x2f402ca5, 0x008d0f40, 0x00040004 },
{ 0x00000040, 0x34000c20, 0x00210fa0, 0x00000020 },
{ 0x00000001, 0x2fc00001, 0x00001400, 0x00000000 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000001a },
{ 0x00802040, 0x24000ca5, 0x008d0400, 0x00000400 },
{ 0x00802040, 0x24400ca5, 0x008d0440, 0x00000400 },
{ 0x00802040, 0x24800ca5, 0x008d0480, 0x00000400 },
{ 0x00802040, 0x24c00ca5, 0x008d04c0, 0x00000400 },
{ 0x00802008, 0x24000ca5, 0x008d0400, 0x0000000b },
{ 0x00802008, 0x24400ca5, 0x008d0440, 0x0000000b },
{ 0x00802008, 0x24800ca5, 0x008d0480, 0x0000000b },
{ 0x00802008, 0x24c00ca5, 0x008d04c0, 0x0000000b },
{ 0x00800001, 0x2dc001ad, 0x00ae0400, 0x00000000 },
{ 0x00800001, 0x2de001ad, 0x00ae0440, 0x00000000 },
{ 0x00800001, 0x2e0001ad, 0x00ae0480, 0x00000000 },
{ 0x00800001, 0x2e2001ad, 0x00ae04c0, 0x00000000 },
{ 0x00000001, 0x2a000001, 0x00210200, 0x00000000 },
{ 0x00000001, 0x22000060, 0x00000000, 0x0db00da0 },
{ 0x00000001, 0x2fc00001, 0x00001400, 0x00000000 },
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000000a },
{ 0x00802040, 0x24000ca5, 0x008d0400, 0x00080000 },
{ 0x00802040, 0x24400ca5, 0x008d0440, 0x00080000 },
{ 0x00802040, 0x24800ca5, 0x008d0480, 0x00080000 },
{ 0x00802040, 0x24c00ca5, 0x008d04c0, 0x00080000 },
{ 0x00802008, 0x24000ca5, 0x008d0400, 0x00000014 },
{ 0x00802008, 0x24400ca5, 0x008d0440, 0x00000014 },
{ 0x00802008, 0x24800ca5, 0x008d0480, 0x00000014 },
{ 0x00802008, 0x24c00ca5, 0x008d04c0, 0x00000014 },
{ 0x00000001, 0x22000020, 0x00210a00, 0x00000000 },
{ 0x00000040, 0x34000c20, 0x00210fa0, 0x00000020 },
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 },
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 },
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 },
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 },
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 },
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 },
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 },
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 },
{ 0x00200040, 0x240014a5, 0x00800500, 0x00800510 },
{ 0x00200040, 0x242014a5, 0x00800540, 0x00800550 },
{ 0x00200040, 0x244014a5, 0x00800580, 0x00800590 },
{ 0x00200040, 0x246014a5, 0x008005c0, 0x008005d0 },
{ 0x00200040, 0x248014a5, 0x00800600, 0x00800610 },
{ 0x00200040, 0x24a014a5, 0x00800640, 0x00800650 },
{ 0x00200040, 0x24c014a5, 0x00800680, 0x00800690 },
{ 0x00200040, 0x24e014a5, 0x008006c0, 0x008006d0 },
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 },
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 },
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 },
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 },
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 },
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 },
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 },
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 },
{ 0x00200040, 0x240814a5, 0x00800500, 0x00800510 },
{ 0x00200040, 0x242814a5, 0x00800540, 0x00800550 },
{ 0x00200040, 0x244814a5, 0x00800580, 0x00800590 },
{ 0x00200040, 0x246814a5, 0x008005c0, 0x008005d0 },
{ 0x00200040, 0x248814a5, 0x00800600, 0x00800610 },
{ 0x00200040, 0x24a814a5, 0x00800640, 0x00800650 },
{ 0x00200040, 0x24c814a5, 0x00800680, 0x00800690 },
{ 0x00200040, 0x24e814a5, 0x008006c0, 0x008006d0 },
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 },
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 },
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 },
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 },
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 },
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 },
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 },
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 },
{ 0x00200040, 0x241014a5, 0x00800500, 0x00800510 },
{ 0x00200040, 0x243014a5, 0x00800540, 0x00800550 },
{ 0x00200040, 0x245014a5, 0x00800580, 0x00800590 },
{ 0x00200040, 0x247014a5, 0x008005c0, 0x008005d0 },
{ 0x00200040, 0x249014a5, 0x00800600, 0x00800610 },
{ 0x00200040, 0x24b014a5, 0x00800640, 0x00800650 },
{ 0x00200040, 0x24d014a5, 0x00800680, 0x00800690 },
{ 0x00200040, 0x24f014a5, 0x008006c0, 0x008006d0 },
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 },
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 },
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 },
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 },
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 },
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 },
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 },
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 },
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 },
{ 0x00200040, 0x241814a5, 0x00800500, 0x00800510 },
{ 0x00200040, 0x243814a5, 0x00800540, 0x00800550 },
{ 0x00200040, 0x245814a5, 0x00800580, 0x00800590 },
{ 0x00200040, 0x247814a5, 0x008005c0, 0x008005d0 },
{ 0x00200040, 0x249814a5, 0x00800600, 0x00800610 },
{ 0x00200040, 0x24b814a5, 0x00800640, 0x00800650 },
{ 0x00200040, 0x24d814a5, 0x00800680, 0x00800690 },
{ 0x00200040, 0x24f814a5, 0x008006c0, 0x008006d0 },
{ 0x00000040, 0x34000c20, 0x00210fc0, 0x00000020 },

View File

@ -0,0 +1,29 @@
/*
* Copyright © 2009 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Author:
* Zou Nan hai <nanhai.zou@intel.com>
* Zhang Hua jun <huajun.zhang@intel.com>
* Xing Dong sheng <dongsheng.xing@intel.com>
*
*/
include(`read_field_x0y0_uv.g4i')

View File

@ -0,0 +1,45 @@
/*
* Copyright © 2009 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Author:
* Zou Nan hai <nanhai.zou@intel.com>
* Zhang Hua jun <huajun.zhang@intel.com>
* Xing Dong sheng <dongsheng.xing@intel.com>
*
*/
and.z (1) null mv1<1,1,1>W 1UW {align1};
(f0) jmpi L1;
and.z (1) null mv2<1,1,1>W 1UW {align1};
(f0) jmpi L2;
include(`read_field_x1y1_y.g4i')
jmpi L5;
L2:
include(`read_field_x1y0_y.g4i')
jmpi L5;
L1:
and.z (1) null mv2<1,1,1>W 1UW {align1};
(f0) jmpi L4;
include(`read_field_x0y1_y.g4i')
jmpi L5;
L4:
include(`read_field_x0y0_y.g4i')
L5:

View File

@ -0,0 +1,29 @@
/*
* Copyright © 2009 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Author:
* Zou Nan hai <nanhai.zou@intel.com>
* Zhang Hua jun <huajun.zhang@intel.com>
* Xing Dong sheng <dongsheng.xing@intel.com>
*/
include(`read_frame_x0y0_uv.g4i')

View File

@ -0,0 +1,57 @@
/*
* Copyright © 2009 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Author:
* Zou Nan hai <nanhai.zou@intel.com>
*/
/* if (motion_vect.x & 1) {
* if (motion_vect.y & 1)
* half_pixel in x and y;
* else
* half_pixel in x;
* } else {
* if (motion_vect.y & 1)
* half_pixel y;
* else
* full_pixel_read;
* }
*/
and.z (1) null mv1<1,1,1>UW 1UD {align1};
(f0) jmpi LL1;
and.z (1) null mv2<1,1,1>UW 1UD {align1};
(f0) jmpi LL2;
include(`read_frame_x1y1_y.g4i')
jmpi LL5;
LL2:
include(`read_frame_x1y0_y.g4i')
jmpi LL5;
LL1:
and.z (1) null mv2<1,1,1>UW 1UD {align1};
(f0) jmpi LL4;
include(`read_frame_x0y1_y.g4i')
jmpi LL5;
LL4:
include(`read_frame_x0y0_y.g4i')
LL5:

View File

@ -0,0 +1,50 @@
/*
* Copyright © 2009 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Author:
* Zou Nan hai <nanhai.zou@intel.com>
* Yan Li <li.l.yan@intel.com>
* Liu Xi bin<xibin.liu@intel.com>
*/
/* GRF allocation:
g1~g30: constant buffer
g1~g2:intra IQ matrix
g3~g4:non intra IQ matrix
g5~g20:IDCT table
g31: thread payload
g58~g81:reference data
g82: thread payload backup
g83~g106:IDCT data
g115: message descriptor for reading reference data */
mov (1) g115.8<1>UD 0x7000FUD {align1}; // 8*16/32=4
send (16) 0 g40.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 4 {align1};//U
send (16) 0 g45.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 4 {align1};//V
mov (16) g32.0<1>UW g40.0<16,8,1>UB {align1};
mov (16) g33.0<1>UW g41.0<16,8,1>UB {align1};
mov (16) g34.0<1>UW g42.0<16,8,1>UB {align1};
mov (16) g35.0<1>UW g43.0<16,8,1>UB {align1};
mov (16) g36.0<1>UW g45.0<16,8,1>UB {align1};
mov (16) g37.0<1>UW g46.0<16,8,1>UB {align1};
mov (16) g38.0<1>UW g47.0<16,8,1>UB {align1};
mov (16) g39.0<1>UW g48.0<16,8,1>UB {align1};

View File

@ -0,0 +1,57 @@
/*
* Copyright © 2009 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Author:
* Zou Nan hai <nanhai.zou@intel.com>
* Yan Li <li.l.yan@intel.com>
* Liu Xi bin<xibin.liu@intel.com>
*/
/* GRF allocation:
g1~g30: constant buffer
g1~g2:intra IQ matrix
g3~g4:non intra IQ matrix
g5~g20:IDCT table
g31: thread payload
g58~g81:reference data
g82: thread payload backup
g83~g106:IDCT data
g115: message descriptor for reading reference data */
mov (1) g115.8<1>UD 0x01FUD {align1};
send (16) 0 g40.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
send (16) 0 g42.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
send (16) 0 g44.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
send (16) 0 g46.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
mov (1) g115.8<1>UD 0x07001FUD {align1};
send (16) 0 g48.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
mov (16) g32.0<1>UW g40.0<16,16,1>UB {align1};
mov (16) g33.0<1>UW g42.0<16,16,1>UB {align1};
mov (16) g34.0<1>UW g44.0<16,16,1>UB {align1};
mov (16) g35.0<1>UW g46.0<16,16,1>UB {align1};
mov (16) g36.0<1>UW g48.0<16,16,1>UB {align1};
mov (16) g37.0<1>UW g50.0<16,16,1>UB {align1};
mov (16) g38.0<1>UW g52.0<16,16,1>UB {align1};
mov (16) g39.0<1>UW g54.0<16,16,1>UB {align1};

View File

@ -0,0 +1,60 @@
/*
* Copyright © 2009 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Author:
* Zou Nan hai <nanhai.zou@intel.com>
* Yan Li <li.l.yan@intel.com>
* Liu Xi bin<xibin.liu@intel.com>
*/
/* GRF allocation:
g1~g30: constant buffer
g1~g2:intra IQ matrix
g3~g4:non intra IQ matrix
g5~g20:IDCT table
g31: thread payload
g58~g81:reference data
g82: thread payload backup
g83~g106:IDCT data
g115: message descriptor for reading reference data */
mov (1) g115.8<1>UD 0x01FUD {align1};
send (16) 0 g40.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
send (16) 0 g42.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
send (16) 0 g44.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
send (16) 0 g46.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
mov (1) g115.8<1>UD 0x07001FUD {align1};
send (16) 0 g48.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
mov (1) g115.8<1>UD 0x1FUD {align1};
send (16) 0 g56.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
avg.sat (16) g32.0<1>UW g40.0<16,16,1>UB g42.0<16,16,1>UB {align1};
avg.sat (16) g33.0<1>UW g42.0<16,16,1>UB g44.0<16,16,1>UB {align1};
avg.sat (16) g34.0<1>UW g44.0<16,16,1>UB g46.0<16,16,1>UB {align1};
avg.sat (16) g35.0<1>UW g46.0<16,16,1>UB g48.0<16,16,1>UB {align1};
avg.sat (16) g36.0<1>UW g48.0<16,16,1>UB g50.0<16,16,1>UB {align1};
avg.sat (16) g37.0<1>UW g50.0<16,16,1>UB g52.0<16,16,1>UB {align1};
avg.sat (16) g38.0<1>UW g52.0<16,16,1>UB g54.0<16,16,1>UB {align1};
avg.sat (16) g39.0<1>UW g54.0<16,16,1>UB g56.0<16,16,1>UB {align1};

View File

@ -0,0 +1,57 @@
/*
* Copyright © 2009 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Author:
* Zou Nan hai <nanhai.zou@intel.com>
* Yan Li <li.l.yan@intel.com>
* Liu Xi bin<xibin.liu@intel.com>
*/
/* GRF allocation:
g1~g30: constant buffer
g1~g2:intra IQ matrix
g3~g4:non intra IQ matrix
g5~g20:IDCT table
g31: thread payload
g58~g81:reference data
g82: thread payload backup
g83~g106:IDCT data
g115: message descriptor for reading reference data */
mov (1) g115.8<1>UD 0x01FUD {align1};
send (16) 0 g40.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
send (16) 0 g42.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
send (16) 0 g44.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
send (16) 0 g46.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
mov (1) g115.8<1>UD 0x07001FUD {align1};
send (16) 0 g48.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
avg.sat (16) g32.0<1>UW g40.0<16,16,1>UB g40.1<16,16,1>UB {align1};
avg.sat (16) g33.0<1>UW g42.0<16,16,1>UB g42.1<16,16,1>UB {align1};
avg.sat (16) g34.0<1>UW g44.0<16,16,1>UB g44.1<16,16,1>UB {align1};
avg.sat (16) g35.0<1>UW g46.0<16,16,1>UB g46.1<16,16,1>UB {align1};
avg.sat (16) g36.0<1>UW g48.0<16,16,1>UB g48.1<16,16,1>UB {align1};
avg.sat (16) g37.0<1>UW g50.0<16,16,1>UB g50.1<16,16,1>UB {align1};
avg.sat (16) g38.0<1>UW g52.0<16,16,1>UB g52.1<16,16,1>UB {align1};
avg.sat (16) g39.0<1>UW g54.0<16,16,1>UB g54.1<16,16,1>UB {align1};

View File

@ -0,0 +1,87 @@
/*
* Copyright © 2009 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Author:
* Zou Nan hai <nanhai.zou@intel.com>
* Yan Li <li.l.yan@intel.com>
* Liu Xi bin<xibin.liu@intel.com>
*/
/* GRF allocation:
g1~g30: constant buffer
g1~g2:intra IQ matrix
g3~g4:non intra IQ matrix
g5~g20:IDCT table
g31: thread payload
g58~g81:reference data
g82: thread payload backup
g83~g106:IDCT data
g115: message descriptor for reading reference data */
mov (1) g115.8<1>UD 0x01FUD {align1};
send (16) 0 g40.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
send (16) 0 g42.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
send (16) 0 g44.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
send (16) 0 g46.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
mov (1) g115.8<1>UD 0x07001FUD {align1};
send (16) 0 g48.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
mov (1) g115.8<1>UD 0x1FUD {align1};
send (16) 0 g56.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
add (16) g32.0<1>UW g40.0<16,16,1>UB g42.0<16,16,1>UB {align1};
add (16) g33.0<1>UW g42.0<16,16,1>UB g44.0<16,16,1>UB {align1};
add (16) g34.0<1>UW g44.0<16,16,1>UB g46.0<16,16,1>UB {align1};
add (16) g35.0<1>UW g46.0<16,16,1>UB g48.0<16,16,1>UB {align1};
add (16) g36.0<1>UW g48.0<16,16,1>UB g50.0<16,16,1>UB {align1};
add (16) g37.0<1>UW g50.0<16,16,1>UB g52.0<16,16,1>UB {align1};
add (16) g38.0<1>UW g52.0<16,16,1>UB g54.0<16,16,1>UB {align1};
add (16) g39.0<1>UW g54.0<16,16,1>UB g56.0<16,16,1>UB {align1};
add (16) g32.0<1>UW g32.0<16,16,1>UW g40.1<16,16,1>UB {align1};
add (16) g33.0<1>UW g33.0<16,16,1>UW g42.1<16,16,1>UB {align1};
add (16) g34.0<1>UW g34.0<16,16,1>UW g44.1<16,16,1>UB {align1};
add (16) g35.0<1>UW g35.0<16,16,1>UW g46.1<16,16,1>UB {align1};
add (16) g36.0<1>UW g36.0<16,16,1>UW g48.1<16,16,1>UB {align1};
add (16) g37.0<1>UW g37.0<16,16,1>UW g50.1<16,16,1>UB {align1};
add (16) g38.0<1>UW g38.0<16,16,1>UW g52.1<16,16,1>UB {align1};
add (16) g39.0<1>UW g39.0<16,16,1>UW g54.1<16,16,1>UB {align1};
add (16) g32.0<1>UW g32.0<16,16,1>UW g42.1<16,16,1>UB {align1};
add (16) g33.0<1>UW g33.0<16,16,1>UW g44.1<16,16,1>UB {align1};
add (16) g34.0<1>UW g34.0<16,16,1>UW g46.1<16,16,1>UB {align1};
add (16) g35.0<1>UW g35.0<16,16,1>UW g48.1<16,16,1>UB {align1};
add (16) g36.0<1>UW g36.0<16,16,1>UW g50.1<16,16,1>UB {align1};
add (16) g37.0<1>UW g37.0<16,16,1>UW g52.1<16,16,1>UB {align1};
add (16) g38.0<1>UW g38.0<16,16,1>UW g54.1<16,16,1>UB {align1};
add (16) g39.0<1>UW g39.0<16,16,1>UW g56.1<16,16,1>UB {align1};
shr (16) g32.0<1>UW g32.0<16,16,1>UW 2UW {align1};
shr (16) g33.0<1>UW g33.0<16,16,1>UW 2UW {align1};
shr (16) g34.0<1>UW g34.0<16,16,1>UW 2UW {align1};
shr (16) g35.0<1>UW g35.0<16,16,1>UW 2UW {align1};
shr (16) g36.0<1>UW g36.0<16,16,1>UW 2UW {align1};
shr (16) g37.0<1>UW g37.0<16,16,1>UW 2UW {align1};
shr (16) g38.0<1>UW g38.0<16,16,1>UW 2UW {align1};
shr (16) g39.0<1>UW g39.0<16,16,1>UW 2UW {align1};

View File

@ -0,0 +1,49 @@
/*
* Copyright © 2009 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Author:
* Zou Nan hai <nanhai.zou@intel.com>
* Yan Li <li.l.yan@intel.com>
* Liu Xi bin<xibin.liu@intel.com>
*/
/* GRF allocation:
g1~g30: constant buffer
g1~g2:intra IQ matrix
g3~g4:non intra IQ matrix
g5~g20:IDCT table
g31: thread payload
g32: message descriptor for reading reference data
g58~g81:reference data
g82: thread payload backup
g83~g106:IDCT data */
mov (1) g32.8<1>UD 0x007000fUD {align1};
send (16) 0 g36.0<1>UW g32<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 4 {align1};
send (16) 0 g40.0<1>UW g32<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 4 {align1};
mov (16) g74.0<1>UW g36.0<16,8,1>UB {align1};
mov (16) g75.0<1>UW g37.0<16,8,1>UB {align1};
mov (16) g76.0<1>UW g38.0<16,8,1>UB {align1};
mov (16) g77.0<1>UW g39.0<16,8,1>UB {align1};
mov (16) g78.0<1>UW g40.0<16,8,1>UB {align1};
mov (16) g79.0<1>UW g41.0<16,8,1>UB {align1};
mov (16) g80.0<1>UW g42.0<16,8,1>UB {align1};
mov (16) g81.0<1>UW g43.0<16,8,1>UB {align1};

View File

@ -0,0 +1,58 @@
/*
* Copyright © 2009 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Author:
* Zou Nan hai <nanhai.zou@intel.com>
* Yan Li <li.l.yan@intel.com>
* Liu Xi bin<xibin.liu@intel.com>
*/
/* GRF allocation:
g1~g30: constant buffer
g1~g2:intra IQ matrix
g3~g4:non intra IQ matrix
g5~g20:IDCT table
g31: thread payload
g32: message descriptor for reading reference data
g58~g81:reference data
g82: thread payload backup
g83~g106:IDCT data */
mov (1) g32.8<1>UD 0x007001FUD {align1};
send (16) 0 g38.0<1>UW g32<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
send (16) 0 g46.0<1>UW g32<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
mov (16) g58.0<1>UW g38.0<16,16,1>UB {align1};
mov (16) g59.0<1>UW g39.0<16,16,1>UB {align1};
mov (16) g60.0<1>UW g40.0<16,16,1>UB {align1};
mov (16) g61.0<1>UW g41.0<16,16,1>UB {align1};
mov (16) g62.0<1>UW g42.0<16,16,1>UB {align1};
mov (16) g63.0<1>UW g43.0<16,16,1>UB {align1};
mov (16) g64.0<1>UW g44.0<16,16,1>UB {align1};
mov (16) g65.0<1>UW g45.0<16,16,1>UB {align1};
mov (16) g66.0<1>UW g46.0<16,16,1>UB {align1};
mov (16) g67.0<1>UW g47.0<16,16,1>UB {align1};
mov (16) g68.0<1>UW g48.0<16,16,1>UB {align1};
mov (16) g69.0<1>UW g49.0<16,16,1>UB {align1};
mov (16) g70.0<1>UW g50.0<16,16,1>UB {align1};
mov (16) g71.0<1>UW g51.0<16,16,1>UB {align1};
mov (16) g72.0<1>UW g52.0<16,16,1>UB {align1};
mov (16) g73.0<1>UW g53.0<16,16,1>UB {align1};

View File

@ -0,0 +1,61 @@
/*
* Copyright © 2009 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Author:
* Zou Nan hai <nanhai.zou@intel.com>
* Yan Li <li.l.yan@intel.com>
* Liu Xi bin<xibin.liu@intel.com>
*/
/* GRF allocation:
g1~g30: constant buffer
g1~g2:intra IQ matrix
g3~g4:non intra IQ matrix
g5~g20:IDCT table
g31: thread payload
g32: message descriptor for reading reference data
g58~g81:reference data
g82: thread payload backup
g83~g106:IDCT data */
mov (1) g32.8<1>UD 0x007001FUD {align1};
send (16) 0 g38.0<1>UW g32<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
send (16) 0 g46.0<1>UW g32<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
mov (1) g32.8<1>UD 0x1FUD {align1};
send (16) 0 g54.0<1>UW g32<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 1 {align1};
avg.sat (16) g58.0<1>UW g38.0<16,16,1>UB g39.0<16,16,1>UB {align1};
avg.sat (16) g59.0<1>UW g39.0<16,16,1>UB g40.0<16,16,1>UB {align1};
avg.sat (16) g60.0<1>UW g40.0<16,16,1>UB g41.0<16,16,1>UB {align1};
avg.sat (16) g61.0<1>UW g41.0<16,16,1>UB g42.0<16,16,1>UB {align1};
avg.sat (16) g62.0<1>UW g42.0<16,16,1>UB g43.0<16,16,1>UB {align1};
avg.sat (16) g63.0<1>UW g43.0<16,16,1>UB g44.0<16,16,1>UB {align1};
avg.sat (16) g64.0<1>UW g44.0<16,16,1>UB g45.0<16,16,1>UB {align1};
avg.sat (16) g65.0<1>UW g45.0<16,16,1>UB g46.0<16,16,1>UB {align1};
avg.sat (16) g66.0<1>UW g46.0<16,16,1>UB g47.0<16,16,1>UB {align1};
avg.sat (16) g67.0<1>UW g47.0<16,16,1>UB g48.0<16,16,1>UB {align1};
avg.sat (16) g68.0<1>UW g48.0<16,16,1>UB g49.0<16,16,1>UB {align1};
avg.sat (16) g69.0<1>UW g49.0<16,16,1>UB g50.0<16,16,1>UB {align1};
avg.sat (16) g70.0<1>UW g50.0<16,16,1>UB g51.0<16,16,1>UB {align1};
avg.sat (16) g71.0<1>UW g51.0<16,16,1>UB g52.0<16,16,1>UB {align1};
avg.sat (16) g72.0<1>UW g52.0<16,16,1>UB g53.0<16,16,1>UB {align1};
avg.sat (16) g73.0<1>UW g53.0<16,16,1>UB g54.0<16,16,1>UB {align1};

View File

@ -0,0 +1,58 @@
/*
* Copyright © 2009 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Author:
* Zou Nan hai <nanhai.zou@intel.com>
* Yan Li <li.l.yan@intel.com>
* Liu Xi bin<xibin.liu@intel.com>
*/
/* GRF allocation:
g1~g30: constant buffer
g1~g2:intra IQ matrix
g3~g4:non intra IQ matrix
g5~g20:IDCT table
g31: thread payload
g32: message descriptor for reading reference data
g58~g81:reference data
g82: thread payload backup
g83~g106:IDCT data */
mov (1) g32.8<1>UD 0x007001FUD {align1};
send (16) 0 g38.0<1>UW g32<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
send (16) 0 g46.0<1>UW g32<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
avg.sat (16) g58.0<1>UW g38.0<16,16,1>UB g38.1<16,16,1>UB {align1};
avg.sat (16) g59.0<1>UW g39.0<16,16,1>UB g39.1<16,16,1>UB {align1};
avg.sat (16) g60.0<1>UW g40.0<16,16,1>UB g40.1<16,16,1>UB {align1};
avg.sat (16) g61.0<1>UW g41.0<16,16,1>UB g41.1<16,16,1>UB {align1};
avg.sat (16) g62.0<1>UW g42.0<16,16,1>UB g42.1<16,16,1>UB {align1};
avg.sat (16) g63.0<1>UW g43.0<16,16,1>UB g43.1<16,16,1>UB {align1};
avg.sat (16) g64.0<1>UW g44.0<16,16,1>UB g44.1<16,16,1>UB {align1};
avg.sat (16) g65.0<1>UW g45.0<16,16,1>UB g45.1<16,16,1>UB {align1};
avg.sat (16) g66.0<1>UW g46.0<16,16,1>UB g46.1<16,16,1>UB {align1};
avg.sat (16) g67.0<1>UW g47.0<16,16,1>UB g47.1<16,16,1>UB {align1};
avg.sat (16) g68.0<1>UW g48.0<16,16,1>UB g48.1<16,16,1>UB {align1};
avg.sat (16) g69.0<1>UW g49.0<16,16,1>UB g49.1<16,16,1>UB {align1};
avg.sat (16) g70.0<1>UW g50.0<16,16,1>UB g50.1<16,16,1>UB {align1};
avg.sat (16) g71.0<1>UW g51.0<16,16,1>UB g51.1<16,16,1>UB {align1};
avg.sat (16) g72.0<1>UW g52.0<16,16,1>UB g52.1<16,16,1>UB {align1};
avg.sat (16) g73.0<1>UW g53.0<16,16,1>UB g53.1<16,16,1>UB {align1};

View File

@ -0,0 +1,112 @@
/*
* Copyright © 2009 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Author:
* Zou Nan hai <nanhai.zou@intel.com>
* Yan Li <li.l.yan@intel.com>
* Liu Xi bin<xibin.liu@intel.com>
*/
/* GRF allocation:
g1~g30: constant buffer
g1~g2:intra IQ matrix
g3~g4:non intra IQ matrix
g5~g20:IDCT table
g31: thread payload
g32: message descriptor for reading reference data
g58~g81:reference data
g82: thread payload backup
g83~g106:IDCT data */
mov (1) g32.8<1>UD 0x007001FUD {align1};
send (16) 0 g38.0<1>UW g32<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
send (16) 0 g46.0<1>UW g32<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
mov (1) g32.8<1>UD 0x1FUD {align1};
send (16) 0 g54.0<1>UW g32<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 1 {align1};
add (16) g58.0<1>UW g38.0<16,16,1>UB g38.1<16,16,1>UB {align1};
add (16) g59.0<1>UW g39.0<16,16,1>UB g39.1<16,16,1>UB {align1};
add (16) g60.0<1>UW g40.0<16,16,1>UB g40.1<16,16,1>UB {align1};
add (16) g61.0<1>UW g41.0<16,16,1>UB g41.1<16,16,1>UB {align1};
add (16) g62.0<1>UW g42.0<16,16,1>UB g42.1<16,16,1>UB {align1};
add (16) g63.0<1>UW g43.0<16,16,1>UB g43.1<16,16,1>UB {align1};
add (16) g64.0<1>UW g44.0<16,16,1>UB g44.1<16,16,1>UB {align1};
add (16) g65.0<1>UW g45.0<16,16,1>UB g45.1<16,16,1>UB {align1};
add (16) g66.0<1>UW g46.0<16,16,1>UB g46.1<16,16,1>UB {align1};
add (16) g67.0<1>UW g47.0<16,16,1>UB g47.1<16,16,1>UB {align1};
add (16) g68.0<1>UW g48.0<16,16,1>UB g48.1<16,16,1>UB {align1};
add (16) g69.0<1>UW g49.0<16,16,1>UB g49.1<16,16,1>UB {align1};
add (16) g70.0<1>UW g50.0<16,16,1>UB g50.1<16,16,1>UB {align1};
add (16) g71.0<1>UW g51.0<16,16,1>UB g51.1<16,16,1>UB {align1};
add (16) g72.0<1>UW g52.0<16,16,1>UB g52.1<16,16,1>UB {align1};
add (16) g73.0<1>UW g53.0<16,16,1>UB g53.1<16,16,1>UB {align1};
add (16) g58.0<1>UW g58.0<16,16,1>UW g39.0<16,16,1>UB {align1};
add (16) g59.0<1>UW g59.0<16,16,1>UW g40.0<16,16,1>UB {align1};
add (16) g60.0<1>UW g60.0<16,16,1>UW g41.0<16,16,1>UB {align1};
add (16) g61.0<1>UW g61.0<16,16,1>UW g42.0<16,16,1>UB {align1};
add (16) g62.0<1>UW g62.0<16,16,1>UW g43.0<16,16,1>UB {align1};
add (16) g63.0<1>UW g63.0<16,16,1>UW g44.0<16,16,1>UB {align1};
add (16) g64.0<1>UW g64.0<16,16,1>UW g45.0<16,16,1>UB {align1};
add (16) g65.0<1>UW g65.0<16,16,1>UW g46.0<16,16,1>UB {align1};
add (16) g66.0<1>UW g66.0<16,16,1>UW g47.0<16,16,1>UB {align1};
add (16) g67.0<1>UW g67.0<16,16,1>UW g48.0<16,16,1>UB {align1};
add (16) g68.0<1>UW g68.0<16,16,1>UW g49.0<16,16,1>UB {align1};
add (16) g69.0<1>UW g69.0<16,16,1>UW g50.0<16,16,1>UB {align1};
add (16) g70.0<1>UW g70.0<16,16,1>UW g51.0<16,16,1>UB {align1};
add (16) g71.0<1>UW g71.0<16,16,1>UW g52.0<16,16,1>UB {align1};
add (16) g72.0<1>UW g72.0<16,16,1>UW g53.0<16,16,1>UB {align1};
add (16) g73.0<1>UW g73.0<16,16,1>UW g54.0<16,16,1>UB {align1};
add (16) g58.0<1>UW g58.0<16,16,1>UW g39.1<16,16,1>UB {align1};
add (16) g59.0<1>UW g59.0<16,16,1>UW g40.1<16,16,1>UB {align1};
add (16) g60.0<1>UW g60.0<16,16,1>UW g41.1<16,16,1>UB {align1};
add (16) g61.0<1>UW g61.0<16,16,1>UW g42.1<16,16,1>UB {align1};
add (16) g62.0<1>UW g62.0<16,16,1>UW g43.1<16,16,1>UB {align1};
add (16) g63.0<1>UW g63.0<16,16,1>UW g44.1<16,16,1>UB {align1};
add (16) g64.0<1>UW g64.0<16,16,1>UW g45.1<16,16,1>UB {align1};
add (16) g65.0<1>UW g65.0<16,16,1>UW g46.1<16,16,1>UB {align1};
add (16) g66.0<1>UW g66.0<16,16,1>UW g47.1<16,16,1>UB {align1};
add (16) g67.0<1>UW g67.0<16,16,1>UW g48.1<16,16,1>UB {align1};
add (16) g68.0<1>UW g68.0<16,16,1>UW g49.1<16,16,1>UB {align1};
add (16) g69.0<1>UW g69.0<16,16,1>UW g50.1<16,16,1>UB {align1};
add (16) g70.0<1>UW g70.0<16,16,1>UW g51.1<16,16,1>UB {align1};
add (16) g71.0<1>UW g71.0<16,16,1>UW g52.1<16,16,1>UB {align1};
add (16) g72.0<1>UW g72.0<16,16,1>UW g53.1<16,16,1>UB {align1};
add (16) g73.0<1>UW g73.0<16,16,1>UW g54.1<16,16,1>UB {align1};
shr.sat (16) g58.0<1>UW g58.0<16,16,1>UW 2UW {align1};
shr.sat (16) g59.0<1>UW g59.0<16,16,1>UW 2UW {align1};
shr.sat (16) g60.0<1>UW g60.0<16,16,1>UW 2UW {align1};
shr.sat (16) g61.0<1>UW g61.0<16,16,1>UW 2UW {align1};
shr.sat (16) g62.0<1>UW g62.0<16,16,1>UW 2UW {align1};
shr.sat (16) g63.0<1>UW g63.0<16,16,1>UW 2UW {align1};
shr.sat (16) g64.0<1>UW g64.0<16,16,1>UW 2UW {align1};
shr.sat (16) g65.0<1>UW g65.0<16,16,1>UW 2UW {align1};
shr.sat (16) g66.0<1>UW g66.0<16,16,1>UW 2UW {align1};
shr.sat (16) g67.0<1>UW g67.0<16,16,1>UW 2UW {align1};
shr.sat (16) g68.0<1>UW g68.0<16,16,1>UW 2UW {align1};
shr.sat (16) g69.0<1>UW g69.0<16,16,1>UW 2UW {align1};
shr.sat (16) g70.0<1>UW g70.0<16,16,1>UW 2UW {align1};
shr.sat (16) g71.0<1>UW g71.0<16,16,1>UW 2UW {align1};
shr.sat (16) g72.0<1>UW g72.0<16,16,1>UW 2UW {align1};
shr.sat (16) g73.0<1>UW g73.0<16,16,1>UW 2UW {align1};

594
src/xvmc/xvmc_vld.c Normal file
View File

@ -0,0 +1,594 @@
/*
* Copyright © 2009 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Author:
* Zou Nan hai <nanhai.zou@intel.com>
*/
#include "xvmc_vld.h"
#include "i965_hwmc.h"
#include "i810_reg.h"
#include "brw_defines.h"
#include "brw_structs.h"
#ifndef ALIGN
#define ALIGN(m,n) (((m) + (n) - 1) & ~((n) - 1))
#endif
#define BATCH_STRUCT(x) intelBatchbufferData(&x, sizeof(x), 0)
#define CS_SIZE 30
#define URB_SIZE 384
/* idct table */
#define C0 23170
#define C1 22725
#define C2 21407
#define C3 19266
#define C4 16383
#define C5 12873
#define C6 8867
#define C7 4520
const uint32_t idct_table[] = {
C4, C1, C2, C3, C4, C5, C6, C7, //g5
C4, C1, C2, C3, C4, C5, C6, C7,
C4, C3, C6,-C7,-C4,-C1,-C2,-C5,
C4, C3, C6,-C7,-C4,-C1,-C2,-C5,
C4, C5,-C6,-C1,-C4, C7, C2, C3,
C4, C5,-C6,-C1,-C4, C7, C2, C3,
C4, C7,-C2,-C5, C4, C3,-C6,-C1,
C4, C7,-C2,-C5, C4, C3,-C6,-C1,
C4,-C7,-C2, C5, C4,-C3,-C6, C1,
C4,-C7,-C2, C5, C4,-C3,-C6, C1,
C4,-C5,-C6, C1,-C4,-C7, C2,-C3,
C4,-C5,-C6, C1,-C4,-C7, C2,-C3,
C4,-C3, C6, C7,-C4, C1,-C2, C5,
C4,-C3, C6, C7,-C4, C1,-C2, C5,
C4,-C1, C2,-C3, C4,-C5, C6,-C7,
C4,-C1, C2,-C3, C4,-C5, C6,-C7 //g20
};
#undef C0
#undef C1
#undef C2
#undef C3
#undef C4
#undef C5
#undef C6
#undef C7
enum interface {
INTRA_INTERFACE = 0,
FORWARD_INTERFACE,
BACKWARD_INTERFACE,
F_B_INTERFACE,
FIELD_FORWARD_INTERFACE,
FIELD_BACKWARD_INTERFACE,
FIELD_F_B_INTERFACE,
LIB_INTERFACE
};
static uint32_t lib_kernel[][4] = {
#include "shader/vld/lib.g4b"
};
static uint32_t ipicture_kernel[][4] = {
#include "shader/vld/ipicture.g4b"
};
static uint32_t frame_forward_kernel[][4] = {
#include "shader/vld/frame_forward.g4b"
};
static uint32_t frame_backward_kernel[][4] = {
#include "shader/vld/frame_backward.g4b"
};
static uint32_t frame_f_b_kernel[][4] = {
#include "shader/vld/frame_f_b.g4b"
};
static uint32_t field_forward_kernel[][4] = {
#include "shader/vld/field_forward.g4b"
};
static uint32_t field_backward_kernel[][4] = {
#include "shader/vld/field_backward.g4b"
};
static uint32_t field_f_b_kernel[][4] = {
#include "shader/vld/field_f_b.g4b"
};
struct media_kernel {
uint32_t (*bin)[4];
int size;
}media_kernels[] = {
{ipicture_kernel, sizeof(ipicture_kernel)},
{frame_forward_kernel, sizeof(frame_forward_kernel)},
{frame_backward_kernel, sizeof(frame_backward_kernel)},
{frame_f_b_kernel, sizeof(frame_f_b_kernel)},
{field_forward_kernel, sizeof(field_forward_kernel)},
{field_backward_kernel, sizeof(field_backward_kernel)},
{field_f_b_kernel, sizeof(field_f_b_kernel)},
{lib_kernel, sizeof(lib_kernel)}
};
#define MEDIA_KERNEL_NUM (sizeof(media_kernels)/sizeof(media_kernels[0]))
static struct media_state {
unsigned long state_base;
void *state_ptr;
unsigned long vld_state_offset;
unsigned long vfe_state_offset;
unsigned long interface_descriptor_offsets[16];
unsigned long kernel_offsets[MEDIA_KERNEL_NUM];
unsigned long cs_offset;
unsigned long surface_state_offsets[I965_MAX_SURFACES];
unsigned long binding_table_offset;
} media_state;
static int map_buffer(struct drm_memory_block *mem)
{
return drmMap(xvmc_driver->fd, mem->handle, mem->size, &mem->ptr);
}
static void unmap_buffer(struct drm_memory_block *mem)
{
drmUnmap(mem->ptr, mem->size);
}
static void flush()
{
#define FLUSH_STATE_CACHE 1
struct brw_mi_flush f;
memset(&f, 0, sizeof(f));
f.opcode = CMD_MI_FLUSH;
f.flags = (1<<FLUSH_STATE_CACHE);
BATCH_STRUCT(f);
}
static void calc_state_layout()
{
int i;
media_state.vld_state_offset = media_state.state_base;
media_state.vfe_state_offset =
ALIGN(media_state.vld_state_offset + sizeof(struct brw_vld_state), 64);
media_state.interface_descriptor_offsets[0] =
ALIGN(media_state.vfe_state_offset + sizeof(struct brw_vfe_state), 64);
for (i = 1; i < 16; i++)
media_state.interface_descriptor_offsets[i] =
media_state.interface_descriptor_offsets[i - 1]
+ sizeof(struct brw_interface_descriptor);
media_state.binding_table_offset =
ALIGN(media_state.interface_descriptor_offsets[15] +
+ sizeof(struct brw_interface_descriptor), 64);
media_state.surface_state_offsets[0] = ALIGN(media_state.binding_table_offset
+ 4*I965_MAX_SURFACES, 32);
for (i = 1; i < I965_MAX_SURFACES; i++)
media_state.surface_state_offsets[i] =
ALIGN(media_state.surface_state_offsets[i-1]
+ sizeof(struct brw_surface_state), 32);
media_state.kernel_offsets[0] =
ALIGN(media_state.surface_state_offsets[I965_MAX_SURFACES - 1]
+ sizeof(struct brw_surface_state), 64);
for (i = 1; i < MEDIA_KERNEL_NUM; i++)
media_state.kernel_offsets[i] =
ALIGN(media_state.kernel_offsets[i-1] + media_kernels[i-1].size, 64);
media_state.cs_offset = ALIGN(media_state.kernel_offsets[MEDIA_KERNEL_NUM-1]
+ media_kernels[MEDIA_KERNEL_NUM-1].size, 64);
}
static void *offset_to_ptr(unsigned long offset)
{
return media_state.state_ptr +
(offset - media_state.state_base);
}
static void vfe_state()
{
struct brw_vfe_state *vfe_state;
vfe_state = offset_to_ptr(media_state.vfe_state_offset);
memset(vfe_state, 0, sizeof(*vfe_state));
vfe_state->vfe0.extend_vfe_state_present = 1;
vfe_state->vfe1.vfe_mode = VFE_VLD_MODE;
vfe_state->vfe1.num_urb_entries = 1;
vfe_state->vfe1.children_present = 0;
vfe_state->vfe1.urb_entry_alloc_size = 2;
vfe_state->vfe1.max_threads = 31;
vfe_state->vfe2.interface_descriptor_base =
media_state.interface_descriptor_offsets[0] >> 4;
}
static void interface_descriptor()
{
int i;
struct brw_interface_descriptor *desc;
for (i = 0; i < MEDIA_KERNEL_NUM; i++) {
desc = offset_to_ptr(media_state.interface_descriptor_offsets[i]);
memset(desc, 0, sizeof(*desc));
desc->desc0.grf_reg_blocks = 15;
desc->desc0.kernel_start_pointer = media_state.kernel_offsets[i] >> 6;
desc->desc1.const_urb_entry_read_offset = 0;
desc->desc1.const_urb_entry_read_len = 30;
desc->desc3.binding_table_entry_count = I965_MAX_SURFACES - 1;
desc->desc3.binding_table_pointer = media_state.binding_table_offset>>5;
}
}
static void setup_media_kernels()
{
int i;
void *kernel_ptr;
for (i = 0; i < MEDIA_KERNEL_NUM; i++) {
kernel_ptr = offset_to_ptr(media_state.kernel_offsets[i]);
memcpy(kernel_ptr, media_kernels[i].bin, media_kernels[i].size);
}
}
static void binding_tables()
{
unsigned int *table;
int i;
table = offset_to_ptr(media_state.binding_table_offset);
for (i = 0; i < I965_MAX_SURFACES; i++)
table[i] = media_state.surface_state_offsets[i];
}
static void cs_init()
{
void *buf;
unsigned int *lib_reloc;
int i;
buf = offset_to_ptr(media_state.cs_offset);
memcpy(buf + 32*4, idct_table, sizeof(idct_table));
/* idct lib reloction */
lib_reloc = buf + 32*20;
for (i = 0; i < 8; i++)
lib_reloc[i] = media_state.kernel_offsets[LIB_INTERFACE];
}
static Status create_context(Display *display, XvMCContext *context,
int priv_count, CARD32 *priv_data)
{
struct i965_xvmc_context *i965_ctx;
i965_ctx = (struct i965_xvmc_context *)priv_data;
context->privData = priv_data;
if (map_buffer(&i965_ctx->static_buffer))
return BadAlloc;
if (map_buffer(&i965_ctx->slice))
return BadAlloc;
media_state.state_base = i965_ctx->static_buffer.offset;
media_state.state_ptr = i965_ctx->static_buffer.ptr;
calc_state_layout();
vfe_state();
interface_descriptor();
setup_media_kernels();
binding_tables();
cs_init();
return Success;
}
static Status destroy_context(Display *display, XvMCContext *context)
{
struct i965_xvmc_context *i965_ctx;
i965_ctx = context->privData;
unmap_buffer(&i965_ctx->slice);
unmap_buffer(&i965_ctx->static_buffer);
Xfree(i965_ctx);
return Success;
}
static Status create_surface(Display *display,
XvMCContext *context, XvMCSurface *surface, int priv_count,
CARD32 *priv_data)
{
struct i965_xvmc_surface *x;
surface->privData = priv_data;
x = surface->privData;
return Success;
}
static Status destroy_surface(Display *display,
XvMCSurface *surface)
{
return Success;
}
static Status load_qmatrix(Display *display, XvMCContext *context,
const XvMCQMatrix *qmx)
{
unsigned char *qmatrix;
qmatrix = offset_to_ptr(media_state.cs_offset);
memcpy(qmatrix, qmx->intra_quantiser_matrix, 64);
memcpy(qmatrix + 64, qmx->non_intra_quantiser_matrix, 64);
return Success;
}
static Status get_surface_status(Display *display, XvMCSurface *surface,
int *status)
{
*status = 0;
return Success;
}
static void vld_state(const XvMCMpegControl *control)
{
struct brw_vld_state *vld;
vld = offset_to_ptr(media_state.vld_state_offset);
memset(vld, 0, sizeof(*vld));
vld->vld0.f_code_0_0 = control->FHMV_range + 1;
vld->vld0.f_code_0_1 = control->FVMV_range + 1;
vld->vld0.f_code_1_0 = control->BHMV_range + 1;
vld->vld0.f_code_1_1 = control->BVMV_range + 1;
vld->vld0.intra_dc_precision = control->intra_dc_precision;
vld->vld0.picture_structure = control->picture_structure;
vld->vld0.top_field_first = !!(control->flags & XVMC_TOP_FIELD_FIRST);
vld->vld0.frame_predict_frame_dct =
!!(control->flags & XVMC_PRED_DCT_FRAME);
vld->vld0.concealment_motion_vector =
!!(control->flags & XVMC_CONCEALMENT_MOTION_VECTORS);
vld->vld0.quantizer_scale_type = !!(control->flags & XVMC_Q_SCALE_TYPE);
vld->vld0.intra_vlc_format = !!(control->flags & XVMC_INTRA_VLC_FORMAT);
vld->vld0.scan_order = !!(control->flags & XVMC_ALTERNATE_SCAN);
vld->vld1.picture_coding_type = control->picture_coding_type;
vld->desc_remap_table0.index_0 = INTRA_INTERFACE;
vld->desc_remap_table0.index_1 = FORWARD_INTERFACE;
vld->desc_remap_table0.index_2 = FIELD_FORWARD_INTERFACE;
vld->desc_remap_table0.index_3 = FIELD_F_B_INTERFACE; /* dual prime */
vld->desc_remap_table0.index_4 = BACKWARD_INTERFACE;
vld->desc_remap_table0.index_5 = FIELD_BACKWARD_INTERFACE;
vld->desc_remap_table0.index_6 = F_B_INTERFACE;
vld->desc_remap_table0.index_7 = FIELD_F_B_INTERFACE;
vld->desc_remap_table1.index_8 = INTRA_INTERFACE;
vld->desc_remap_table1.index_9 = FORWARD_INTERFACE;
vld->desc_remap_table1.index_10 = FIELD_FORWARD_INTERFACE;
vld->desc_remap_table1.index_11 = FIELD_F_B_INTERFACE;
vld->desc_remap_table1.index_12 = BACKWARD_INTERFACE;
vld->desc_remap_table1.index_13 = FIELD_BACKWARD_INTERFACE;
vld->desc_remap_table1.index_14 = F_B_INTERFACE;
vld->desc_remap_table1.index_15 = FIELD_F_B_INTERFACE;
}
static void setup_media_surface(int binding_table_index,
unsigned long offset, int w, int h)
{
struct brw_surface_state *ss;
ss = offset_to_ptr(media_state.surface_state_offsets[binding_table_index]);
memset(ss, 0, sizeof(*ss));
ss->ss0.surface_type = BRW_SURFACE_2D;
ss->ss0.surface_format = BRW_SURFACEFORMAT_R8_SINT;
ss->ss1.base_addr = offset;
ss->ss2.width = w - 1;
ss->ss2.height = h - 1;
ss->ss3.pitch = w - 1;
}
static void setup_surface(struct i965_xvmc_surface *target,
struct i965_xvmc_surface *past,
struct i965_xvmc_surface *future,
int w, int h)
{
unsigned long dst_offset, past_offset, future_offset;
dst_offset = target->buffer.offset;
setup_media_surface(0, dst_offset, w, h);
setup_media_surface(1, dst_offset + w*h, w/2, h/2);
setup_media_surface(2, dst_offset + w*h + w*h/4, w/2, h/2);
if (past) {
past_offset = past->buffer.offset;
setup_media_surface(4, past_offset, w, h);
setup_media_surface(5, past_offset + w*h, w/2, h/2);
setup_media_surface(6, past_offset + w*h + w*h/4, w/2, h/2);
}
if (future) {
future_offset = future->buffer.offset;
setup_media_surface(7, future_offset, w, h);
setup_media_surface(8, future_offset + w*h, w/2, h/2);
setup_media_surface(9, future_offset + w*h + w*h/4, w/2, h/2);
}
}
static Status begin_surface(Display *display, XvMCContext *context,
XvMCSurface *target,
XvMCSurface *past,
XvMCSurface *future,
const XvMCMpegControl *control)
{
struct i965_xvmc_contex *i965_ctx;
struct i965_xvmc_surface *priv_target, *priv_past, *priv_future;
intel_xvmc_context_ptr intel_ctx;
intel_ctx = intel_xvmc_find_context(context->context_id);
priv_target = target->privData;
priv_past = past?past->privData:NULL;
priv_future = future?future->privData:NULL;
vld_state(control);
setup_surface(priv_target, priv_past, priv_future,
context->width, context->height);
LOCK_HARDWARE(intel_ctx->hw_context);
flush();
UNLOCK_HARDWARE(intel_ctx->hw_context);
return Success;
}
static Status put_slice(Display *display, XvMCContext *context,
unsigned char *slice, int nbytes)
{
return Success;
}
static void state_base_address()
{
BATCH_LOCALS;
BEGIN_BATCH(6);
OUT_BATCH(BRW_STATE_BASE_ADDRESS|4);
OUT_BATCH(0 | BASE_ADDRESS_MODIFY);
OUT_BATCH(0 | BASE_ADDRESS_MODIFY);
OUT_BATCH(0 | BASE_ADDRESS_MODIFY);
OUT_BATCH(0 | BASE_ADDRESS_MODIFY);
OUT_BATCH((0xFFFFF<<12) | BASE_ADDRESS_MODIFY);
ADVANCE_BATCH();
}
static void pipeline_select()
{
BATCH_LOCALS;
BEGIN_BATCH(1);
OUT_BATCH(NEW_PIPELINE_SELECT|PIPELINE_SELECT_MEDIA);
ADVANCE_BATCH();
}
static void media_state_pointers()
{
BATCH_LOCALS;
BEGIN_BATCH(3);
OUT_BATCH(BRW_MEDIA_STATE_POINTERS|1);
OUT_BATCH(media_state.vld_state_offset|1);
OUT_BATCH(media_state.vfe_state_offset);
ADVANCE_BATCH();
}
static void align_urb_fence()
{
BATCH_LOCALS;
int i, offset_to_next_cacheline;
unsigned long batch_offset;
BEGIN_BATCH(3);
batch_offset = (void *)batch_ptr - xvmc_driver->alloc.ptr;
offset_to_next_cacheline = ALIGN(batch_offset, 64) - batch_offset;
if (offset_to_next_cacheline <= 12 && offset_to_next_cacheline != 0) {
for (i = 0; i < offset_to_next_cacheline/4; i++)
OUT_BATCH(0);
ADVANCE_BATCH();
}
}
static void urb_layout()
{
BATCH_LOCALS;
align_urb_fence();
BEGIN_BATCH(3);
OUT_BATCH(BRW_URB_FENCE |
UF0_VFE_REALLOC |
UF0_CS_REALLOC |
UF0_SF_REALLOC |
UF0_CLIP_REALLOC |
UF0_GS_REALLOC |
UF0_VS_REALLOC |
1);
OUT_BATCH((0 << UF1_CLIP_FENCE_SHIFT) |
(0 << UF1_GS_FENCE_SHIFT) |
(0 << UF1_VS_FENCE_SHIFT));
OUT_BATCH((0 << UF2_CS_FENCE_SHIFT) |
(0 << UF2_SF_FENCE_SHIFT) |
((URB_SIZE - CS_SIZE - 1)<< UF2_VFE_FENCE_SHIFT) | /* VFE_SIZE */
((URB_SIZE)<< UF2_CS_FENCE_SHIFT)); /* CS_SIZE */
ADVANCE_BATCH();
}
static void cs_urb_layout()
{
BATCH_LOCALS;
BEGIN_BATCH(2);
OUT_BATCH(BRW_CS_URB_STATE | 0);
OUT_BATCH((CS_SIZE << 4) | /* URB Entry Allocation Size */
(1 << 0)); /* Number of URB Entries */
ADVANCE_BATCH();
}
static void cs_buffer()
{
BATCH_LOCALS;
BEGIN_BATCH(2);
OUT_BATCH(BRW_CONSTANT_BUFFER|0|(1<<8));
OUT_BATCH(media_state.cs_offset|CS_SIZE);
ADVANCE_BATCH();
}
static void vld_send_media_object(unsigned long slice_offset,
int slice_len, int mb_h_pos, int mb_v_pos, int mb_bit_offset,
int mb_count, int q_scale_code)
{
BATCH_LOCALS;
BEGIN_BATCH(6);
OUT_BATCH(BRW_MEDIA_OBJECT|4);
OUT_BATCH(0);
OUT_BATCH(slice_len);
OUT_BATCH(slice_offset);
OUT_BATCH((mb_h_pos<<24)|(mb_v_pos<<16)|(mb_count<<8)|(mb_bit_offset));
OUT_BATCH(q_scale_code<<24);
ADVANCE_BATCH();
}
static Status put_slice2(Display *display, XvMCContext *context,
unsigned char *slice, int nbytes, int sliceCode)
{
unsigned int bit_buf;
intel_xvmc_context_ptr intel_ctx;
struct i965_xvmc_context *i965_ctx;
int q_scale_code, mb_row;
i965_ctx = (struct i965_xvmc_context *)context->privData;
mb_row = *(slice - 1) - 1;
bit_buf = (slice[0]<<24) | (slice[1]<<16) | (slice[2]<<8) | (slice[3]);
q_scale_code = bit_buf>>27;
memcpy(i965_ctx->slice.ptr, slice, nbytes);
intel_ctx = intel_xvmc_find_context(context->context_id);
LOCK_HARDWARE(intel_ctx->hw_context);
state_base_address();
pipeline_select(&media_state);
media_state_pointers(&media_state);
urb_layout();
cs_urb_layout();
cs_buffer();
vld_send_media_object(i965_ctx->slice.offset, nbytes,
0, mb_row, 6, 127, q_scale_code);
intelFlushBatch(TRUE);
UNLOCK_HARDWARE(intel_ctx->hw_context);
return Success;
}
static Status put_surface(Display *display,XvMCSurface *surface,
Drawable draw, short srcx, short srcy,
unsigned short srcw, unsigned short srch,
short destx, short desty,
unsigned short destw, unsigned short desth,
int flags, struct intel_xvmc_command *data)
{
struct i965_xvmc_surface *private_surface =
surface->privData;
data->surf_offset = private_surface->buffer.offset;
return Success;
}
struct _intel_xvmc_driver xvmc_vld_driver = {
.type = XVMC_I965_MPEG2_VLD,
.create_context = create_context,
.destroy_context = destroy_context,
.create_surface = create_surface,
.destroy_surface = destroy_surface,
.load_qmatrix = load_qmatrix,
.get_surface_status = get_surface_status,
.begin_surface = begin_surface,
.put_surface = put_surface,
.put_slice = put_slice,
.put_slice2 = put_slice2
};

1
src/xvmc/xvmc_vld.h Normal file
View File

@ -0,0 +1 @@
#include "i965_xvmc.h"