Changeset 675
- Timestamp:
- Sep 9, 2003, 8:27:08 PM (22 years ago)
- Location:
- trunk/testcase
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/testcase/631asm.asm
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.2
r674 r675 14 14 CODE32 segment 15 15 16 ; 57 struct ret16bytes _System asmfoo16(void)17 align 010h 18 19 public asmfoo1620 asmfoo16proc16 ; 107 struct ret16bytes __stdcall asmfoostd16(void) 17 align 010h 18 19 public _asmfoostd16@0 20 _asmfoostd16@0 proc 21 21 push ebp 22 22 mov ebp,esp 23 23 24 ; 60 return ret;25 mov eax,[ebp+08h]; @CBE 426 27 ; 59 struct ret16bytes ret = {1,2,3,4};24 ; 110 return ret; 25 mov eax,[ebp+08h]; @CBE10 26 27 ; 109 struct ret16bytes ret = {1,2,3,4}; 28 28 mov dword ptr [ebp-010h],01h; ret 29 29 mov dword ptr [ebp-0ch],02h; ret 30 30 31 ; 60 return ret;31 ; 110 return ret; 32 32 mov ecx,[ebp-010h]; ret 33 33 mov edx,[ebp-0ch]; ret 34 34 mov [eax],ecx 35 35 36 ; 59 struct ret16bytes ret = {1,2,3,4};36 ; 109 struct ret16bytes ret = {1,2,3,4}; 37 37 mov dword ptr [ebp-08h],03h; ret 38 38 39 ; 60 return ret;39 ; 110 return ret; 40 40 mov [eax+04h],edx 41 41 mov edx,[ebp-08h]; ret 42 42 43 ; 59 struct ret16bytes ret = {1,2,3,4};43 ; 109 struct ret16bytes ret = {1,2,3,4}; 44 44 mov dword ptr [ebp-04h],04h; ret 45 45 46 ; 60 return ret;46 ; 110 return ret; 47 47 mov ecx,[ebp-04h]; ret 48 48 mov [eax+08h],edx 49 49 mov [eax+0ch],ecx 50 50 pop ebp 51 ret 52 asmfoo16endp53 54 ; 51 struct ret12bytes _System asmfoo12(void)55 align 010h 56 57 public asmfoo1258 asmfoo12proc59 60 ; 54 return ret;61 mov eax,[esp+04h]; @CBE 362 63 ; 53 struct ret12bytes ret = {1,2,3};51 ret 04h 52 _asmfoostd16@0 endp 53 54 ; 101 struct ret12bytes __stdcall asmfoostd12(void) 55 align 010h 56 57 public _asmfoostd12@0 58 _asmfoostd12@0 proc 59 60 ; 104 return ret; 61 mov eax,[esp+04h]; @CBE9 62 63 ; 103 struct ret12bytes ret = {1,2,3}; 64 64 mov dword ptr [esp-0ch],01h; ret 65 65 mov dword ptr [esp-08h],02h; ret 66 66 67 ; 54 return ret;67 ; 104 return ret; 68 68 mov edx,[esp-0ch]; ret 69 69 mov ecx,[esp-08h]; ret 70 70 mov [eax],edx 71 71 72 ; 53 struct ret12bytes ret = {1,2,3};72 ; 103 struct ret12bytes ret = {1,2,3}; 73 73 mov dword ptr [esp-04h],03h; ret 74 74 75 ; 54 return ret;75 ; 104 return ret; 76 76 mov [eax+04h],ecx 77 77 mov ecx,[esp-04h]; ret 78 78 mov [eax+08h],ecx 79 ret 80 asmfoo12 endp 81 82 ; 45 struct ret8bytes _System asmfoo8(void) 83 align 010h 84 85 public asmfoo8 86 asmfoo8 proc 87 88 ; 48 return ret; 89 mov eax,[esp+04h]; @CBE2 90 91 ; 47 struct ret8bytes ret = {1,2}; 79 ret 04h 80 _asmfoostd12@0 endp 81 82 ; 95 struct ret8bytes __stdcall asmfoostd8(void) 83 align 010h 84 85 public _asmfoostd8@0 86 _asmfoostd8@0 proc 87 88 ; 97 struct ret8bytes ret = {1,2}; 92 89 mov dword ptr [esp-08h],01h; ret 93 90 mov dword ptr [esp-04h],02h; ret 94 91 95 ; 48 return ret; 92 ; 98 return ret; 93 mov eax,[esp-08h]; ret 94 mov edx,[esp-04h]; ret 95 ret 96 _asmfoostd8@0 endp 97 98 ; 89 struct ret4bytes __stdcall asmfoostd4(void) 99 align 010h 100 101 public _asmfoostd4@0 102 _asmfoostd4@0 proc 103 104 ; 91 struct ret4bytes ret = {1}; 105 mov dword ptr [esp-04h],01h; ret 106 107 ; 92 return ret; 108 mov eax,[esp-04h]; ret 109 ret 110 _asmfoostd4@0 endp 111 112 ; 81 struct ret16bytes _Optlink asmfooopt16(void) 113 align 010h 114 115 public asmfooopt16 116 asmfooopt16 proc 117 push ebp 118 mov ebp,esp 119 120 ; 84 return ret; 121 mov eax,[ebp+08h]; @CBE8 122 123 ; 83 struct ret16bytes ret = {1,2,3,4}; 124 mov dword ptr [ebp-010h],01h; ret 125 mov dword ptr [ebp-0ch],02h; ret 126 127 ; 84 return ret; 128 mov ecx,[ebp-010h]; ret 129 mov edx,[ebp-0ch]; ret 130 mov [eax],ecx 131 132 ; 83 struct ret16bytes ret = {1,2,3,4}; 133 mov dword ptr [ebp-08h],03h; ret 134 135 ; 84 return ret; 136 mov [eax+04h],edx 137 mov edx,[ebp-08h]; ret 138 139 ; 83 struct ret16bytes ret = {1,2,3,4}; 140 mov dword ptr [ebp-04h],04h; ret 141 142 ; 84 return ret; 143 mov ecx,[ebp-04h]; ret 144 mov [eax+08h],edx 145 mov [eax+0ch],ecx 146 pop ebp 147 ret 148 asmfooopt16 endp 149 150 ; 75 struct ret12bytes _Optlink asmfooopt12(void) 151 align 010h 152 153 public asmfooopt12 154 asmfooopt12 proc 155 156 ; 78 return ret; 157 mov eax,[esp+04h]; @CBE7 158 159 ; 77 struct ret12bytes ret = {1,2,3}; 160 mov dword ptr [esp-0ch],01h; ret 161 mov dword ptr [esp-08h],02h; ret 162 163 ; 78 return ret; 164 mov edx,[esp-0ch]; ret 165 mov ecx,[esp-08h]; ret 166 mov [eax],edx 167 168 ; 77 struct ret12bytes ret = {1,2,3}; 169 mov dword ptr [esp-04h],03h; ret 170 171 ; 78 return ret; 172 mov [eax+04h],ecx 173 mov ecx,[esp-04h]; ret 174 mov [eax+08h],ecx 175 ret 176 asmfooopt12 endp 177 178 ; 69 struct ret8bytes _Optlink asmfooopt8(void) 179 align 010h 180 181 public asmfooopt8 182 asmfooopt8 proc 183 184 ; 72 return ret; 185 mov eax,[esp+04h]; @CBE6 186 187 ; 71 struct ret8bytes ret = {1,2}; 188 mov dword ptr [esp-08h],01h; ret 189 mov dword ptr [esp-04h],02h; ret 190 191 ; 72 return ret; 96 192 mov edx,[esp-08h]; ret 97 193 mov ecx,[esp-04h]; ret … … 99 195 mov [eax+04h],ecx 100 196 ret 101 asmfoo8 endp 102 103 ; 39 struct ret4bytes _System asmfoo4(void) 104 align 010h 105 106 public asmfoo4 107 asmfoo4 proc 108 109 ; 42 return ret; 197 asmfooopt8 endp 198 199 ; 63 struct ret4bytes _Optlink asmfooopt4(void) 200 align 010h 201 202 public asmfooopt4 203 asmfooopt4 proc 204 205 ; 66 return ret; 206 mov eax,[esp+04h]; @CBE5 207 208 ; 65 struct ret4bytes ret = {1}; 209 mov dword ptr [esp-04h],01h; ret 210 211 ; 66 return ret; 212 mov ecx,[esp-04h]; ret 213 mov [eax],ecx 214 ret 215 asmfooopt4 endp 216 217 ; 56 struct ret16bytes _System asmfoosys16(void) 218 align 010h 219 220 public asmfoosys16 221 asmfoosys16 proc 222 push ebp 223 mov ebp,esp 224 225 ; 59 return ret; 226 mov eax,[ebp+08h]; @CBE4 227 228 ; 58 struct ret16bytes ret = {1,2,3,4}; 229 mov dword ptr [ebp-010h],01h; ret 230 mov dword ptr [ebp-0ch],02h; ret 231 232 ; 59 return ret; 233 mov ecx,[ebp-010h]; ret 234 mov edx,[ebp-0ch]; ret 235 mov [eax],ecx 236 237 ; 58 struct ret16bytes ret = {1,2,3,4}; 238 mov dword ptr [ebp-08h],03h; ret 239 240 ; 59 return ret; 241 mov [eax+04h],edx 242 mov edx,[ebp-08h]; ret 243 244 ; 58 struct ret16bytes ret = {1,2,3,4}; 245 mov dword ptr [ebp-04h],04h; ret 246 247 ; 59 return ret; 248 mov ecx,[ebp-04h]; ret 249 mov [eax+08h],edx 250 mov [eax+0ch],ecx 251 pop ebp 252 ret 253 asmfoosys16 endp 254 255 ; 50 struct ret12bytes _System asmfoosys12(void) 256 align 010h 257 258 public asmfoosys12 259 asmfoosys12 proc 260 261 ; 53 return ret; 262 mov eax,[esp+04h]; @CBE3 263 264 ; 52 struct ret12bytes ret = {1,2,3}; 265 mov dword ptr [esp-0ch],01h; ret 266 mov dword ptr [esp-08h],02h; ret 267 268 ; 53 return ret; 269 mov edx,[esp-0ch]; ret 270 mov ecx,[esp-08h]; ret 271 mov [eax],edx 272 273 ; 52 struct ret12bytes ret = {1,2,3}; 274 mov dword ptr [esp-04h],03h; ret 275 276 ; 53 return ret; 277 mov [eax+04h],ecx 278 mov ecx,[esp-04h]; ret 279 mov [eax+08h],ecx 280 ret 281 asmfoosys12 endp 282 283 ; 44 struct ret8bytes _System asmfoosys8(void) 284 align 010h 285 286 public asmfoosys8 287 asmfoosys8 proc 288 289 ; 47 return ret; 290 mov eax,[esp+04h]; @CBE2 291 292 ; 46 struct ret8bytes ret = {1,2}; 293 mov dword ptr [esp-08h],01h; ret 294 mov dword ptr [esp-04h],02h; ret 295 296 ; 47 return ret; 297 mov edx,[esp-08h]; ret 298 mov ecx,[esp-04h]; ret 299 mov [eax],edx 300 mov [eax+04h],ecx 301 ret 302 asmfoosys8 endp 303 304 ; 38 struct ret4bytes _System asmfoosys4(void) 305 align 010h 306 307 public asmfoosys4 308 asmfoosys4 proc 309 310 ; 41 return ret; 110 311 mov eax,[esp+04h]; @CBE1 111 312 112 ; 4 1struct ret4bytes ret = {1};313 ; 40 struct ret4bytes ret = {1}; 113 314 mov dword ptr [esp-04h],01h; ret 114 315 115 ; 42 return ret; 116 mov ecx,[esp-04h]; ret 117 mov [eax],ecx 118 ret 119 asmfoo4 endp 316 ; 41 return ret; 317 mov ecx,[esp-04h]; ret 318 mov [eax],ecx 319 ret 320 asmfoosys4 endp 321 322 323 324 325 public _asmfoodef4_gcc 326 _asmfoodef4_gcc: 327 mov eax, 1 328 ret 329 330 public _asmfoodef8_gcc 331 _asmfoodef8_gcc: 332 mov eax, 1 333 mov edx, 2 334 ret 335 336 public _asmfoodef12_gcc 337 _asmfoodef12_gcc: 338 push ebp 339 mov ebp, esp 340 sub esp, 24 341 mov eax, [ebp + 8] 342 mov dword ptr [eax + 0], 1 343 mov dword ptr [eax + 4], 2 344 mov dword ptr [eax + 8], 3 345 leave 346 ret 4 347 348 public _asmfoodef16_gcc 349 _asmfoodef16_gcc: 350 push ebp 351 mov ebp, esp 352 sub esp, 24 353 mov eax, [ebp + 8] 354 mov dword ptr [eax + 0], 1 355 mov dword ptr [eax + 4], 2 356 mov dword ptr [eax + 8], 3 357 mov dword ptr [eax +12], 4 358 leave 359 ret 4 360 120 361 CODE32 ends 121 362 end -
Property cvs2svn:cvs-rev
changed from
-
trunk/testcase/631asmc.c
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.2
r674 r675 36 36 37 37 38 39 struct ret4bytes _System asmfoo4(void) 38 struct ret4bytes _System asmfoosys4(void) 40 39 { 41 40 struct ret4bytes ret = {1}; … … 43 42 } 44 43 45 struct ret8bytes _System asmfoo 8(void)44 struct ret8bytes _System asmfoosys8(void) 46 45 { 47 46 struct ret8bytes ret = {1,2}; … … 49 48 } 50 49 51 struct ret12bytes _System asmfoo 12(void)50 struct ret12bytes _System asmfoosys12(void) 52 51 { 53 52 struct ret12bytes ret = {1,2,3}; … … 55 54 } 56 55 57 struct ret16bytes _System asmfoo 16(void)56 struct ret16bytes _System asmfoosys16(void) 58 57 { 59 58 struct ret16bytes ret = {1,2,3,4}; … … 61 60 } 62 61 62 /* optlink */ 63 struct ret4bytes _Optlink asmfooopt4(void) 64 { 65 struct ret4bytes ret = {1}; 66 return ret; 67 } 68 69 struct ret8bytes _Optlink asmfooopt8(void) 70 { 71 struct ret8bytes ret = {1,2}; 72 return ret; 73 } 74 75 struct ret12bytes _Optlink asmfooopt12(void) 76 { 77 struct ret12bytes ret = {1,2,3}; 78 return ret; 79 } 80 81 struct ret16bytes _Optlink asmfooopt16(void) 82 { 83 struct ret16bytes ret = {1,2,3,4}; 84 return ret; 85 } 86 87 88 /* stdcall */ 89 struct ret4bytes __stdcall asmfoostd4(void) 90 { 91 struct ret4bytes ret = {1}; 92 return ret; 93 } 94 95 struct ret8bytes __stdcall asmfoostd8(void) 96 { 97 struct ret8bytes ret = {1,2}; 98 return ret; 99 } 100 101 struct ret12bytes __stdcall asmfoostd12(void) 102 { 103 struct ret12bytes ret = {1,2,3}; 104 return ret; 105 } 106 107 struct ret16bytes __stdcall asmfoostd16(void) 108 { 109 struct ret16bytes ret = {1,2,3,4}; 110 return ret; 111 } 112 -
Property cvs2svn:cvs-rev
changed from
-
trunk/testcase/631main.c
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.2
r674 r675 12 12 */ 13 13 14 14 /******************************************************************************* 15 * Defined Constants And Macros * 16 *******************************************************************************/ 17 #if defined(__IBMC__) || defined(__IBMCPP__) 18 #define DEF(a) a##_vac 19 #else 20 #define DEF(a) a##_gcc 21 #endif 15 22 16 23 … … 42 49 * External Functions * 43 50 *******************************************************************************/ 44 extern struct ret4bytes _System asmfoo4(void); 45 extern struct ret8bytes _System asmfoo8(void); 46 extern struct ret12bytes _System asmfoo12(void); 47 extern struct ret16bytes _System asmfoo16(void); 48 49 struct ret4bytes _System foo4(void) 51 extern struct ret4bytes _System asmfoosys4(void); 52 extern struct ret8bytes _System asmfoosys8(void); 53 extern struct ret12bytes _System asmfoosys12(void); 54 extern struct ret16bytes _System asmfoosys16(void); 55 extern struct ret4bytes _Optlink asmfooopt4(void); 56 extern struct ret8bytes _Optlink asmfooopt8(void); 57 extern struct ret12bytes _Optlink asmfooopt12(void); 58 extern struct ret16bytes _Optlink asmfooopt16(void); 59 extern struct ret4bytes __stdcall asmfoostd4(void); 60 extern struct ret8bytes __stdcall asmfoostd8(void); 61 extern struct ret12bytes __stdcall asmfoostd12(void); 62 extern struct ret16bytes __stdcall asmfoostd16(void); 63 extern struct ret4bytes DEF(asmfoodef4)(void); 64 extern struct ret8bytes DEF(asmfoodef8)(void); 65 extern struct ret12bytes DEF(asmfoodef12)(void); 66 extern struct ret16bytes DEF(asmfoodef16)(void); 67 68 struct ret4bytes _System foosys4(void) 50 69 { 51 70 struct ret4bytes ret = {1}; … … 53 72 } 54 73 55 struct ret8bytes _System foo 8(void)74 struct ret8bytes _System foosys8(void) 56 75 { 57 76 struct ret8bytes ret = {1,2}; … … 59 78 } 60 79 61 struct ret12bytes _System foo 12(void)80 struct ret12bytes _System foosys12(void) 62 81 { 63 82 struct ret12bytes ret = {1,2,3}; … … 65 84 } 66 85 67 struct ret16bytes _System foo 16(void)86 struct ret16bytes _System foosys16(void) 68 87 { 69 88 struct ret16bytes ret = {1,2,3,4}; 70 89 return ret; 71 90 } 91 92 /* optlink */ 93 struct ret4bytes _Optlink fooopt4(void) 94 { 95 struct ret4bytes ret = {1}; 96 return ret; 97 } 98 99 struct ret8bytes _Optlink fooopt8(void) 100 { 101 struct ret8bytes ret = {1,2}; 102 return ret; 103 } 104 105 struct ret12bytes _Optlink fooopt12(void) 106 { 107 struct ret12bytes ret = {1,2,3}; 108 return ret; 109 } 110 111 struct ret16bytes _Optlink fooopt16(void) 112 { 113 struct ret16bytes ret = {1,2,3,4}; 114 return ret; 115 } 116 117 118 /* stdcall */ 119 struct ret4bytes __stdcall foostd4(void) 120 { 121 struct ret4bytes ret = {1}; 122 return ret; 123 } 124 125 struct ret8bytes __stdcall foostd8(void) 126 { 127 struct ret8bytes ret = {1,2}; 128 return ret; 129 } 130 131 struct ret12bytes __stdcall foostd12(void) 132 { 133 struct ret12bytes ret = {1,2,3}; 134 return ret; 135 } 136 137 struct ret16bytes __stdcall foostd16(void) 138 { 139 struct ret16bytes ret = {1,2,3,4}; 140 return ret; 141 } 142 143 144 145 /* default */ 146 struct ret4bytes foodef4(void) 147 { 148 struct ret4bytes ret = {1}; 149 return ret; 150 } 151 152 struct ret8bytes foodef8(void) 153 { 154 struct ret8bytes ret = {1,2}; 155 return ret; 156 } 157 158 struct ret12bytes foodef12(void) 159 { 160 struct ret12bytes ret = {1,2,3}; 161 return ret; 162 } 163 164 struct ret16bytes foodef16(void) 165 { 166 struct ret16bytes ret = {1,2,3,4}; 167 return ret; 168 } 169 170 72 171 73 172 … … 83 182 /* gcc */ 84 183 memset(&rc4, 0, sizeof(rc4)); 85 rc4 = foo 4();86 if (rc4.au[0] != 1) 87 { 88 printf("631main: foo 4 failed\n");89 rcRet++; 90 } 91 92 memset(&rc8, 0, sizeof(rc8)); 93 rc8 = foo 8();94 if (rc8.au[0] != 1 && rc8.au[1] != 2) 95 { 96 printf("631main: foo 8 failed\n");97 rcRet++; 98 } 99 100 memset(&rc12, 0, sizeof(rc12)); 101 rc12 = foo 12();102 if (rc12.au[0] != 1 && rc12.au[1] != 2 && rc16.au[2] != 3) 103 { 104 printf("631main: foo 12 failed\n");105 rcRet++; 106 } 107 108 memset(&rc16, 0, sizeof(rc16)); 109 rc16 = foo 16();110 if (rc16.au[0] != 1 && rc16.au[1] != 2 && rc16.au[2] != 3 && rc16.au[3] != 4) 111 { 112 printf("631main: foo 12 failed\n");184 rc4 = foosys4(); 185 if (rc4.au[0] != 1) 186 { 187 printf("631main: foosys4 failed\n"); 188 rcRet++; 189 } 190 191 memset(&rc8, 0, sizeof(rc8)); 192 rc8 = foosys8(); 193 if (rc8.au[0] != 1 && rc8.au[1] != 2) 194 { 195 printf("631main: foosys8 failed\n"); 196 rcRet++; 197 } 198 199 memset(&rc12, 0, sizeof(rc12)); 200 rc12 = foosys12(); 201 if (rc12.au[0] != 1 && rc12.au[1] != 2 && rc16.au[2] != 3) 202 { 203 printf("631main: foosys12 failed\n"); 204 rcRet++; 205 } 206 207 memset(&rc16, 0, sizeof(rc16)); 208 rc16 = foosys16(); 209 if (rc16.au[0] != 1 && rc16.au[1] != 2 && rc16.au[2] != 3 && rc16.au[3] != 4) 210 { 211 printf("631main: foosys12 failed\n"); 113 212 rcRet++; 114 213 } … … 116 215 /* asm */ 117 216 memset(&rc4, 0, sizeof(rc4)); 118 rc4 = asmfoo4(); 119 if (rc4.au[0] != 1) 120 { 121 printf("631main: asmfoo4 failed\n"); 122 rcRet++; 123 } 124 125 memset(&rc8, 0, sizeof(rc8)); 126 rc8 = asmfoo8(); 127 if (rc8.au[0] != 1 && rc8.au[1] != 2) 128 { 129 printf("631main: asmfoo8 failed\n"); 130 rcRet++; 131 } 132 133 memset(&rc12, 0, sizeof(rc12)); 134 rc12 = asmfoo12(); 135 if (rc12.au[0] != 1 && rc12.au[1] != 2 && rc16.au[2] != 3) 136 { 137 printf("631main: asmfoo12 failed\n"); 138 rcRet++; 139 } 140 141 memset(&rc16, 0, sizeof(rc16)); 142 rc16 = asmfoo16(); 143 if (rc16.au[0] != 1 && rc16.au[1] != 2 && rc16.au[2] != 3 && rc16.au[3] != 4) 144 { 145 printf("631main: asmfoo12 failed\n"); 146 rcRet++; 147 } 148 217 rc4 = asmfoosys4(); 218 if (rc4.au[0] != 1) 219 { 220 printf("631main: asmfoosys4 failed\n"); 221 rcRet++; 222 } 223 224 memset(&rc8, 0, sizeof(rc8)); 225 rc8 = asmfoosys8(); 226 if (rc8.au[0] != 1 && rc8.au[1] != 2) 227 { 228 printf("631main: asmfoosys8 failed\n"); 229 rcRet++; 230 } 231 232 memset(&rc12, 0, sizeof(rc12)); 233 rc12 = asmfoosys12(); 234 if (rc12.au[0] != 1 && rc12.au[1] != 2 && rc16.au[2] != 3) 235 { 236 printf("631main: asmfoosys12 failed\n"); 237 rcRet++; 238 } 239 240 memset(&rc16, 0, sizeof(rc16)); 241 rc16 = asmfoosys16(); 242 if (rc16.au[0] != 1 && rc16.au[1] != 2 && rc16.au[2] != 3 && rc16.au[3] != 4) 243 { 244 printf("631main: asmfoosys12 failed\n"); 245 rcRet++; 246 } 247 248 249 /* 250 * _Optlink 251 */ 252 /* gcc */ 253 memset(&rc4, 0, sizeof(rc4)); 254 rc4 = fooopt4(); 255 if (rc4.au[0] != 1) 256 { 257 printf("631main: fooopt4 failed\n"); 258 rcRet++; 259 } 260 261 memset(&rc8, 0, sizeof(rc8)); 262 rc8 = fooopt8(); 263 if (rc8.au[0] != 1 && rc8.au[1] != 2) 264 { 265 printf("631main: fooopt8 failed\n"); 266 rcRet++; 267 } 268 269 memset(&rc12, 0, sizeof(rc12)); 270 rc12 = fooopt12(); 271 if (rc12.au[0] != 1 && rc12.au[1] != 2 && rc16.au[2] != 3) 272 { 273 printf("631main: fooopt12 failed\n"); 274 rcRet++; 275 } 276 277 memset(&rc16, 0, sizeof(rc16)); 278 rc16 = fooopt16(); 279 if (rc16.au[0] != 1 && rc16.au[1] != 2 && rc16.au[2] != 3 && rc16.au[3] != 4) 280 { 281 printf("631main: fooopt12 failed\n"); 282 rcRet++; 283 } 284 285 /* asm */ 286 memset(&rc4, 0, sizeof(rc4)); 287 rc4 = asmfooopt4(); 288 if (rc4.au[0] != 1) 289 { 290 printf("631main: asmfooopt4 failed\n"); 291 rcRet++; 292 } 293 294 memset(&rc8, 0, sizeof(rc8)); 295 rc8 = asmfooopt8(); 296 if (rc8.au[0] != 1 && rc8.au[1] != 2) 297 { 298 printf("631main: asmfooopt8 failed\n"); 299 rcRet++; 300 } 301 302 memset(&rc12, 0, sizeof(rc12)); 303 rc12 = asmfooopt12(); 304 if (rc12.au[0] != 1 && rc12.au[1] != 2 && rc16.au[2] != 3) 305 { 306 printf("631main: asmfooopt12 failed\n"); 307 rcRet++; 308 } 309 310 memset(&rc16, 0, sizeof(rc16)); 311 rc16 = asmfooopt16(); 312 if (rc16.au[0] != 1 && rc16.au[1] != 2 && rc16.au[2] != 3 && rc16.au[3] != 4) 313 { 314 printf("631main: asmfooopt12 failed\n"); 315 rcRet++; 316 } 317 318 319 /* 320 * __stdcall 321 */ 322 /* gcc */ 323 memset(&rc4, 0, sizeof(rc4)); 324 rc4 = foostd4(); 325 if (rc4.au[0] != 1) 326 { 327 printf("631main: foostd4 failed\n"); 328 rcRet++; 329 } 330 331 memset(&rc8, 0, sizeof(rc8)); 332 rc8 = foostd8(); 333 if (rc8.au[0] != 1 && rc8.au[1] != 2) 334 { 335 printf("631main: foostd8 failed\n"); 336 rcRet++; 337 } 338 339 memset(&rc12, 0, sizeof(rc12)); 340 rc12 = foostd12(); 341 if (rc12.au[0] != 1 && rc12.au[1] != 2 && rc16.au[2] != 3) 342 { 343 printf("631main: foostd12 failed\n"); 344 rcRet++; 345 } 346 347 memset(&rc16, 0, sizeof(rc16)); 348 rc16 = foostd16(); 349 if (rc16.au[0] != 1 && rc16.au[1] != 2 && rc16.au[2] != 3 && rc16.au[3] != 4) 350 { 351 printf("631main: foostd12 failed\n"); 352 rcRet++; 353 } 354 355 /* asm */ 356 memset(&rc4, 0, sizeof(rc4)); 357 rc4 = asmfoostd4(); 358 if (rc4.au[0] != 1) 359 { 360 printf("631main: asmfoostd4 failed\n"); 361 rcRet++; 362 } 363 364 memset(&rc8, 0, sizeof(rc8)); 365 rc8 = asmfoostd8(); 366 if (rc8.au[0] != 1 && rc8.au[1] != 2) 367 { 368 printf("631main: asmfoostd8 failed\n"); 369 rcRet++; 370 } 371 372 memset(&rc12, 0, sizeof(rc12)); 373 rc12 = asmfoostd12(); 374 if (rc12.au[0] != 1 && rc12.au[1] != 2 && rc16.au[2] != 3) 375 { 376 printf("631main: asmfoostd12 failed\n"); 377 rcRet++; 378 } 379 380 memset(&rc16, 0, sizeof(rc16)); 381 rc16 = asmfoostd16(); 382 if (rc16.au[0] != 1 && rc16.au[1] != 2 && rc16.au[2] != 3 && rc16.au[3] != 4) 383 { 384 printf("631main: asmfoostd12 failed\n"); 385 rcRet++; 386 } 387 388 389 /* 390 * Default 391 */ 392 /* gcc */ 393 memset(&rc4, 0, sizeof(rc4)); 394 rc4 = foodef4(); 395 if (rc4.au[0] != 1) 396 { 397 printf("631main: foodef4 failed\n"); 398 rcRet++; 399 } 400 401 memset(&rc8, 0, sizeof(rc8)); 402 rc8 = foodef8(); 403 if (rc8.au[0] != 1 && rc8.au[1] != 2) 404 { 405 printf("631main: foodef8 failed\n"); 406 rcRet++; 407 } 408 409 memset(&rc12, 0, sizeof(rc12)); 410 rc12 = foodef12(); 411 if (rc12.au[0] != 1 && rc12.au[1] != 2 && rc16.au[2] != 3) 412 { 413 printf("631main: foodef12 failed\n"); 414 rcRet++; 415 } 416 417 memset(&rc16, 0, sizeof(rc16)); 418 rc16 = foodef16(); 419 if (rc16.au[0] != 1 && rc16.au[1] != 2 && rc16.au[2] != 3 && rc16.au[3] != 4) 420 { 421 printf("631main: foodef12 failed\n"); 422 rcRet++; 423 } 424 425 /* asm */ 426 memset(&rc4, 0, sizeof(rc4)); 427 rc4 = DEF(asmfoodef4)(); 428 if (rc4.au[0] != 1) 429 { 430 printf("631main: asmfoodef4 failed\n"); 431 rcRet++; 432 } 433 434 memset(&rc8, 0, sizeof(rc8)); 435 rc8 = DEF(asmfoodef8)(); 436 if (rc8.au[0] != 1 && rc8.au[1] != 2) 437 { 438 printf("631main: asmfoodef8 failed\n"); 439 rcRet++; 440 } 441 442 memset(&rc12, 0, sizeof(rc12)); 443 rc12 = DEF(asmfoodef12)(); 444 if (rc12.au[0] != 1 && rc12.au[1] != 2 && rc16.au[2] != 3) 445 { 446 printf("631main: asmfoodef12 failed\n"); 447 rcRet++; 448 } 449 450 memset(&rc16, 0, sizeof(rc16)); 451 rc16 = DEF(asmfoodef16)(); 452 if (rc16.au[0] != 1 && rc16.au[1] != 2 && rc16.au[2] != 3 && rc16.au[3] != 4) 453 { 454 printf("631main: asmfoodef12 failed\n"); 455 rcRet++; 456 } 457 458 459 /* results */ 149 460 if (!rcRet) 150 461 printf("Successfully executed return struct testcase (#631).\n"); -
Property cvs2svn:cvs-rev
changed from
Note:
See TracChangeset
for help on using the changeset viewer.