| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2011 The Native Client Authors. All rights reserved. | 2 * Copyright (c) 2011 The Native Client Authors. All rights reserved. |
| 3 * Use of this source code is governed by a BSD-style license that can be | 3 * Use of this source code is governed by a BSD-style license that can be |
| 4 * found in the LICENSE file. | 4 * found in the LICENSE file. |
| 5 */ | 5 */ |
| 6 | 6 |
| 7 /* | 7 /* |
| 8 * ncdecode.c - table driven decoder for Native Client | 8 * ncdecode.c - table driven decoder for Native Client |
| 9 * | 9 * |
| 10 * Most x86 decoders I've looked at are big case statements. While | 10 * Most x86 decoders I've looked at are big case statements. While |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 42 | 42 |
| 43 /* To turn on debugging of instruction decoding, change value of | 43 /* To turn on debugging of instruction decoding, change value of |
| 44 * DEBUGGING to 1. | 44 * DEBUGGING to 1. |
| 45 */ | 45 */ |
| 46 #define DEBUGGING 0 | 46 #define DEBUGGING 0 |
| 47 | 47 |
| 48 #include "native_client/src/shared/utils/debugging.h" | 48 #include "native_client/src/shared/utils/debugging.h" |
| 49 | 49 |
| 50 /* Generates a print name for the given NCDecodeImmediateType. */ | 50 /* Generates a print name for the given NCDecodeImmediateType. */ |
| 51 static const char* NCDecodeImmediateTypeName(NCDecodeImmediateType type) { | 51 static const char* NCDecodeImmediateTypeName(NCDecodeImmediateType type) { |
| 52 DEBUG( | 52 DEBUG_OR_ERASE( |
| 53 switch(type) { | 53 switch(type) { |
| 54 case IMM_UNKNOWN: return "IMM_UNKNOWN"; | 54 case IMM_UNKNOWN: return "IMM_UNKNOWN"; |
| 55 case IMM_NONE: return "IMM_NONE"; | 55 case IMM_NONE: return "IMM_NONE"; |
| 56 case IMM_FIXED1: return "IMM_FIXED1"; | 56 case IMM_FIXED1: return "IMM_FIXED1"; |
| 57 case IMM_FIXED2: return "IMM_FIXED2"; | 57 case IMM_FIXED2: return "IMM_FIXED2"; |
| 58 case IMM_FIXED3: return "IMM_FIXED3"; | 58 case IMM_FIXED3: return "IMM_FIXED3"; |
| 59 case IMM_FIXED4: return "IMM_FIXED4"; | 59 case IMM_FIXED4: return "IMM_FIXED4"; |
| 60 case IMM_DATAV: return "IMM_DATAV"; | 60 case IMM_DATAV: return "IMM_DATAV"; |
| 61 case IMM_ADDRV: return "IMM_ADDRV"; | 61 case IMM_ADDRV: return "IMM_ADDRV"; |
| 62 case IMM_GROUP3_F6: return "IMM_GROUP3_F6"; | 62 case IMM_GROUP3_F6: return "IMM_GROUP3_F6"; |
| (...skipping 674 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 737 if (! (tthis->action_fn)(tthis, old_dinst, new_dinst)) { | 737 if (! (tthis->action_fn)(tthis, old_dinst, new_dinst)) { |
| 738 return FALSE; | 738 return FALSE; |
| 739 } | 739 } |
| 740 | 740 |
| 741 /* Move to next instruction. */ | 741 /* Move to next instruction. */ |
| 742 old_dinst = IncrementInst(old_dinst); | 742 old_dinst = IncrementInst(old_dinst); |
| 743 new_dinst = IncrementInst(new_dinst); | 743 new_dinst = IncrementInst(new_dinst); |
| 744 } | 744 } |
| 745 return TRUE; | 745 return TRUE; |
| 746 } | 746 } |
| OLD | NEW |