> --__--__--
>
> Message: 3
> From: Dmitry <[email protected]>
> Organization: EIS
> To: [email protected]
> Subject: Re: [Mspgcc-users] long long again...
> Date: Fri, 28 Feb 2003 15:40:26 +0300
> Reply-To: [email protected]
>
> Will be fixed immediately when you send sources which cause this error.
> ~d
>
Here they are:
============================================
The source:
#include <io.h>
#include <signal.h>
#include <stdlib.h>
#include <stdio.h>
volatile long long x,y;
void main(void)
{
x = y * 600000LL;
}
===========================================
The assembler produced:
.file "llong.c"
.arch msp430x148
/* Hardware multiplier registers: */
__MPY=0x130
__MPYS=0x132
__MAC=0x134
__MACS=0x136
__OP2=0x138
__RESLO=0x13a
__RESHI=0x13c
__SUMEXT=0x13e
.text
.p2align 1,0
.global main
.type main,@function
/***********************
* Function `main'
***********************/
main:
/* prologue: frame size = 0 */
.L__FrameSize_main=0x0
.L__FrameOffset_main=0x4
mov #(__stack-0), r1
mov r1,r4
/* prologue end (size=3) */
mov &y, r12
mov &y+2, r13
mov &y+4, r14
mov &y+6, r15
push #hhi(600000)
push #hlo(600000)
push #lhi(600000)
push #llo(600000)
call #__muldi3
add #llo(8), r1
mov r12, &x
mov r13, &x+2
mov r14, &x+4
mov r15, &x+6
/* epilogue: frame size=0 */
br #__stop_progExec__
/* epilogue end (size=4) */
/* function main size 34 (27) */
.Lfe1:
.size main,.Lfe1-main
/********* End of function ******/
.comm x,8,2
.comm y,8,2
/*********************************************************************
* File llong.c: code size: 34 words (0x22)
* incl. words in prologues: 3, epilogues: 4
*********************************************************************/
===================================================
The compiler error message:
C:\MSP430 Test\Debug>echo off
llong.c: In function `main':
llong.c:9: warning: return type of `main' is not `int'
C:\WINDOWS\TEMP/ccVLujgb.s: Assembler messages:
C:\WINDOWS\TEMP/ccVLujgb.s:32: Error: value out of range: 600000. use
#lo() or #
hi()
C:\WINDOWS\TEMP/ccVLujgb.s:33: Error: value out of range: 600000. use
#lo() or #
hi()
C:\MSP430 Test\Debug>
Regards
Paul Burke