summaryrefslogtreecommitdiff
path: root/gcc/config/i386
diff options
context:
space:
mode:
authorbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2009-10-21 12:03:21 +0000
committerbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2009-10-21 12:03:21 +0000
commit6ea7ed3e747841f1484d8fe7539cb0633121b603 (patch)
tree29e2e609b76c6706d6eade266c76dbbd6faa724a /gcc/config/i386
parenta44fa5565a54d06b65783cf4ecd5594e63c13ce6 (diff)
downloadgcc-6ea7ed3e747841f1484d8fe7539cb0633121b603.tar.gz
2009-10-21 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk rev 153054 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@153056 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/i386')
-rw-r--r--gcc/config/i386/cygming.h5
-rw-r--r--gcc/config/i386/i386.c65
2 files changed, 35 insertions, 35 deletions
diff --git a/gcc/config/i386/cygming.h b/gcc/config/i386/cygming.h
index 43003cc5cad..cdab21c91a2 100644
--- a/gcc/config/i386/cygming.h
+++ b/gcc/config/i386/cygming.h
@@ -49,8 +49,9 @@ along with GCC; see the file COPYING3. If not see
target, always use the svr4_dbx_register_map for DWARF .eh_frame
even if we don't use DWARF .debug_frame. */
#undef DWARF_FRAME_REGNUM
-#define DWARF_FRAME_REGNUM(n) TARGET_64BIT \
- ? dbx64_register_map[(n)] : svr4_dbx_register_map[(n)]
+#define DWARF_FRAME_REGNUM(n) \
+ (TARGET_64BIT ? dbx64_register_map[(n)] \
+ : svr4_dbx_register_map[(n)])
#ifdef HAVE_GAS_PE_SECREL32_RELOC
/* Use section relative relocations for debugging offsets. Unlike
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 73913b8376d..6065f49a042 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -8332,39 +8332,39 @@ ix86_expand_prologue (void)
rtx push, mov;
/* Make sure the function starts with
- 8b ff movl.s %edi,%edi
- 55 push %ebp
- 8b ec movl.s %esp,%ebp
-
- This matches the hookable function prologue in Win32 API functions in Microsoft Windows
- XP Service Pack 2 and newer. Wine uses this to enable Windows apps to hook the Win32 API
- functions provided by Wine */
- insn = emit_insn (gen_vswapmov (gen_rtx_REG (SImode, DI_REG), gen_rtx_REG (SImode, DI_REG)));
+ 8b ff movl.s %edi,%edi
+ 55 push %ebp
+ 8b ec movl.s %esp,%ebp
+
+ This matches the hookable function prologue in Win32 API
+ functions in Microsoft Windows XP Service Pack 2 and newer.
+ Wine uses this to enable Windows apps to hook the Win32 API
+ functions provided by Wine. */
+ insn = emit_insn (gen_vswapmov (gen_rtx_REG (SImode, DI_REG),
+ gen_rtx_REG (SImode, DI_REG)));
push = emit_insn (gen_push (hard_frame_pointer_rtx));
- mov = emit_insn (gen_vswapmov (hard_frame_pointer_rtx, stack_pointer_rtx));
+ mov = emit_insn (gen_vswapmov (hard_frame_pointer_rtx,
+ stack_pointer_rtx));
- if (frame_pointer_needed && !(crtl->drap_reg && crtl->stack_realign_needed))
- {
- /* The push %ebp and movl.s %esp, %ebp already set up the frame pointer. No need to do
- this again. */
- gen_frame_pointer = 0;
- RTX_FRAME_RELATED_P (push) = 1;
- RTX_FRAME_RELATED_P (mov) = 1;
- if (ix86_cfa_state->reg == stack_pointer_rtx)
- {
- ix86_cfa_state->reg = hard_frame_pointer_rtx;
- }
- }
+ if (frame_pointer_needed && !(crtl->drap_reg
+ && crtl->stack_realign_needed))
+ {
+ /* The push %ebp and movl.s %esp, %ebp already set up
+ the frame pointer. No need to do this again. */
+ gen_frame_pointer = 0;
+ RTX_FRAME_RELATED_P (push) = 1;
+ RTX_FRAME_RELATED_P (mov) = 1;
+ if (ix86_cfa_state->reg == stack_pointer_rtx)
+ ix86_cfa_state->reg = hard_frame_pointer_rtx;
+ }
else
- {
- /* If the frame pointer is not needed, pop %ebp again. This could be optimized for cases where
- ebp needs to be backed up for some other reason.
-
- If stack realignment is needed, pop the base pointer again, align the stack, and later
- regenerate the frame pointer setup. The frame pointer generated by the hook prologue
- is not aligned, so it can't be used */
- insn = emit_insn ((*ix86_gen_pop1) (hard_frame_pointer_rtx));
- }
+ /* If the frame pointer is not needed, pop %ebp again. This
+ could be optimized for cases where ebp needs to be backed up
+ for some other reason. If stack realignment is needed, pop
+ the base pointer again, align the stack, and later regenerate
+ the frame pointer setup. The frame pointer generated by the
+ hook prologue is not aligned, so it can't be used. */
+ insn = emit_insn ((*ix86_gen_pop1) (hard_frame_pointer_rtx));
}
/* The first insn of a function that accepts its static chain on the
@@ -9022,7 +9022,8 @@ ix86_expand_epilogue (int style)
0, red_offset,
style == 2);
pro_epilogue_adjust_stack (stack_pointer_rtx, stack_pointer_rtx,
- GEN_INT (frame.nsseregs * 16 + frame.padding0),
+ GEN_INT (frame.nsseregs * 16
+ + frame.padding0),
style, false);
}
else if (frame.to_allocate || frame.padding0 || frame.nsseregs)
@@ -26530,8 +26531,6 @@ ix86_handle_struct_attribute (tree *node, tree name,
return NULL_TREE;
}
-#include <signal.h>
-
static tree
ix86_handle_fndecl_attribute (tree *node, tree name,
tree args ATTRIBUTE_UNUSED,