File: | home/coreboot/node-root/workspace/coreboot_scanbuild/3rdparty/stm/Stm/StmPkg/EdkII/MdePkg/Library/BaseLib/X86FxRestore.c |
Warning: | line 46, column 3 Dereference of null pointer |
Press '?' to see keyboard shortcuts
Keyboard shortcuts:
1 | /** @file | |||
2 | IA-32/x64 AsmFxRestore() | |||
3 | ||||
4 | Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR> | |||
5 | This program and the accompanying materials | |||
6 | are licensed and made available under the terms and conditions of the BSD License | |||
7 | which accompanies this distribution. The full text of the license may be found at | |||
8 | http://opensource.org/licenses/bsd-license.php. | |||
9 | ||||
10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |||
11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |||
12 | ||||
13 | **/ | |||
14 | ||||
15 | ||||
16 | ||||
17 | ||||
18 | #include "BaseLibInternals.h" | |||
19 | ||||
20 | /** | |||
21 | Restores the current floating point/SSE/SSE2 context from a buffer. | |||
22 | ||||
23 | Restores the current floating point/SSE/SSE2 state from the buffer specified | |||
24 | by Buffer. Buffer must be aligned on a 16-byte boundary. This function is | |||
25 | only available on IA-32 and x64. | |||
26 | ||||
27 | If Buffer is NULL, then ASSERT(). | |||
28 | If Buffer is not aligned on a 16-byte boundary, then ASSERT(). | |||
29 | If Buffer was not saved with AsmFxSave(), then ASSERT(). | |||
30 | ||||
31 | @param Buffer A pointer to a buffer to save the floating point/SSE/SSE2 context. | |||
32 | ||||
33 | **/ | |||
34 | VOIDvoid | |||
35 | EFIAPI | |||
36 | AsmFxRestore ( | |||
37 | IN CONSTconst IA32_FX_BUFFER *Buffer | |||
38 | ) | |||
39 | { | |||
40 | ASSERT (Buffer != NULL)do { if (DebugAssertEnabled ()) { if (!(Buffer != ((void *) 0 ))) { DebugAssert ("/home/coreboot/node-root/workspace/coreboot_scanbuild/3rdparty/stm/Stm/StmPkg/EdkII/MdePkg/Library/BaseLib/X86FxRestore.c" , 40, "Buffer != ((void *) 0)"); } } } while (((BOOLEAN)(0==1 ))); | |||
| ||||
41 | ASSERT (0 == ((UINTN)Buffer & 0xf))do { if (DebugAssertEnabled ()) { if (!(0 == ((UINTN)Buffer & 0xf))) { DebugAssert ("/home/coreboot/node-root/workspace/coreboot_scanbuild/3rdparty/stm/Stm/StmPkg/EdkII/MdePkg/Library/BaseLib/X86FxRestore.c" , 41, "0 == ((UINTN)Buffer & 0xf)"); } } } while (((BOOLEAN )(0==1))); | |||
42 | ||||
43 | // | |||
44 | // Check the flag recorded by AsmFxSave() | |||
45 | // | |||
46 | ASSERT (0xAA5555AA == *(UINT32 *) (&Buffer[sizeof (IA32_FX_BUFFER) - 4]))do { if (DebugAssertEnabled ()) { if (!(0xAA5555AA == *(UINT32 *) (&Buffer[sizeof (IA32_FX_BUFFER) - 4]))) { DebugAssert ("/home/coreboot/node-root/workspace/coreboot_scanbuild/3rdparty/stm/Stm/StmPkg/EdkII/MdePkg/Library/BaseLib/X86FxRestore.c" , 46, "0xAA5555AA == *(UINT32 *) (&Buffer[sizeof (IA32_FX_BUFFER) - 4])" ); } } } while (((BOOLEAN)(0==1))); | |||
| ||||
47 | ||||
48 | InternalX86FxRestore (Buffer); | |||
49 | } |