summary refs log tree commit diff stats
path: root/results/classifier/accel-gemma3:12b/kvm/1637974
blob: f13403fb657ad46b95839f356d72bd05870861ce (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
dead code in pl080 functions

pl080 is arm dma controller virtual device.
source code path: hw/dma/pl080.c
I find there are two same dead code in pl080_read and pl080_write,
Here's the code, comments are my opinion:
=========================
240 static uint64_t pl080_read(void *opaque, hwaddr offset,
241                            unsigned size)
242 {
243     PL080State *s = (PL080State *)opaque;
244     uint32_t i;
245     uint32_t mask;
246 
247     if (offset >= 0xfe0 && offset < 0x1000) {
248         if (s->nchannels == 8) {
249             return pl080_id[(offset - 0xfe0) >> 2];
250         } else {
251             return pl081_id[(offset - 0xfe0) >> 2];
252         }
253     }
254     if (offset >= 0x100 && offset < 0x200) {   //// here offset is limited in 0x100~0x200
255         i = (offset & 0xe0) >> 5;
256         if (i >= s->nchannels)
257             goto bad_offset;
258         switch (offset >> 2) {                 //// then here, offset>>2 is in range  64~128
259         case 0: /* SrcAddr */                  //// while the switch case is 0,1,2,3,4,
260             return s->chan[i].src;             //// so, NONE of the switch case would be selected !
261         case 1: /* DestAddr */                 //// this switch is A DEAD CODE, it is contradictory with if.
262             return s->chan[i].dest;
263         case 2: /* LLI */
264             return s->chan[i].lli;
265         case 3: /* Control */
266             return s->chan[i].ctrl;
267         case 4: /* Configuration */
268             return s->chan[i].conf;
269         default:
270             goto bad_offset;
271         }
272     }
        .....................................
=============================================

I guess, switch statement should like this :
switch((offset-0x100)>>2)
{
...
}