38 lines
1 KiB
C
38 lines
1 KiB
C
/* SPDX-License-Identifier: BSD-2-Clause */
|
|
/* Copyright 1996-2020 The NASM Authors - All Rights Reserved */
|
|
|
|
/*
|
|
* floats.h header file for the floating-point constant module of
|
|
* the Netwide Assembler
|
|
*/
|
|
|
|
#ifndef NASM_FLOATS_H
|
|
#define NASM_FLOATS_H
|
|
|
|
#include "nasm.h"
|
|
|
|
enum float_round {
|
|
FLOAT_RC_NEAR,
|
|
FLOAT_RC_ZERO,
|
|
FLOAT_RC_DOWN,
|
|
FLOAT_RC_UP
|
|
};
|
|
|
|
/* Note: enum floatize and FLOAT_ERR are defined in nasm.h */
|
|
|
|
/* Floating-point format description */
|
|
struct ieee_format {
|
|
int bytes; /* Total bytes */
|
|
int mantissa; /* Fractional bits in the mantissa */
|
|
int explicit; /* Explicit integer */
|
|
int exponent; /* Bits in the exponent */
|
|
int offset; /* Offset into byte array for floatize op */
|
|
};
|
|
extern const struct ieee_format fp_formats[FLOAT_ERR];
|
|
|
|
int float_const(const char *str, int s, uint8_t *result, enum floatize ffmt);
|
|
enum floatize const_func float_deffmt(int bytes);
|
|
int float_option(const char *option);
|
|
|
|
#endif /* NASM_FLOATS_H */
|