r600: Assert output registers have a valid export index.
authorHenri Verbeet <hverbeet@gmail.com>
Tue, 8 Jun 2010 19:29:04 +0000 (15:29 -0400)
committerAlex Deucher <alexdeucher@gmail.com>
Tue, 8 Jun 2010 19:40:25 +0000 (15:40 -0400)
src/mesa/drivers/dri/r600/r700_assembler.c

index 2e64a5778c9184e6db4d1ea08441c50980fc8555..652fd65995c5481146b9ada13f6f13ce7130af3d 100644 (file)
@@ -2609,6 +2609,8 @@ GLboolean next_ins(r700_AssemblerBase *pAsm)
       
     if(pAsm->D.dst.rtype == DST_REG_OUT) 
     {
+        assert(pAsm->D.dst.reg >= pAsm->starting_export_register_number);
+
         if(pAsm->D.dst.op3) 
         {        
             // There is no mask for OP3 instructions, so all channels are written        
@@ -6347,6 +6349,8 @@ GLboolean Process_Export(r700_AssemblerBase* pAsm,
 
     if (export_count == 1) 
     {
+        assert(starting_register_number >= pAsm->starting_export_register_number);
+
         ucWriteMask = pAsm->pucOutMask[starting_register_number - pAsm->starting_export_register_number];
        /* exports Z as a float into Red channel */
        if (GL_TRUE == is_depth_export)