]> git.sur5r.net Git - freertos/blob - FreeRTOS/Source/portable/Renesas/SH2A_FPU/portasm.src
Update version number in readiness for V10.2.0 release.
[freertos] / FreeRTOS / Source / portable / Renesas / SH2A_FPU / portasm.src
1 ;/*\r
2 ; * FreeRTOS Kernel V10.2.0\r
3 ; * Copyright (C) 2019 Amazon.com, Inc. or its affiliates.  All Rights Reserved.\r
4 ; *\r
5 ; * Permission is hereby granted, free of charge, to any person obtaining a copy of\r
6 ; * this software and associated documentation files (the "Software"), to deal in\r
7 ; * the Software without restriction, including without limitation the rights to\r
8 ; * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\r
9 ; * the Software, and to permit persons to whom the Software is furnished to do so,\r
10 ; * subject to the following conditions:\r
11 ; *\r
12 ; * The above copyright notice and this permission notice shall be included in all\r
13 ; * copies or substantial portions of the Software.\r
14 ; *\r
15 ; * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
16 ; * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\r
17 ; * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\r
18 ; * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\r
19 ; * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
20 ; * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
21 ; *\r
22 ; * http://www.FreeRTOS.org\r
23 ; * http://aws.amazon.com/freertos\r
24 ; *\r
25 ; * 1 tab == 4 spaces!\r
26 ; */\r
27 \r
28         .import _pxCurrentTCB\r
29         .import _vTaskSwitchContext\r
30         .import _xTaskIncrementTick\r
31 \r
32         .export _vPortStartFirstTask\r
33         .export _ulPortGetGBR\r
34         .export _vPortYieldHandler\r
35         .export _vPortPreemptiveTick\r
36         .export _vPortCooperativeTick\r
37         .export _vPortSaveFlopRegisters\r
38         .export _vPortRestoreFlopRegisters\r
39 \r
40     .section    P\r
41 \r
42         .INCLUDE "ISR_Support.inc"\r
43 \r
44 _vPortStartFirstTask:\r
45 \r
46         portRESTORE_CONTEXT\r
47 \r
48 ;-----------------------------------------------------------\r
49 \r
50 _vPortYieldHandler:\r
51 \r
52         portSAVE_CONTEXT\r
53 \r
54         mov.l   #_vTaskSwitchContext, r0\r
55         jsr             @r0\r
56         nop\r
57 \r
58         portRESTORE_CONTEXT\r
59 \r
60 ;-----------------------------------------------------------\r
61 \r
62 _vPortPreemptiveTick\r
63 \r
64         portSAVE_CONTEXT\r
65 \r
66         mov.l   #_xTaskIncrementTick, r0\r
67         jsr             @r0\r
68         nop\r
69 \r
70         mov.l   #_vTaskSwitchContext, r0\r
71         jsr             @r0\r
72         nop\r
73 \r
74         portRESTORE_CONTEXT\r
75 \r
76 ;-----------------------------------------------------------\r
77 \r
78 _vPortCooperativeTick\r
79 \r
80         portSAVE_CONTEXT\r
81 \r
82         mov.l   #_xTaskIncrementTick, r0\r
83         jsr             @r0\r
84         nop\r
85 \r
86         portRESTORE_CONTEXT\r
87 \r
88 ;-----------------------------------------------------------\r
89 \r
90 _ulPortGetGBR:\r
91 \r
92         stc.l   gbr, r0\r
93         rts\r
94         nop\r
95 \r
96 ;-----------------------------------------------------------\r
97 \r
98 _vPortSaveFlopRegisters:\r
99 \r
100         fmov.s  fr0, @-r4\r
101         fmov.s  fr1, @-r4\r
102         fmov.s  fr2, @-r4\r
103         fmov.s  fr3, @-r4\r
104         fmov.s  fr4, @-r4\r
105         fmov.s  fr5, @-r4\r
106         fmov.s  fr6, @-r4\r
107         fmov.s  fr7, @-r4\r
108         fmov.s  fr8, @-r4\r
109         fmov.s  fr9, @-r4\r
110         fmov.s  fr10, @-r4\r
111         fmov.s  fr11, @-r4\r
112         fmov.s  fr12, @-r4\r
113         fmov.s  fr13, @-r4\r
114         fmov.s  fr14, @-r4\r
115         fmov.s  fr15, @-r4\r
116         sts.l   fpul, @-r4\r
117         sts.l   fpscr, @-r4\r
118 \r
119         rts\r
120         nop\r
121 \r
122 ;-----------------------------------------------------------\r
123 \r
124 _vPortRestoreFlopRegisters:\r
125 \r
126         add.l  #-72, r4\r
127         lds.l  @r4+, fpscr\r
128         lds.l  @r4+, fpul\r
129         fmov.s @r4+, fr15\r
130         fmov.s @r4+, fr14\r
131         fmov.s @r4+, fr13\r
132         fmov.s @r4+, fr12\r
133         fmov.s @r4+, fr11\r
134         fmov.s @r4+, fr10\r
135         fmov.s @r4+, fr9\r
136         fmov.s @r4+, fr8\r
137         fmov.s @r4+, fr7\r
138         fmov.s @r4+, fr6\r
139         fmov.s @r4+, fr5\r
140         fmov.s @r4+, fr4\r
141         fmov.s @r4+, fr3\r
142         fmov.s @r4+, fr2\r
143         fmov.s @r4+, fr1\r
144         fmov.s @r4+, fr0\r
145 \r
146         rts\r
147         nop\r
148 \r
149         .end\r
150 \r