- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am using ICC 11.1 on linux
when compiling a c file with the follwing line:
__asm__ ("pushw $-5");
it creates the asm command:
push $0xfffffffb
instead of:
pushw $0xfffffffb
Thanks Moshe
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Itried the following and compiler is using pushq and looks good to me.
$ cat tstcase.c
void foo()
{
__asm__ ("pushw $-5");
}
$icc -c -S -fsource-asm tstcase.c
$ cat tstcase.s
# -- Machine type EFI2
# mark_description "Intel C++ Compiler for applications running on Intel 64, Version 11.1 Build 20100414 %s";
# mark_description "-c -S -fsource-asm";
.file "tstcase.c"
.text
..TXTST0:
# -- Begin foo
# mark_begin;
.align 16,0x90
.globl foo
foo:
..B1.1: # Preds ..B1.0
;;; {
..___tag_value_foo.1: #2.1
# LOE rbx rbp r12 r13 r14 r15
..B1.4: # Preds ..B1.1
# Begin ASM
;;; __asm__ ("pushw $-5");
pushq $-5 #3.0
# End ASM
# LOE rbx rbp r12 r13 r14 r15
..B1.5: # Preds ..B1.4
;;;
;;; }
ret #5.1
.align 16,0x90
..___tag_value_foo.2: #
# LOE
# mark_end;
.type foo,@function
.size foo,.-foo
.data
# -- End foo
.data
.section .note.GNU-stack, ""
// -- Begin DWARF2 SEGMENT .debug_line
.section .debug_line
.debug_line_seg:
.align 1
// -- Begin DWARF2 SEGMENT .eh_frame
.section .eh_frame,"a",@progbits
.eh_frame_seg:
.align 8
.4byte 0x00000014
.4byte 0x00000000
.byte 0x01
.byte 0x00
.byte 0x01
.byte 0x78
.byte 0x10
.4byte 0x9008070c
.byte 0x01
.4byte 0x00000000
.2byte 0x0000
.4byte 0x00000014
.4byte 0x0000001c
.8byte ..___tag_value_foo.1
.8byte ..___tag_value_foo.2-..___tag_value_foo.1
# End
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page