d229aa0edd
Clang relies on this, gcc does not. TEST=ci Change-Id: Iee14790367f6807abd222f69990640d44e6f1f77 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/339081 Reviewed-by: Daco Harkes <dacoharkes@google.com> Commit-Queue: Ryan Macnak <rmacnak@google.com>
38 lines
1.2 KiB
C++
38 lines
1.2 KiB
C++
// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
#ifndef RUNTIME_VM_CONSTANTS_BASE_H_
|
|
#define RUNTIME_VM_CONSTANTS_BASE_H_
|
|
|
|
namespace dart {
|
|
|
|
// Alignment strategies for how to align values.
|
|
enum AlignmentStrategy {
|
|
// Align to the size of the value.
|
|
kAlignedToValueSize,
|
|
// Align to the size of the value, but align 8 byte-sized values to 4 bytes.
|
|
// Both double and int64.
|
|
kAlignedToValueSizeBut8AlignedTo4,
|
|
// Align to the architecture size.
|
|
kAlignedToWordSize,
|
|
// Align to the greater of architecture size or value size.
|
|
kAlignedToWordSizeAndValueSize,
|
|
};
|
|
|
|
// Minimum size strategies for how to store values.
|
|
enum ExtensionStrategy {
|
|
// Values can have arbitrary small size with the upper bits undefined.
|
|
kNotExtended,
|
|
// Values smaller than 4 bytes are passed around zero- or sign-extended to
|
|
// 4 bytes.
|
|
kExtendedTo4,
|
|
// Values smaller than 8 bytes are passed around zero- or sign-extended to
|
|
// 8 bytes.
|
|
kExtendedTo8,
|
|
};
|
|
|
|
} // namespace dart
|
|
|
|
#endif // RUNTIME_VM_CONSTANTS_BASE_H_
|