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

Side by Side Diff: src/trusted/validator_mips/testdata/test_read_only_regs.S

Issue 9979025: [MIPS] Adding validator for MIPS architecture. (Closed) Base URL: http://src.chromium.org/native_client/trunk/src/native_client/
Patch Set: Rebased patch, conflict resolved. Created 8 years, 6 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
OLDNEW
(Empty)
1 # Copyright 2012 The Native Client Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can
3 # be found in the LICENSE file.
4
5 #
6 # Tests alteration of value stored in read-only registers.
7 #
8
9 .globl _start
10 _start:
11 .align 4
12 .set noreorder
13 .set STORE_MASK, $t7
14 .set JUMP_MASK, $t6
15 .set TLS_REG, $t8
16
17 # Testing instructions that alter t6 (JUMP_MASK).
18
19 bundle_altering_t6:
20 addiu JUMP_MASK, JUMP_MASK, 64 # Error, changing read-only register.
21 and JUMP_MASK, JUMP_MASK, $a2 # Error, changing read-only register.
22 lui JUMP_MASK, $f0 # Error, changing read-only register.
23 clo JUMP_MASK, $a2 # Error, changing read-only register.
24 ins JUMP_MASK, $s3, 2, 10 # Error, changing read-only register.
25 lui JUMP_MASK, 0x1f # Error, changing read-only register.
26 mfc1 JUMP_MASK, $f12 # Error, changing read-only register.
27 mfhc1 JUMP_MASK, $f10 # Error, changing read-only register.
28 mflo JUMP_MASK # Error, changing read-only register.
29 movn JUMP_MASK, $v0, $v1 # Error, changing read-only register.
30 movt JUMP_MASK, $s4, $fcc4 # Error, changing read-only register.
31 mul JUMP_MASK, $s0, $s1 # Error, changing read-only register.
32
33 # Testing instructions that alter t7 (STORE_MASK).
34
35 bundle_altering_t7:
36 addiu STORE_MASK, STORE_MASK, 64 # Error, changing read-only register.
37 and STORE_MASK, STORE_MASK, $a2 # Error, changing read-only register.
38 lui STORE_MASK, $f0 # Error, changing read-only register.
39 clo STORE_MASK, $a2 # Error, changing read-only register.
40
41 # Testing instructions that alter t8 (TLS index).
42
43 bundle_altering_t8:
44 lui TLS_REG, 0x1f # Error, changing read-only register.
45 mfc1 TLS_REG, $f12 # Error, changing read-only register.
46 mfhc1 TLS_REG, $f10 # Error, changing read-only register.
47 mflo TLS_REG # Error, changing read-only register.
48
49 bundle_jalr_sp_t9:
50 nop
51 and $t9, $t9, JUMP_MASK
52 jalr STORE_MASK, $t9 # Error, changing read-only register.
53 nop # Instr in delay slot is indented.
54
55 # Make sure $f14 is not interpreted
56 # as $t6 (14), when in fp instruction.
57
58 bundle_fp_instr:
59 add.s $f14, $f4, $f2
60 mov.d $f14, $f0
61 neg.d $f14, $f4
62 lwc1 $f14,24($sp)
63
64 # A few instructions where $t6/$t7
65 # is the first operand, but its value is not altered.
66
67 bundle_t6_t7_not_altered:
68 mthi JUMP_MASK # OK
69 mult STORE_MASK, $t9 # OK
70 nop
71 nop
72
73 end_of_code:
OLDNEW
« no previous file with comments | « src/trusted/validator_mips/testdata/test_loads.err ('k') | src/trusted/validator_mips/testdata/test_read_only_regs.err » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698