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

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

Issue 1535443005: [MIPS] Make validator allow only two load patterns via $t8 (Closed) Base URL: https://chromium.googlesource.com/native_client/src/native_client@master
Patch Set: Created 5 years 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 2015 The Native Client Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 # Several test cases are implemented in this file:
6 # 1. Test if regular way to access thread pointers is allowed.
7 # 2. Test different random examples of forbidden stores through $t8.
8 # 3. Test different random examples of forbidden loads through $t8.
9
10
11 .align 4
Mark Seaborn 2015/12/27 03:46:35 Nit: can you use a consistent indentation? There'
petarj 2015/12/28 14:07:00 Done. More files in this directory could be modifi
12 .globl __start
13 __start:
14 .set noreorder
15 .set mips32r2
16
17 # Test valid tp access
18 valid_load_access:
19 lw $a0, 0($t8) # OK
20 lw $a0, 4($t8) # OK
21 nop
22 nop
23
24 # Test invalid tp access
25 invalid_store_access:
26 sb $a0, 4($t8) # Error, forbidden thread pointer access.
27 sc $a0, 4($t8) # Error, forbidden thread pointer access.
28 sdc1 $0, 4($t8) # Error, forbidden thread pointer access.
29 sdc2 $8, 4($t8) # Error, forbidden thread pointer access.
30
31 sh $a0, 4($t8) # Error, forbidden thread pointer access.
32 sw $a0, 4($t8) # Error, forbidden thread pointer access.
33 swc1 $f2, 4($t8) # Error, forbidden thread pointer access.
34 swc2 $22, 4($t8) # Error, forbidden thread pointer access.
35
36 swl $a0, 4($t8) # Error, forbidden thread pointer access.
37 swr $a0, 4($t8) # Error, forbidden thread pointer access.
38 sdxc1 $f6, $a2($t8) # Error, forbidden instruction.
39 suxc1 $f4, $t8($t8) # Error, forbidden instruction.
40
41 swxc1 $f4, $t8($t8) # Error, forbidden instruction.
42 nop
43 nop
44 nop
45
46 invalid_load_access:
47 lb $a0, 4($t8) # Error, forbidden thread pointer access.
48 lw $a0, 8($t8) # Error, forbidden thread pointer access.
49 lbu $a0, 4($t8) # Error, forbidden thread pointer access.
50 ldc1 $f0, 4($t8) # Error, forbidden thread pointer access.
51
52 ldc2 $10, -24($t8) # Error, forbidden thread pointer access.
53 lh $a0, 4($t8) # Error, forbidden thread pointer access.
54 lhu $a0, 4($t8) # Error, forbidden thread pointer access.
55 ll $a0, 4($t8) # Error, forbidden thread pointer access.
56
57 lwc1 $f0, 4($t8) # Error, forbidden thread pointer access.
58 lwc2 $10, 4($t8) # Error, forbidden thread pointer access.
59 lwl $a0, 4($t8) # Error, forbidden thread pointer access.
60 lwr $a0, 4($t8) # Error, forbidden thread pointer access.
61
62 ldxc1 $f0, $0($t8) # Error, forbidden instruction.
63 luxc1 $f0, $a2($t8) # Error, forbidden instruction.
64 lwxc1 $f6, $v0($t8) # Error, forbidden instruction.
65 nop
66
67 .set dsp
68 lbux $a3, $t2($t8) # Error, forbidden instruction.
69 lhx $a1, $a2($t8) # Error, forbidden instruction.
70 lwx $t1, $t2($t8) # Error, forbidden instruction.
71 nop
72 end_of_code:
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698