Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(572)

Side by Side Diff: sim/cr16/simops.c

Issue 11969036: Merge GDB 7.5.1 (Closed) Base URL: http://git.chromium.org/native_client/nacl-gdb.git@master
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « sim/cr16/interp.c ('k') | sim/cris/ChangeLog » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* Simulation code for the CR16 processor. 1 /* Simulation code for the CR16 processor.
2 Copyright (C) 2008-2012 Free Software Foundation, Inc. 2 Copyright (C) 2008-2012 Free Software Foundation, Inc.
3 Contributed by M Ranga Swami Reddy <MR.Swami.Reddy@nsc.com> 3 Contributed by M Ranga Swami Reddy <MR.Swami.Reddy@nsc.com>
4 4
5 This file is part of GDB, the GNU debugger. 5 This file is part of GDB, the GNU debugger.
6 6
7 This program is free software; you can redistribute it and/or modify 7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by 8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3, or (at your option) 9 the Free Software Foundation; either version 3, or (at your option)
10 any later version. 10 any later version.
(...skipping 5113 matching lines...) Expand 10 before | Expand all | Expand 10 after
5124 #define RETVAL32(X) do { result = (X); SET_GPR32 (0, result);} while (0) 5124 #define RETVAL32(X) do { result = (X); SET_GPR32 (0, result);} while (0)
5125 #define RETERR(X) SET_GPR (4, (X)) /* return error code. */ 5125 #define RETERR(X) SET_GPR (4, (X)) /* return error code. */
5126 5126
5127 /* Turn a pointer in a register into a pointer into real memory. */ 5127 /* Turn a pointer in a register into a pointer into real memory. */
5128 5128
5129 #define MEMPTR(x) ((char *)(dmem_addr(x))) 5129 #define MEMPTR(x) ((char *)(dmem_addr(x)))
5130 5130
5131 switch (FUNC) 5131 switch (FUNC)
5132 { 5132 {
5133 #if !defined(__GO32__) && !defined(_WIN32) 5133 #if !defined(__GO32__) && !defined(_WIN32)
5134 #ifdef TARGET_SYS_fork
5134 case TARGET_SYS_fork: 5135 case TARGET_SYS_fork:
5135 trace_input ("<fork>", OP_VOID, OP_VOID, OP_VOID); 5136 trace_input ("<fork>", OP_VOID, OP_VOID, OP_VOID);
5136 RETVAL (fork ()); 5137 RETVAL (fork ());
5137 trace_output_16 (result); 5138 trace_output_16 (result);
5138 break; 5139 break;
5140 #endif
5139 5141
5140 #define getpid() 47 5142 #define getpid() 47
5141 case TARGET_SYS_getpid: 5143 case TARGET_SYS_getpid:
5142 trace_input ("<getpid>", OP_VOID, OP_VOID, OP_VOID); 5144 trace_input ("<getpid>", OP_VOID, OP_VOID, OP_VOID);
5143 RETVAL (getpid ()); 5145 RETVAL (getpid ());
5144 trace_output_16 (result); 5146 trace_output_16 (result);
5145 break; 5147 break;
5146 5148
5147 case TARGET_SYS_kill: 5149 case TARGET_SYS_kill:
5148 trace_input ("<kill>", OP_REG, OP_REG, OP_VOID); 5150 trace_input ("<kill>", OP_REG, OP_REG, OP_VOID);
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
5265 State.exception = SIGILL; 5267 State.exception = SIGILL;
5266 } 5268 }
5267 else 5269 else
5268 { 5270 {
5269 RETVAL (kill (PARM1, PARM2)); 5271 RETVAL (kill (PARM1, PARM2));
5270 trace_output_16 (result); 5272 trace_output_16 (result);
5271 } 5273 }
5272 } 5274 }
5273 break; 5275 break;
5274 5276
5277 #ifdef TARGET_SYS_execve
5275 case TARGET_SYS_execve: 5278 case TARGET_SYS_execve:
5276 trace_input ("<execve>", OP_VOID, OP_VOID, OP_VOID); 5279 trace_input ("<execve>", OP_VOID, OP_VOID, OP_VOID);
5277 RETVAL (execve (MEMPTR (PARM1), (char **) MEMPTR (PARM2<<16|PARM3), 5280 RETVAL (execve (MEMPTR (PARM1), (char **) MEMPTR (PARM2<<16|PARM3),
5278 (char **)MEMPTR (PARM4))); 5281 (char **)MEMPTR (PARM4)));
5279 trace_output_16 (result); 5282 trace_output_16 (result);
5280 break; 5283 break;
5284 #endif
5281 5285
5282 #ifdef TARGET_SYS_execv 5286 #ifdef TARGET_SYS_execv
5283 case TARGET_SYS_execv: 5287 case TARGET_SYS_execv:
5284 trace_input ("<execv>", OP_VOID, OP_VOID, OP_VOID); 5288 trace_input ("<execv>", OP_VOID, OP_VOID, OP_VOID);
5285 RETVAL (execve (MEMPTR (PARM1), (char **) MEMPTR (PARM2), NULL)); 5289 RETVAL (execve (MEMPTR (PARM1), (char **) MEMPTR (PARM2), NULL));
5286 trace_output_16 (result); 5290 trace_output_16 (result);
5287 break; 5291 break;
5288 #endif 5292 #endif
5289 5293
5294 #ifdef TARGET_SYS_pipe
5290 case TARGET_SYS_pipe: 5295 case TARGET_SYS_pipe:
5291 { 5296 {
5292 reg_t buf; 5297 reg_t buf;
5293 int host_fd[2]; 5298 int host_fd[2];
5294 5299
5295 trace_input ("<pipe>", OP_VOID, OP_VOID, OP_VOID); 5300 trace_input ("<pipe>", OP_VOID, OP_VOID, OP_VOID);
5296 buf = PARM1; 5301 buf = PARM1;
5297 RETVAL (pipe (host_fd)); 5302 RETVAL (pipe (host_fd));
5298 SW (buf, host_fd[0]); 5303 SW (buf, host_fd[0]);
5299 buf += sizeof(uint16); 5304 buf += sizeof(uint16);
5300 SW (buf, host_fd[1]); 5305 SW (buf, host_fd[1]);
5301 trace_output_16 (result); 5306 trace_output_16 (result);
5302 } 5307 }
5303 break; 5308 break;
5309 #endif
5304 5310
5305 #ifdef TARGET_SYS_wait 5311 #ifdef TARGET_SYS_wait
5306 case TARGET_SYS_wait: 5312 case TARGET_SYS_wait:
5307 { 5313 {
5308 int status; 5314 int status;
5309 trace_input ("<wait>", OP_REG, OP_VOID, OP_VOID); 5315 trace_input ("<wait>", OP_REG, OP_VOID, OP_VOID);
5310 RETVAL (wait (&status)); 5316 RETVAL (wait (&status));
5311 if (PARM1) 5317 if (PARM1)
5312 SW (PARM1, status); 5318 SW (PARM1, status);
5313 trace_output_16 (result); 5319 trace_output_16 (result);
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
5358 break; 5364 break;
5359 5365
5360 case TARGET_SYS_open: 5366 case TARGET_SYS_open:
5361 trace_input ("<open>", OP_MEMREF, OP_REG, OP_VOID); 5367 trace_input ("<open>", OP_MEMREF, OP_REG, OP_VOID);
5362 RETVAL32 (cr16_callback->open (cr16_callback, 5368 RETVAL32 (cr16_callback->open (cr16_callback,
5363 MEMPTR ((((unsigned long)PARM2)<<16)|PARM1), 5369 MEMPTR ((((unsigned long)PARM2)<<16)|PARM1),
5364 PARM3)); 5370 PARM3));
5365 trace_output_32 (result); 5371 trace_output_32 (result);
5366 break; 5372 break;
5367 5373
5374 #ifdef TARGET_SYS_rename
5368 case TARGET_SYS_rename: 5375 case TARGET_SYS_rename:
5369 trace_input ("<rename>", OP_MEMREF, OP_MEMREF, OP_VOID); 5376 trace_input ("<rename>", OP_MEMREF, OP_MEMREF, OP_VOID);
5370 RETVAL (cr16_callback->rename (cr16_callback, 5377 RETVAL (cr16_callback->rename (cr16_callback,
5371 MEMPTR ((((unsigned long)PARM2)<<16) |PARM1), 5378 MEMPTR ((((unsigned long)PARM2)<<16) |PARM1),
5372 MEMPTR ((((unsigned long)PARM4)<<16) |PARM3)) ); 5379 MEMPTR ((((unsigned long)PARM4)<<16) |PARM3)) );
5373 trace_output_16 (result); 5380 trace_output_16 (result);
5374 break; 5381 break;
5382 #endif
5375 5383
5376 case 0x408: /* REVISIT: Added a dummy getenv call. */ 5384 case 0x408: /* REVISIT: Added a dummy getenv call. */
5377 trace_input ("<getenv>", OP_MEMREF, OP_MEMREF, OP_VOID); 5385 trace_input ("<getenv>", OP_MEMREF, OP_MEMREF, OP_VOID);
5378 RETVAL32(NULL); 5386 RETVAL32(NULL);
5379 trace_output_32 (result); 5387 trace_output_32 (result);
5380 break; 5388 break;
5381 5389
5382 case TARGET_SYS_exit: 5390 case TARGET_SYS_exit:
5383 trace_input ("<exit>", OP_VOID, OP_VOID, OP_VOID); 5391 trace_input ("<exit>", OP_VOID, OP_VOID, OP_VOID);
5384 State.exception = SIG_CR16_EXIT; 5392 State.exception = SIG_CR16_EXIT;
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
5417 SW (buf+12, host_stat.st_rdev); 5425 SW (buf+12, host_stat.st_rdev);
5418 SLW (buf+16, host_stat.st_size); 5426 SLW (buf+16, host_stat.st_size);
5419 SLW (buf+20, host_stat.st_atime); 5427 SLW (buf+20, host_stat.st_atime);
5420 SLW (buf+28, host_stat.st_mtime); 5428 SLW (buf+28, host_stat.st_mtime);
5421 SLW (buf+36, host_stat.st_ctime); 5429 SLW (buf+36, host_stat.st_ctime);
5422 } 5430 }
5423 trace_output_16 (result); 5431 trace_output_16 (result);
5424 break; 5432 break;
5425 #endif 5433 #endif
5426 5434
5435 #ifdef TARGET_SYS_chown
5427 case TARGET_SYS_chown: 5436 case TARGET_SYS_chown:
5428 trace_input ("<chown>", OP_VOID, OP_VOID, OP_VOID); 5437 trace_input ("<chown>", OP_VOID, OP_VOID, OP_VOID);
5429 RETVAL (chown (MEMPTR (PARM1), PARM2, PARM3)); 5438 RETVAL (chown (MEMPTR (PARM1), PARM2, PARM3));
5430 trace_output_16 (result); 5439 trace_output_16 (result);
5431 break; 5440 break;
5441 #endif
5432 5442
5433 case TARGET_SYS_chmod: 5443 case TARGET_SYS_chmod:
5434 trace_input ("<chmod>", OP_VOID, OP_VOID, OP_VOID); 5444 trace_input ("<chmod>", OP_VOID, OP_VOID, OP_VOID);
5435 RETVAL (chmod (MEMPTR (PARM1), PARM2)); 5445 RETVAL (chmod (MEMPTR (PARM1), PARM2));
5436 trace_output_16 (result); 5446 trace_output_16 (result);
5437 break; 5447 break;
5438 5448
5439 #ifdef TARGET_SYS_utime 5449 #ifdef TARGET_SYS_utime
5440 case TARGET_SYS_utime: 5450 case TARGET_SYS_utime:
5441 trace_input ("<utime>", OP_REG, OP_REG, OP_REG); 5451 trace_input ("<utime>", OP_REG, OP_REG, OP_REG);
(...skipping 524 matching lines...) Expand 10 before | Expand all | Expand 10 after
5966 trace_output_32 (a); 5976 trace_output_32 (a);
5967 } 5977 }
5968 5978
5969 /* null. */ 5979 /* null. */
5970 void 5980 void
5971 OP_0_20 () 5981 OP_0_20 ()
5972 { 5982 {
5973 trace_input ("null", OP_VOID, OP_VOID, OP_VOID); 5983 trace_input ("null", OP_VOID, OP_VOID, OP_VOID);
5974 State.exception = SIG_CR16_STOP; 5984 State.exception = SIG_CR16_STOP;
5975 } 5985 }
OLDNEW
« no previous file with comments | « sim/cr16/interp.c ('k') | sim/cris/ChangeLog » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698