summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2010-08-17 19:51:00 -0700
committerEric Anholt <[email protected]>2010-08-17 19:55:14 -0700
commit1cdef8e90a33d982d8ce5ae73eb224e078a2054b (patch)
tree89be81808076847062e0cc90aa9f40d2da216aaa /src
parent03c59e4ab16b0ee362f189b549bd13491dba71e4 (diff)
i965: Throw a link error when we see a "return" in main().
We'll need to use the HALT instruction to do this right, like returns from other functions.
Diffstat (limited to 'src')
-rw-r--r--src/mesa/drivers/dri/i965/brw_program.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_program.c b/src/mesa/drivers/dri/i965/brw_program.c
index c6d11fed064..1cdc8c6411b 100644
--- a/src/mesa/drivers/dri/i965/brw_program.c
+++ b/src/mesa/drivers/dri/i965/brw_program.c
@@ -175,6 +175,14 @@ static GLboolean brwProgramStringNotify( GLcontext *ctx,
"the end of the function to work around it.\n");
return GL_FALSE;
}
+
+ if (prog->Instructions[i].Opcode == OPCODE_RET) {
+ shader_error(ctx, prog,
+ "i965 driver doesn't yet support \"return\" "
+ "from main().\n");
+ return GL_FALSE;
+ }
+
if (prog->Instructions[i].DstReg.RelAddr &&
prog->Instructions[i].DstReg.File == PROGRAM_INPUT) {
shader_error(ctx, prog,