You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**Note** Not all file systems can record creation and last access time and not all file systems record them in the same manner. For example, on the Windows NT FAT file system, create time has a resolution of 10 milliseconds, write time has a resolution of 2 seconds, and access time has a resolution of 1 day (the access date). On NTFS, access time has a resolution of 1 hour. Furthermore, FAT records times on disk in local time, but NTFS records times on disk in UTC. For more information, see [File Times](http://msdn.microsoft.com/library/windows/desktop/ms724290).
|00-7F||||16|`add sp,sp,#X`<br /><br /> where X is (Code & 0x7F) * 4|
235
+
|00-7F||||16|`add sp,sp,#X`<br /><br /> where X is (Code & 0x7F) \* 4|
236
236
|80-BF|00-FF|||32|`pop {r0-r12, lr}`<br /><br /> where LR is popped if Code & 0x2000 and r0-r12 are popped if the corresponding bit is set in Code & 0x1FFF|
237
237
|C0-CF||||16|`mov sp,rX`<br /><br /> where X is Code & 0x0F|
238
238
|D0-D7||||16|`pop {r4-rX,lr}`<br /><br /> where X is (Code & 0x03) + 4 and LR is popped if Code & 0x04|
239
239
|D8-DF||||32|`pop {r4-rX,lr}`<br /><br /> where X is (Code & 0x03) + 8 and LR is popped if Code & 0x04|
240
240
|E0-E7||||32|`vpop {d8-dX}`<br /><br /> where X is (Code & 0x07) + 8|
241
-
|E8-EB|00-FF|||32|`addw sp,sp,#X`<br /><br /> where X is (Code & 0x03FF) * 4|
241
+
|E8-EB|00-FF|||32|`addw sp,sp,#X`<br /><br /> where X is (Code & 0x03FF) \* 4|
242
242
|EC-ED|00-FF|||16|`pop {r0-r7,lr}`<br /><br /> where LR is popped if Code & 0x0100 and r0-r7 are popped if the corresponding bit is set in Code & 0x00FF|
243
243
|EE|00-0F|||16|Microsoft-specific|
244
244
|EE|10-FF|||16|Available|
245
-
|EF|00-0F|||32|`ldr lr,[sp],#X`<br /><br /> where X is (Code & 0x000F) * 4|
245
+
|EF|00-0F|||32|`ldr lr,[sp],#X`<br /><br /> where X is (Code & 0x000F) \* 4|
246
246
|EF|10-FF|||32|Available|
247
247
|F0-F4||||-|Available|
248
248
|F5|00-FF|||32|`vpop {dS-dE}`<br /><br /> where S is (Code & 0x00F0) >> 4 and E is Code & 0x000F|
249
249
|F6|00-FF|||32|`vpop {dS-dE}`<br /><br /> where S is ((Code & 0x00F0) >> 4) + 16 and E is (Code & 0x000F) + 16|
250
-
|F7|00-FF|00-FF||16|`add sp,sp,#X`<br /><br /> where X is (Code & 0x00FFFF) * 4|
251
-
|F8|00-FF|00-FF|00-FF|16|`add sp,sp,#X`<br /><br /> where X is (Code & 0x00FFFFFF) * 4|
252
-
|F9|00-FF|00-FF||32|`add sp,sp,#X`<br /><br /> where X is (Code & 0x00FFFF) * 4|
253
-
|FA|00-FF|00-FF|00-FF|32|`add sp,sp,#X`<br /><br /> where X is (Code & 0x00FFFFFF) * 4|
250
+
|F7|00-FF|00-FF||16|`add sp,sp,#X`<br /><br /> where X is (Code & 0x00FFFF) \* 4|
251
+
|F8|00-FF|00-FF|00-FF|16|`add sp,sp,#X`<br /><br /> where X is (Code & 0x00FFFFFF) \* 4|
252
+
|F9|00-FF|00-FF||32|`add sp,sp,#X`<br /><br /> where X is (Code & 0x00FFFF) \* 4|
253
+
|FA|00-FF|00-FF|00-FF|32|`add sp,sp,#X`<br /><br /> where X is (Code & 0x00FFFFFF) \* 4|
Copy file name to clipboardExpand all lines: docs/build/reference/bscmake-command-line.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,7 @@ BSCMAKE [options] sbrfiles
20
20
21
21
Options can appear only in the `options` field on the command line.
22
22
23
-
The *sbrfiles* field specifies one or more .sbr files created by a compiler or assembler. Separate the names of .sbr files with spaces or tabs. You must specify the extension; there is no default. You can specify a path with the filename, and you can use operating-system wildcards (* and ?).
23
+
The *sbrfiles* field specifies one or more .sbr files created by a compiler or assembler. Separate the names of .sbr files with spaces or tabs. You must specify the extension; there is no default. You can specify a path with the filename, and you can use operating-system wildcards (\* and ?).
24
24
25
25
During an incremental build, you can specify new .sbr files that were not part of the original build. If you want all contributions to remain in the browse information file, you must specify all .sbr files (including truncated files) that were originally used to create the .bsc file. If you omit an .sbr file, that file's contribution to the browse information file is removed.
Copy file name to clipboardExpand all lines: docs/build/struct-unwind-code.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,7 +25,7 @@ The unwind code array is used to record the sequence of operations in the prolog
25
25
Offset from the beginning of the prolog of the end of the instruction that performs this operation, plus 1 (that is, the offset of the start of the next instruction).
26
26
27
27
**Unwind operation code**
28
-
Note: Certain operation codes require an unsigned offset to a value in the local stack frame. This offset is from the start (lowest address) of the fixed stack allocation. If the Frame Register field in the UNWIND_INFO is zero, this offset is from RSP. If the Frame Register field is nonzero, this is the offset from where RSP was located when the FP reg was established. This equals the FP reg minus the FP reg offset (16 * the scaled frame register offset in the UNWIND_INFO). If an FP reg is used, then any unwind code taking an offset must only be used after the FP reg is established in the prolog.
28
+
Note: Certain operation codes require an unsigned offset to a value in the local stack frame. This offset is from the start (lowest address) of the fixed stack allocation. If the Frame Register field in the UNWIND_INFO is zero, this offset is from RSP. If the Frame Register field is nonzero, this is the offset from where RSP was located when the FP reg was established. This equals the FP reg minus the FP reg offset (16 \* the scaled frame register offset in the UNWIND_INFO). If an FP reg is used, then any unwind code taking an offset must only be used after the FP reg is established in the prolog.
29
29
30
30
For all opcodes except UWOP_SAVE_XMM128 and UWOP_SAVE_XMM128_FAR, the offset will always be a multiple of 8, because all stack values of interest are stored on 8 byte boundaries (the stack itself is always 16-byte aligned). For operation codes that take a short offset (less than 512K), the final USHORT in the nodes for this code holds the offset divided by 8. For operation codes that take a long offset (512K <= offset < 4GB), the final two USHORT nodes for this code hold the offset (in little-endian format).
31
31
@@ -43,7 +43,7 @@ The unwind code array is used to record the sequence of operations in the prolog
43
43
44
44
UWOP_ALLOC_SMALL (2)1 node
45
45
46
-
Allocate a small-sized area on the stack. The size of the allocation is the operation info field * 8 + 8, allowing allocations from 8 to 128 bytes.
46
+
Allocate a small-sized area on the stack. The size of the allocation is the operation info field \* 8 + 8, allowing allocations from 8 to 128 bytes.
47
47
48
48
The unwind code for a stack allocation should always use the shortest possible encoding:
49
49
@@ -56,7 +56,7 @@ The unwind code array is used to record the sequence of operations in the prolog
56
56
57
57
UWOP_SET_FPREG (3)1 node
58
58
59
-
Establish the frame pointer register by setting the register to some offset of the current RSP. The offset is equal to the Frame Register offset (scaled) field in the UNWIND_INFO * 16, allowing offsets from 0 to 240. The use of an offset permits establishing a frame pointer that points to the middle of the fixed stack allocation, helping code density by allowing more accesses to use short instruction forms. Note that the operation info field is reserved and should not be used.
59
+
Establish the frame pointer register by setting the register to some offset of the current RSP. The offset is equal to the Frame Register offset (scaled) field in the UNWIND_INFO \* 16, allowing offsets from 0 to 240. The use of an offset permits establishing a frame pointer that points to the middle of the fixed stack allocation, helping code density by allowing more accesses to use short instruction forms. Note that the operation info field is reserved and should not be used.
Copy file name to clipboardExpand all lines: docs/build/struct-unwind-info.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,7 +21,7 @@ The unwind data info structure is used to record the effects a function has on t
21
21
|UBYTE|Count of unwind codes|
22
22
|UBYTE: 4|Frame Register|
23
23
|UBYTE: 4|Frame Register offset (scaled)|
24
-
|USHORT * n|Unwind codes array|
24
+
|USHORT \* n|Unwind codes array|
25
25
|variable|Can either be of form (1) or (2) below|
26
26
27
27
(1) Exception Handler
@@ -63,7 +63,7 @@ The unwind data info structure is used to record the effects a function has on t
63
63
If nonzero, then the function uses a frame pointer, and this field is the number of the nonvolatile register used as the frame pointer, using the same encoding for the operation info field of UNWIND_CODE nodes.
64
64
65
65
**Frame register offset (scaled)**
66
-
If the frame register field is nonzero, then this is the scaled offset from RSP that is applied to the FP reg when it is established. The actual FP reg is set to RSP + 16 * this number, allowing offsets from 0 to 240. This permits pointing the FP reg into the middle of the local stack allocation for dynamic stack frames, allowing better code density through shorter instructions (more instructions can use the 8-bit signed offset form).
66
+
If the frame register field is nonzero, then this is the scaled offset from RSP that is applied to the FP reg when it is established. The actual FP reg is set to RSP + 16 \* this number, allowing offsets from 0 to 240. This permits pointing the FP reg into the middle of the local stack allocation for dynamic stack frames, allowing better code density through shorter instructions (more instructions can use the 8-bit signed offset form).
67
67
68
68
**Unwind codes array**
69
69
This is an array of items that explains the effect of the prolog on the nonvolatile registers and RSP. See the section on UNWIND_CODE for the meanings of individual items. For alignment purposes, this array will always have an even number of entries, with the final entry potentially unused (in which case the array will be one longer than indicated by the count of unwind codes field).
0 commit comments