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 79cc12f0f661246c598a2e553c0a1f9e572ad25b..d0794c841ab00d9dc445e6079d3f5c9f70789080 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 50551f46c95e387274dbd04622546d4dc795a54b..873676499bf281fa6cba822a8509928ef0866adc 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 adb3c4d29ec55baa290bcba131d21786fb2b6bc4..60ce231bac5b35ed1ce51e4b817f3a7a8be99797 100644 (file)
@@ -175,6 +175,7 @@ ALU2(DP2)
 ALU2(LINE)
 ALU2(PLN)
 ALU3(MAD)
+ALU3(LRP)
 
 ROUND(RNDZ)
 ROUND(RNDE)
index cf0a8946efa84c2e606a3e95378f393f5314133d..8ed8c4a9ce3df47f3a11d18f807c08ce435f9cc2 100644 (file)
@@ -924,6 +924,7 @@ ALU2(DP2)
 ALU2(LINE)
 ALU2(PLN)
 ALU3(MAD)
+ALU3(LRP)
 
 ROUND(RNDZ)
 ROUND(RNDE)