Lines Matching +full:platform +full:- +full:level

1 .\" Copyright (c) 2016-2017 The FreeBSD Foundation.
32 .Nd Architecture-specific details
40 For full details consult the processor-specific ABI supplement
97 .Bl -column -offset indent "Architecture" "Initial Release"
110 .Bl -column -offset indent "Architecture" "Initial Release" "Final Release"
141 .Bl -tag -width "Dv L64PC128"
148 types machine representations all have 4-byte size.
172 Typically these are 64-bit machines, where the
178 environment, which was the historical 32-bit predecessor for 64-bit evolution.
180 .Bl -column -offset indent "powerpc64" "ILP32 counterpart"
198 Architectures with 128-bit capabilities support both a
204 .Bl -column -offset indent "aarch64c" "LP64 counterpart"
211 .Bl -column -offset indent "long long" "Size"
225 requires only 4-byte alignment for 64-bit integers.
227 Machine-dependent type sizes:
228 .Bl -column -offset indent "Architecture" "long" "void *" "long double" "time_t"
246 .Bl -column -offset indent "Architecture" "Endianness" "char Signedness"
261 .Bl -column -offset indent "Architecture" "Page Sizes"
276 .Bl -column -offset indent "riscv64 (Sv48)" "0x0001000000000000" "NNNU"
299 Historically, amd64 CPUs were limited to a 48-bit virtual address space.
300 Newer CPUs support 5-level page tables, which extend the significant bits of
305 tunable to 0 forces the system into 4-level paging mode, even on hardware that
306 supports 5-level paging.
307 In this mode, all processes get a 48-bit address space.
311 a 48-bit address space by default.
322 The RISC-V specification permits 3-level (Sv39), 4-level (Sv48), and
323 5-level (Sv57) page tables.
333 .Bl -column -offset indent "Architecture" "float, double" "long double"
370 .Bl -column -offset indent "Dv MACHINE" "Dv MACHINE_CPUARCH" "Dv MACHINE_ARCH"
381 Some of these provide architecture-specific details and are explained below.
386 .Bd -literal -offset indent
387 cc -x c -dM -E /dev/null
391 .Bl -column -offset indent "__SIZEOF_POINTER__" "Meaning"
396 .It Dv __LP64__ Ta 64-bit (8-byte) long and pointer, 32-bit (4-byte) int
397 .It Dv __ILP32__ Ta 32-bit (4-byte) int, long and pointer
398 .It Dv __CHERI__ Ta 128-bit (16-byte) capability pointer, 64-bit (8-byte) long
418 as their pointers are 128-bit capabilities.
420 Architecture-specific macros:
421 .Bl -column -offset indent "Architecture" "Predefined macros"
436 Compilers may define additional variants of architecture-specific macros.
445 .Bl -tag -width "MACHINE_CPUARCH"
447 Represents the hardware platform.
448 This is the same as the native platform's
465 hardware platforms, one hardware platform may support multiple CPU
469 of i386 supported the IBM-AT hardware platform while the
471 of pc98 supported the Japanese company NEC's PC-9801 and PC-9821
476 userland interfaces relating to underlying hardware platform
489 It may also encode a variation in the byte ordering of multi-byte
503 If we ever were to support the so-called x32 ABI (using 32-bit
505 as amd64-x32.
506 It is unfortunate that amd64 specifies the 64-bit evolution of the x86 platform
538 in the top level Makefile for cross building.
541 Makefiles outside of the top level should not use it at all (though
546 by the top level Makefile for cross building.