~ubuntu-branches/ubuntu/precise/mesa/precise-updates

« back to all changes in this revision

Viewing changes to src/mesa/program/program_parse.y

  • Committer: Package Import Robot
  • Author(s): Robert Hooker
  • Date: 2012-02-02 12:05:48 UTC
  • mfrom: (1.7.1) (3.3.27 sid)
  • Revision ID: package-import@ubuntu.com-20120202120548-nvkma85jq0h4coix
Tags: 8.0~rc2-0ubuntu4
Drop drisearchdir handling, it is no longer needed with multiarch
and dri-alternates being removed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
802
802
              break;
803
803
           case at_attrib:
804
804
              set_src_reg(& $$, PROGRAM_INPUT, s->attrib_binding);
805
 
              state->prog->InputsRead |= (1U << $$.Base.Index);
 
805
              state->prog->InputsRead |= BITFIELD64_BIT($$.Base.Index);
806
806
 
807
807
              if (!validate_inputs(& @1, state)) {
808
808
                 YYERROR;
817
817
        | attribBinding
818
818
        {
819
819
           set_src_reg(& $$, PROGRAM_INPUT, $1);
820
 
           state->prog->InputsRead |= (1U << $$.Base.Index);
 
820
           state->prog->InputsRead |= BITFIELD64_BIT($$.Base.Index);
821
821
 
822
822
           if (!validate_inputs(& @1, state)) {
823
823
              YYERROR;
1110
1110
              YYERROR;
1111
1111
           } else {
1112
1112
              s->attrib_binding = $4;
1113
 
              state->InputsBound |= (1U << s->attrib_binding);
 
1113
              state->InputsBound |= BITFIELD64_BIT(s->attrib_binding);
1114
1114
 
1115
1115
              if (!validate_inputs(& @4, state)) {
1116
1116
                 YYERROR;
1854
1854
paramConstScalarDecl: signedFloatConstant
1855
1855
        {
1856
1856
           $$.count = 4;
1857
 
           $$.data[0] = $1;
1858
 
           $$.data[1] = $1;
1859
 
           $$.data[2] = $1;
1860
 
           $$.data[3] = $1;
 
1857
           $$.data[0].f = $1;
 
1858
           $$.data[1].f = $1;
 
1859
           $$.data[2].f = $1;
 
1860
           $$.data[3].f = $1;
1861
1861
        }
1862
1862
        ;
1863
1863
 
1864
1864
paramConstScalarUse: REAL
1865
1865
        {
1866
1866
           $$.count = 1;
1867
 
           $$.data[0] = $1;
1868
 
           $$.data[1] = $1;
1869
 
           $$.data[2] = $1;
1870
 
           $$.data[3] = $1;
 
1867
           $$.data[0].f = $1;
 
1868
           $$.data[1].f = $1;
 
1869
           $$.data[2].f = $1;
 
1870
           $$.data[3].f = $1;
1871
1871
        }
1872
1872
        | INTEGER
1873
1873
        {
1874
1874
           $$.count = 1;
1875
 
           $$.data[0] = (float) $1;
1876
 
           $$.data[1] = (float) $1;
1877
 
           $$.data[2] = (float) $1;
1878
 
           $$.data[3] = (float) $1;
 
1875
           $$.data[0].f = (float) $1;
 
1876
           $$.data[1].f = (float) $1;
 
1877
           $$.data[2].f = (float) $1;
 
1878
           $$.data[3].f = (float) $1;
1879
1879
        }
1880
1880
        ;
1881
1881
 
1882
1882
paramConstVector: '{' signedFloatConstant '}'
1883
1883
        {
1884
1884
           $$.count = 4;
1885
 
           $$.data[0] = $2;
1886
 
           $$.data[1] = 0.0f;
1887
 
           $$.data[2] = 0.0f;
1888
 
           $$.data[3] = 1.0f;
 
1885
           $$.data[0].f = $2;
 
1886
           $$.data[1].f = 0.0f;
 
1887
           $$.data[2].f = 0.0f;
 
1888
           $$.data[3].f = 1.0f;
1889
1889
        }
1890
1890
        | '{' signedFloatConstant ',' signedFloatConstant '}'
1891
1891
        {
1892
1892
           $$.count = 4;
1893
 
           $$.data[0] = $2;
1894
 
           $$.data[1] = $4;
1895
 
           $$.data[2] = 0.0f;
1896
 
           $$.data[3] = 1.0f;
 
1893
           $$.data[0].f = $2;
 
1894
           $$.data[1].f = $4;
 
1895
           $$.data[2].f = 0.0f;
 
1896
           $$.data[3].f = 1.0f;
1897
1897
        }
1898
1898
        | '{' signedFloatConstant ',' signedFloatConstant ','
1899
1899
              signedFloatConstant '}'
1900
1900
        {
1901
1901
           $$.count = 4;
1902
 
           $$.data[0] = $2;
1903
 
           $$.data[1] = $4;
1904
 
           $$.data[2] = $6;
1905
 
           $$.data[3] = 1.0f;
 
1902
           $$.data[0].f = $2;
 
1903
           $$.data[1].f = $4;
 
1904
           $$.data[2].f = $6;
 
1905
           $$.data[3].f = 1.0f;
1906
1906
        }
1907
1907
        | '{' signedFloatConstant ',' signedFloatConstant ','
1908
1908
              signedFloatConstant ',' signedFloatConstant '}'
1909
1909
        {
1910
1910
           $$.count = 4;
1911
 
           $$.data[0] = $2;
1912
 
           $$.data[1] = $4;
1913
 
           $$.data[2] = $6;
1914
 
           $$.data[3] = $8;
 
1911
           $$.data[0].f = $2;
 
1912
           $$.data[1].f = $4;
 
1913
           $$.data[2].f = $6;
 
1914
           $$.data[3].f = $8;
1915
1915
        }
1916
1916
        ;
1917
1917
 
2403
2403
int
2404
2404
validate_inputs(struct YYLTYPE *locp, struct asm_parser_state *state)
2405
2405
{
2406
 
   const int inputs = state->prog->InputsRead | state->InputsBound;
 
2406
   const GLbitfield64 inputs = state->prog->InputsRead | state->InputsBound;
2407
2407
 
2408
 
   if (((inputs & 0x0ffff) & (inputs >> 16)) != 0) {
 
2408
   if (((inputs & VERT_BIT_FF_ALL) & (inputs >> VERT_ATTRIB_GENERIC0)) != 0) {
2409
2409
      yyerror(locp, state, "illegal use of generic attribute and name attribute");
2410
2410
      return 0;
2411
2411
   }
2768
2768
   state->prog->NumInstructions++;
2769
2769
 
2770
2770
   state->prog->NumParameters = state->prog->Parameters->NumParameters;
2771
 
   state->prog->NumAttributes = _mesa_bitcount(state->prog->InputsRead);
 
2771
   state->prog->NumAttributes = _mesa_bitcount_64(state->prog->InputsRead);
2772
2772
 
2773
2773
   /*
2774
2774
    * Initialize native counts to logical counts.  The device driver may