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

Unified Diff: sim/testsuite/sim/bfin/se_all16bitopcodes.S

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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sim/testsuite/sim/bfin/random_0037.S ('k') | sim/testsuite/sim/bfin/se_all32bitopcodes.S » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sim/testsuite/sim/bfin/se_all16bitopcodes.S
diff --git a/sim/testsuite/sim/bfin/se_all16bitopcodes.S b/sim/testsuite/sim/bfin/se_all16bitopcodes.S
index a87d287f71f96bd88dd2846efda14b1620644d60..042621e3ef0bc02cf18cefe5644f04c34fa5c162 100644
--- a/sim/testsuite/sim/bfin/se_all16bitopcodes.S
+++ b/sim/testsuite/sim/bfin/se_all16bitopcodes.S
@@ -12,137 +12,39 @@
# sim: --environment operating
#include "test.h"
- .include "testutils.inc"
-
- start
-
- /* Set up exception handler */
- imm32 P4, EVT3;
- loadsym R1, _evx;
- [P4] = R1;
-
- /* set up the _location */
- loadsym P0, _location
- loadsym P1, _table;
- [P0] = P1;
-
- /* Enable single stepping */
- R0 = 1;
- SYSCFG = R0;
-
- /* Lower to the code we want to single step through */
- loadsym R1, _usr;
- RETI = R1;
-
- /* set up pointers to valid data (32Meg), to reduce address violations */
- init_p_regs 0x2000000;
- init_i_regs 0x2000000;
- init_b_regs 0x2000000;
- init_l_regs 0;
- imm32 fp, 0x2000000;
- usp = p0;
-
- RTI;
-
- .align 4;
-_usr:
- .dd 0x0000;
- jump fail_lvl;
-
-_evx:
- /* Make sure exception reason is single step */
- R3 = SEQSTAT;
- R4 = 0x3f;
- R3 = R3 & R4;
-
- /* find a match */
- loadsym P0, _usr;
- loadsym P2, _location;
- P1 = [P2];
- R0 = W[P0];
-
-_match:
- R7 = W[P1++];
- R6 = W[P1++];
- R5 = W[P1++];
- /* is this the end of the table? */
- R4 = 0;
- CC = R4 == R7;
- IF CC jump _legal_instruction;
-
- /* is the opcode (R0) greater than the 2nd entry in the table (R6) */
- /* if so look at the next line in the table */
- CC = R6 < R0;
- if CC jump _match;
-
- /* is the opcode (R0) smaller than the first entry in the table (R7) */
- /* this means it's somewhere between the two lines, and should be legal */
- CC = R7 <= R0;
- if !CC jump _legal_instruction;
-
- /* is the current EXCAUSE (R3), the same as the table (R5) */
- /* if not, fail */
- CC = R3 == R5
- if !CC jump fail_lvl;
-
-_match_done:
- /* back up, and store the location to search next */
- R0 = P1;
- /* 3 back, * word/byte) */
- R0 += (-3 * 2);
- [P2] = R0;
-
- /* it matches, so fall through */
- jump _next_instruction;
+#define SE_ALL_BITS 16
+#define SE_ALL_NEW_INSN_STUB
+#include "se_allopcodes.h"
+ .include "testutils.inc"
-_legal_instruction:
- R4 = 0x10;
- CC = R3 == R4;
- IF !CC JUMP fail_lvl;
- /* it wasn't in the list, and was a single step, so fall through */
+.macro se_all_load_insn
+ R2 = W[P5];
+ R0 = R2;
+.endm
-_next_instruction:
+.macro se_all_next_insn
/* increment, and go again. */
- loadsym P0, _usr;
- R0 = W[P0];
+ R0 = R2;
+
R0 += 1;
- W[P0] = R0;
+ /* finish once we hit the 32bit limit */
R1 = 0xC000 (Z);
CC = R1 == R0;
IF CC JUMP pass_lvl;
- /* Make sure the opcode isn't in a write buffer */
- SSYNC;
-
- loadsym R1, _usr
- RETX = R1;
-
- /* set up pointers to valid data (32Meg), to reduce address violations */
- init_p_regs 0x2000000;
- init_i_regs 0x2000000;
- init_b_regs 0x2000000;
- init_l_regs 0;
- imm32 fp, 0x2000000;
- usp = p0;
- RETS = p0;
- RETN = p0;
- RETE = p0;
- RETI = p0;
- RTX;
-
-pass_lvl:
- dbg_pass;
-fail_lvl:
- dbg_fail;
+ W[P5] = R0;
+.endm
+.macro se_all_new_insn_stub
+ jump _legal_instruction;
+.endm
+.macro se_all_insn_init
+ .dw 0x0000;
+.endm
+.macro se_all_insn_table
/* this table must be sorted, and end with zero */
- .data
- .align 4;
-_location:
- .dd 0
-_table:
/* start end SEQSTAT */
.dw 0x0001, 0x000f, 0x21
.dw 0x0011, 0x0013, 0x2e
@@ -442,3 +344,6 @@ _table:
.dw 0x9ef0, 0x9eff, 0x21
.dw 0x9f70, 0x9f7f, 0x21
.dw 0x0000, 0x0000, 0x00
+.endm
+
+ se_all_test
« no previous file with comments | « sim/testsuite/sim/bfin/random_0037.S ('k') | sim/testsuite/sim/bfin/se_all32bitopcodes.S » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698