gnupic: gputils linker/assembler integration in higher level language
Subject:
Re: gputils linker/assembler integration in higher level language
From:
Craig Franklin ####@####.####
Date:
22 Sep 2004 03:07:20 +0100
Message-Id: <414FEF5C.9090208@users.sourceforge.net>
Do you also post to this list as "pico"? I don't want to get confused
about who I am talking to.
####@####.#### wrote:
>I want the follow pseudo ASM opcodes for the linker.
>How it's possible to implement this ? any idea ?
>
>GLOBAL _foo
>SIGNAT _foo,23423423 // 32 bit signature value
> if two or more signature exists for the same procedure,
> the linker should exit with a error: signature mismatch.
>FNADDR _foo // _foo has it's address taken
>FNARG _foo,_bar // evalutation of _foo requires a call to _bar
>FNBREAK _bar,_foo // breakes call graph for function _bar not rooting
>in _
>foo
>FNCALL _foo,_bar // _foo calls _bar;
>FNCONF psect,auto,args // linker should place the follow variables int
>psect:
> // all automatic variables prepending auto
> // all arg variables prepending arg
>FNINDIF _foo,23423423 // function performes indirect call using signature
>...
>FNSIZE _foo,local,args // function foo has <n>local variables and <n> bytes
>arg
>s
>FNROOT _main // informs the linker, that the function is a root
>graph
>
>
>
These look like the HI-TECH directives.
http://www.htsoft.com/htmlman/8051/as.html
Am I correct?
Some of these are already implemented (GLOBAL) and some are probably not
necessary (FNROOT).
We have planned to add directions for high level languages. The line
number directives were added, but nothing else. It hasn't been a
priority. I have looked at other directive sets, but was never
completely happy with any of them.
Are you suggesting this directive set because it is the best in your
opinion or because you are familiar with them?
>If signat is found, all function must have a signat.
>a signature of zero is illegal.
>if a FNROOT is found, the FN... is activated and it's the linker
>responsability
>to allocate the variables. Depending on the call flow analisys and
>temporary variable space needed, the linker should issue as many overlay
>memory base as possible.
>
>
>