~rsandifo/+junk/loop-microbenchmarks

« back to all changes in this revision

Viewing changes to spec/libav/qtrle.txt

  • Committer: Richard Sandiford
  • Date: 2011-09-02 13:13:41 UTC
  • Revision ID: richard.sandiford@linaro.org-20110902131341-3t2rxnd017t877p8
Initial commit.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
count 512
 
2
repeat 60
 
3
arrays {
 
4
  uint8_t buf[COUNT * 4];
 
5
  uint8_t rgb[COUNT * 4];
 
6
}
 
7
inputs {
 
8
  int rle_code = COUNT;
 
9
}
 
10
loop {
 
11
  int stream_ptr, pixel_ptr;
 
12
 
 
13
  stream_ptr = 0;
 
14
  pixel_ptr = 0;
 
15
  while (rle_code--)
 
16
    {
 
17
      unsigned char a, r, g, b;
 
18
      unsigned int argb;
 
19
 
 
20
      a = buf[stream_ptr++];
 
21
      r = buf[stream_ptr++];
 
22
      g = buf[stream_ptr++];
 
23
      b = buf[stream_ptr++];
 
24
      argb = (a << 24) | (r << 16) | (g << 8) | (b << 0);
 
25
      *(unsigned int *)(&rgb[pixel_ptr]) = argb;
 
26
      pixel_ptr += 4;
 
27
    }
 
28
}