Use a XOR cipher instead of byte shuffling to protect against bad seeds.
[official-gcc.git] / libgcc / config / rs6000 / e500crtrest64gpr.S
blob75f1db8e5ce1c680790080d91247809e8ac4dd7d
1 /*
2  * Special support for e500 eabi and SVR4
3  *
4  *   Copyright (C) 2008-2016 Free Software Foundation, Inc.
5  *   Written by Nathan Froyd
6  * 
7  * This file is free software; you can redistribute it and/or modify it
8  * under the terms of the GNU General Public License as published by the
9  * Free Software Foundation; either version 3, or (at your option) any
10  * later version.
11  * 
12  * This file is distributed in the hope that it will be useful, but
13  * WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  * General Public License for more details.
16  * 
17  * Under Section 7 of GPL version 3, you are granted additional
18  * permissions described in the GCC Runtime Library Exception, version
19  * 3.1, as published by the Free Software Foundation.
20  *
21  * You should have received a copy of the GNU General Public License and
22  * a copy of the GCC Runtime Library Exception along with this program;
23  * see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
24  * <http://www.gnu.org/licenses/>.
25  */ 
27         .section ".text"
28         #include "ppc-asm.h"
30 #ifdef __SPE__
32 /* "Tail" versions that perform a tail call.  */
34 HIDDEN_FUNC(_rest64gpr_14_t)    evldd 14,0(11)
35 HIDDEN_FUNC(_rest64gpr_15_t)    evldd 15,8(11)
36 HIDDEN_FUNC(_rest64gpr_16_t)    evldd 16,16(11)
37 HIDDEN_FUNC(_rest64gpr_17_t)    evldd 17,24(11)
38 HIDDEN_FUNC(_rest64gpr_18_t)    evldd 18,32(11)
39 HIDDEN_FUNC(_rest64gpr_19_t)    evldd 19,40(11)
40 HIDDEN_FUNC(_rest64gpr_20_t)    evldd 20,48(11)
41 HIDDEN_FUNC(_rest64gpr_21_t)    evldd 21,56(11)
42 HIDDEN_FUNC(_rest64gpr_22_t)    evldd 22,64(11)
43 HIDDEN_FUNC(_rest64gpr_23_t)    evldd 23,72(11)
44 HIDDEN_FUNC(_rest64gpr_24_t)    evldd 24,80(11)
45 HIDDEN_FUNC(_rest64gpr_25_t)    evldd 25,88(11)
46 HIDDEN_FUNC(_rest64gpr_26_t)    evldd 26,96(11)
47 HIDDEN_FUNC(_rest64gpr_27_t)    evldd 27,104(11)
48 HIDDEN_FUNC(_rest64gpr_28_t)    evldd 28,112(11)
49 HIDDEN_FUNC(_rest64gpr_29_t)    evldd 29,120(11)
50 HIDDEN_FUNC(_rest64gpr_30_t)    evldd 30,128(11)
51 HIDDEN_FUNC(_rest64gpr_31_t)    lwz 0,148(11)
52                                 evldd 31,136(11)
53                                 addi 1,11,144
54                                 blr
55 FUNC_END(_rest64gpr_31_t)
56 FUNC_END(_rest64gpr_30_t)
57 FUNC_END(_rest64gpr_29_t)
58 FUNC_END(_rest64gpr_28_t)
59 FUNC_END(_rest64gpr_27_t)
60 FUNC_END(_rest64gpr_26_t)
61 FUNC_END(_rest64gpr_25_t)
62 FUNC_END(_rest64gpr_24_t)
63 FUNC_END(_rest64gpr_23_t)
64 FUNC_END(_rest64gpr_22_t)
65 FUNC_END(_rest64gpr_21_t)
66 FUNC_END(_rest64gpr_20_t)
67 FUNC_END(_rest64gpr_19_t)
68 FUNC_END(_rest64gpr_18_t)
69 FUNC_END(_rest64gpr_17_t)
70 FUNC_END(_rest64gpr_16_t)
71 FUNC_END(_rest64gpr_15_t)
72 FUNC_END(_rest64gpr_14_t)
74 #endif