projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix warning
[libfirm]
/
ir
/
be
/
ia32
/
ia32_architecture.h
diff --git
a/ir/be/ia32/ia32_architecture.h
b/ir/be/ia32/ia32_architecture.h
index
ec5f4a0
..
c96eaac
100644
(file)
--- a/
ir/be/ia32/ia32_architecture.h
+++ b/
ir/be/ia32/ia32_architecture.h
@@
-21,7
+21,6
@@
* @file
* @brief ia32 architecture variants
* @author Michael Beck, Matthias Braun
* @file
* @brief ia32 architecture variants
* @author Michael Beck, Matthias Braun
- * @version $Id: bearch_ia32_t.h 16363 2007-10-25 23:27:07Z beck $
*/
#ifndef FIRM_BE_IA32_ARCHITECTURE_H
#define FIRM_BE_IA32_ARCHITECTURE_H
*/
#ifndef FIRM_BE_IA32_ARCHITECTURE_H
#define FIRM_BE_IA32_ARCHITECTURE_H
@@
-33,12
+32,12
@@
typedef struct {
unsigned use_leave:1;
/** use inc, dec instead of add $1, reg and add $-1, reg */
unsigned use_incdec:1;
unsigned use_leave:1;
/** use inc, dec instead of add $1, reg and add $-1, reg */
unsigned use_incdec:1;
+ /** use soft float library */
+ unsigned use_softfloat:1;
/** use sse2 instructions (instead of x87) */
unsigned use_sse2:1;
/** use ffreep instead of fpop */
unsigned use_ffreep:1;
/** use sse2 instructions (instead of x87) */
unsigned use_sse2:1;
/** use ffreep instead of fpop */
unsigned use_ffreep:1;
- /** use ftst where possible */
- unsigned use_ftst:1;
/** use femms to pop all float registers */
unsigned use_femms:1;
/** use emms to pop all float registers */
/** use femms to pop all float registers */
unsigned use_femms:1;
/** use emms to pop all float registers */
@@
-79,7
+78,7
@@
typedef struct {
/** use SSE4.2 or SSE4a popcnt instruction */
unsigned use_popcnt:1;
/** use i486 instructions */
/** use SSE4.2 or SSE4a popcnt instruction */
unsigned use_popcnt:1;
/** use i486 instructions */
- unsigned use_
i486
:1;
+ unsigned use_
bswap
:1;
/** optimize calling convention where possible */
unsigned optimize_cc:1;
/**
/** optimize calling convention where possible */
unsigned optimize_cc:1;
/**
@@
-104,6
+103,14
@@
typedef struct {
extern ia32_code_gen_config_t ia32_cg_config;
extern ia32_code_gen_config_t ia32_cg_config;
+typedef enum ia32_fp_architectures {
+ IA32_FPU_ARCH_NONE = 0,
+ IA32_FPU_ARCH_X87 = 0x00000001,
+ IA32_FPU_ARCH_SSE2 = 0x00000002,
+ IA32_FPU_ARCH_SOFTFLOAT = 0x00000004,
+}
+ia32_fp_architectures;
+
/** Initialize the ia32 architecture module. */
void ia32_init_architecture(void);
/** Initialize the ia32 architecture module. */
void ia32_init_architecture(void);
@@
-115,10
+122,11
@@
void ia32_setup_cg_config(void);
* lowerer.
*
* @param kind the instruction
* lowerer.
*
* @param kind the instruction
+ * @param mode the mode of the instruction
* @param tv for MUL instruction, the multiplication constant
*
* @return the cost
*/
* @param tv for MUL instruction, the multiplication constant
*
* @return the cost
*/
-int ia32_evaluate_insn(insn_kind kind, ir_tarval *tv);
+int ia32_evaluate_insn(insn_kind kind,
const ir_mode *mode,
ir_tarval *tv);
#endif
#endif