OSDN Git Service

i965: Add support for emitting the LRP instruction.
authorKenneth Graunke <kenneth@whitecape.org>
Sun, 2 Dec 2012 05:49:43 +0000 (21:49 -0800)
committerMatt Turner <mattst88@gmail.com>
Thu, 28 Feb 2013 21:18:59 +0000 (13:18 -0800)
Like MAD, this is another three-source instruction.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_defines.h
src/mesa/drivers/dri/i965/brw_disasm.c
src/mesa/drivers/dri/i965/brw_eu.h
src/mesa/drivers/dri/i965/brw_eu_emit.c

index 79cc12f..d0794c8 100644 (file)
@@ -685,6 +685,7 @@ enum opcode {
    BRW_OPCODE_LINE =   89,
    BRW_OPCODE_PLN =    90,
    BRW_OPCODE_MAD =    91,
+   BRW_OPCODE_LRP =    92,
    BRW_OPCODE_NOP =    126,
 
    /* These are compiler backend opcodes that get translated into other
index 50551f4..8736764 100644 (file)
@@ -50,6 +50,7 @@ const struct opcode_desc opcode_descs[128] = {
     [BRW_OPCODE_LINE] = { .name = "line", .nsrc = 2, .ndst = 1 },
     [BRW_OPCODE_PLN] = { .name = "pln", .nsrc = 2, .ndst = 1 },
     [BRW_OPCODE_MAD] = { .name = "mad", .nsrc = 3, .ndst = 1 },
+    [BRW_OPCODE_LRP] = { .name = "lrp", .nsrc = 3, .ndst = 1 },
     [BRW_OPCODE_SAD2] = { .name = "sad2", .nsrc = 2, .ndst = 1 },
     [BRW_OPCODE_SADA2] = { .name = "sada2", .nsrc = 2, .ndst = 1 },
     [BRW_OPCODE_DP4] = { .name = "dp4", .nsrc = 2, .ndst = 1 },
index adb3c4d..60ce231 100644 (file)
@@ -175,6 +175,7 @@ ALU2(DP2)
 ALU2(LINE)
 ALU2(PLN)
 ALU3(MAD)
+ALU3(LRP)
 
 ROUND(RNDZ)
 ROUND(RNDE)
index cf0a894..8ed8c4a 100644 (file)
@@ -924,6 +924,7 @@ ALU2(DP2)
 ALU2(LINE)
 ALU2(PLN)
 ALU3(MAD)
+ALU3(LRP)
 
 ROUND(RNDZ)
 ROUND(RNDE)