I am having a very strange problem
When I try to divide a integer by any integer constant ...in it's .s file
compiler is putting some long value at it's place what 's that ...
>From where it is coming
Following is the .c program
#include<stdio.h>
int main(){
int a;
a=6;
a=a/6;
printf(" %d ",a );
}
with Croos building on arm it's .s file look like this
.file "test7.c"
.section .rodata
.align 2
.LC0:
.ascii " %d \000"
.text
.align 2
.global main
.type main, %function
main:
@ args = 0, pretend = 0, frame = 4
@ frame_needed = 1, uses_anonymous_args = 0
mov ip, sp
stmfd sp!, {fp, ip, lr, pc}
sub fp, ip, #4
sub sp, sp, #4
mov r3, #6
str r3, [fp, #-16]
ldr r2, [fp, #-16]
ldr r3, .L2
smull r0, r1, r3, r2
mov r3, r2, asr #31
rsb r3, r3, r1
str r3, [fp, #-16]
ldr r0, .L2+4
ldr r1, [fp, #-16]
bl printf
mov r0, r3
ldmfd sp, {r3, fp, sp, pc}
.L3:
.align 2
.L2:
.word 715827883 //From where this value is
coming If I divide it
by 10 it is 1717986919
.size main, .-main
.ident "GCC: (GNU) 3.4.3"
Can any one give me the solution
Vikas
-
To unsubscribe from this list: send the line "unsubscribe linux-assembly" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html