aboutsummaryrefslogtreecommitdiffstats
path: root/benchmarks/CHStone/mips/imem.h
blob: 322d6b2f6749035939202df5419fda6b92fdc7e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/*
+--------------------------------------------------------------------------+
| CHStone : a suite of benchmark programs for C-based High-Level Synthesis |
| ======================================================================== |
|                                                                          |
| * Collected and Modified : Y. Hara, H. Tomiyama, S. Honda,               |
|                            H. Takada and K. Ishii                        |
|                            Nagoya University, Japan                      |
|                                                                          |
| * Remark :                                                               |
|    1. This source code is modified to unify the formats of the benchmark |
|       programs in CHStone.                                               |
|    2. Test vectors are added for CHStone.                                |
|    3. If "main_result" is 0 at the end of the program, the program is    |
|       correctly executed.                                                |
|    4. Please follow the copyright of each benchmark program.             |
+--------------------------------------------------------------------------+
*/
/*
 * Copyright (C) 2008
 * Y. Hara, H. Tomiyama, S. Honda, H. Takada and K. Ishii
 * Nagoya University, Japan
 * All rights reserved.
 *
 * Disclaimer of Warranty
 *
 * These software programs are available to the user without any license fee or
 * royalty on an "as is" basis. The authors disclaims any and all warranties, 
 * whether express, implied, or statuary, including any implied warranties or 
 * merchantability or of fitness for a particular purpose. In no event shall the
 * copyright-holder be liable for any incidental, punitive, or consequential damages
 * of any kind whatsoever arising from the use of these programs. This disclaimer
 * of warranty extends to the user of these programs and user's customers, employees,
 * agents, transferees, successors, and assigns.
 *
 */
const unsigned long imem[44] = {
  0x8fa40000,			// [0x00400000]  lw $4, 0($29)                   ; 175: lw $a0 0($sp)               # argc
  0x27a50004,			// [0x00400004]  addiu $5, $29, 4                ; 176: addiu $a1 $sp 4             # argv
  0x24a60004,			// [0x00400008]  addiu $6, $5, 4                 ; 177: addiu $a2 $a1 4             # envp
  0x00041080,			// [0x0040000c]  sll $2, $4, 2                   ; 178: sll $v0 $a0 2
  0x00c23021,			// [0x00400010]  addu $6, $6, $2                 ; 179: addu $a2 $a2 $v0
  0x0c100016,			// [0x00400014]  jal 0x00400058 [main]           ; 180: jal main
  0x00000000,			// [0x00400018]  nop                             ; 181: nop
  0x3402000a,			// [0x0040001c]  ori $2, $0, 10                  ; 183: li $v0 10
  0x0000000c,			// [0x00400020]  syscall                         ; 184: syscall                     # syscall 10 (exit)
  0x3c011001,			// [0x00400024]  lui $1, 4097 [A]                ; 4: la   $t0,A           ; C&S
  0x34280000,			// [0x00400028]  ori $8, $1, 0 [A]
  0x00044880,			// [0x0040002c]  sll $9, $4, 2                   ; 5: sll  $t1,$a0,2
  0x01094821,			// [0x00400030]  addu $9, $8, $9                 ; 6: addu $t1,$t0,$t1
  0x8d2a0000,			// [0x00400034]  lw $10, 0($9)                   ; 7: lw   $t2,($t1)
  0x00055880,			// [0x00400038]  sll $11, $5, 2                  ; 8: sll  $t3,$a1,2
  0x010b5821,			// [0x0040003c]  addu $11, $8, $11               ; 9: addu $t3,$t0,$t3
  0x8d6c0000,			// [0x00400040]  lw $12, 0($11)                  ; 10: lw   $t4,($t3)
  0x018a682a,			// [0x00400044]  slt $13, $12, $10               ; 11: slt  $t5,$t4,$t2
  0x11a00003,			// [0x00400048]  beq $13, $0, 12 [L1-0x00400048] ; 12: beq  $t5,$zero,L1
  0xad2c0000,			// [0x0040004c]  sw $12, 0($9)                   ; 13: sw   $t4,($t1)
  0xad6a0000,			// [0x00400050]  sw $10, 0($11)                  ; 14: sw   $t2,($t3)
  0x03e00008,			// [0x00400054]  jr $31                          ; 15: jr   $ra            ; L1
  0x27bdfff4,			// [0x00400058]  addiu $29, $29, -12             ; 17: addiu $sp,$sp,-12   ; main
  0xafbf0008,			// [0x0040005c]  sw $31, 8($29)                  ; 18: sw   $ra,8($sp)
  0xafb10004,			// [0x00400060]  sw $17, 4($29)                  ; 19: sw   $s1,4($sp)
  0xafb00000,			// [0x00400064]  sw $16, 0($29)                  ; 20: sw   $s0,0($sp)
  0x24100000,			// [0x00400068]  addiu $16, $0, 0                ; 21: addiu $s0,$zero,0
  0x2a080008,			// [0x0040006c]  slti $8, $16, 8                 ; 22: slti $t0,$s0,8      ; L5
  0x1100000b,			// [0x00400070]  beq $8, $0, 44 [L2-0x00400070]  ; 23: beq  $t0,$zero,L2
  0x26110001,			// [0x00400074]  addiu $17, $16, 1               ; 24: addiu $s1,$s0,1
  0x2a280008,			// [0x00400078]  slti $8, $17, 8                 ; 25: slti $t0,$s1,8      ; L4
  0x11000006,			// [0x0040007c]  beq $8, $0, 24 [L3-0x0040007c]  ; 26: beq  $t0,$zero,L3
  0x26040000,			// [0x00400080]  addiu $4, $16, 0                ; 27: addiu $a0,$s0,0
  0x26250000,			// [0x00400084]  addiu $5, $17, 0                ; 28: addiu $a1,$s1,0
  0x0c100009,			// [0x00400088]  jal 0x00400024 [compare_swap]   ; 29: jal  compare_swap
  0x26310001,			// [0x0040008c]  addiu $17, $17, 1               ; 30: addiu $s1,$s1,1
  0x0810001e,			// [0x00400090]  j 0x00400078 [L4]               ; 31: j    L4
  0x26100001,			// [0x00400094]  addiu $16, $16, 1               ; 32: addiu $s0,$s0,1     ; L3
  0x0810001b,			// [0x00400098]  j 0x0040006c [L5]               ; 33: j    L5
  0x8fbf0008,			// [0x0040009c]  lw $31, 8($29)                  ; 34: lw   $ra,8($sp)     ; L2
  0x8fb10004,			// [0x004000a0]  lw $17, 4($29)                  ; 35: lw   $s1,4($sp)
  0x8fb00000,			// [0x004000a4]  lw $16, 0($29)                  ; 36: lw   $s0,0($sp)
  0x27bd000c,			// [0x004000a8]  addiu $29, $29, 12              ; 37: addiu $sp,$sp,12
  0x03e00008,			// [0x004000ac]  jr $31                          ; 38: jr   $ra
};