]>
Commit | Line | Data |
---|---|---|
5482aaab | 1 | /* The arrays are too large for the xstormy16 - won't fit in 16 bits. */ |
fdaea7e2 | 2 | /* { dg-do assemble } */ |
a239aa95 | 3 | /* { dg-require-effective-target size32plus } */ |
a21f9a56 | 4 | /* { dg-skip-if "Array too big" { "avr-*-*" } { "*" } { "" } } */ |
fdaea7e2 | 5 | /* { dg-xfail-if "The array too big" { h8300-*-* } { "-mno-h" "-mn" } { "" } } */ |
5482aaab | 6 | |
dda2e82c JL |
7 | unsigned char TIFFFax2DMode[20][256]; |
8 | unsigned char TIFFFax2DNextState[20][256]; | |
9 | unsigned char TIFFFaxUncompAction[20][256]; | |
10 | unsigned char TIFFFaxUncompNextState[20][256]; | |
11 | unsigned char TIFFFax1DAction[230][256]; | |
12 | unsigned char TIFFFax1DNextState[230][256]; | |
13 | ||
14 | typedef struct tableentry { | |
15 | unsigned short length; | |
16 | unsigned short code; | |
17 | short runlen; | |
18 | } tableentry; | |
19 | ||
20 | extern tableentry TIFFFaxWhiteCodes[]; | |
21 | extern tableentry TIFFFaxBlackCodes[]; | |
22 | ||
23 | static short sp_data, sp_bit; | |
24 | ||
25 | static unsigned char | |
26 | fetchByte (inbuf) | |
27 | ||
28 | unsigned char **inbuf; | |
29 | ||
30 | { | |
31 | unsigned char byte = **inbuf; | |
32 | (*inbuf)++; | |
33 | return (byte); | |
34 | } | |
35 | ||
36 | static int | |
37 | decode_white_run (inbuf) | |
38 | ||
39 | unsigned char **inbuf; | |
40 | ||
41 | { | |
42 | short state = sp_bit; | |
43 | short action; | |
44 | int runlen = 0; | |
45 | ||
46 | for (;;) | |
47 | { | |
48 | if (sp_bit == 0) | |
49 | { | |
50 | nextbyte: | |
51 | sp_data = fetchByte (inbuf); | |
52 | } | |
53 | ||
54 | action = TIFFFax1DAction[state][sp_data]; | |
55 | state = TIFFFax1DNextState[state][sp_data]; | |
56 | if (action == 0 ) | |
57 | goto nextbyte; | |
58 | if (action == 1 ) | |
59 | return (-1 ); | |
60 | if (action == 210 ) | |
61 | return (-3 ); | |
62 | sp_bit = state; | |
63 | action = (TIFFFaxWhiteCodes[ action - 2 ].runlen) ; | |
64 | runlen += action; | |
65 | if (action < 64) | |
66 | return (runlen); | |
67 | } | |
68 | } | |
69 |