Unix Technical Forum

SEO

vBulletin Search Engine Optimization


Go Back   Unix Technical Forum > Unix Operating Systems > HP-UX Operating System

Register FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 05-05-2008, 05:47 AM
Frank Goenninger
 
Posts: n/a
Default $$dyncall in PA-RISC2.0 64 bit assembler ???


Hi again -

While trying to get some old code to work under HP-UX 11.11 with a
PA-RISC 2.0 CPU-based machine in 64 bit mode I have some assembler
code that doesn't compile.

Note that I am using gcc 4.2.3 to do this and so I am using the gnu as
assembler.

Still, this is the "offending" code part:

.import $$dyncall,MILLICODE /* sitting at the top of the file */

/* somewhere in a procedure: */

bl $$dyncall,%r31

The linker then barfs and says that $$dyncall is an unsatisfied
symbol. Looking at docs from HP (man, I used to work for HP for more
than 12 years back then) I see that there's a $$dyncall entry in the
32 bit /usr/lib/libmilli.a but no such symbol in
/usr/lib/PA20_64/libmilli.a ...

The 64 bit porting info I found also doesn't help.

Any ideas?

Thanks!!!

Best,
Frank

--

Frank Goenninger

frgo(at)mac(dot)com

"Don't ask me! I haven't been reading comp.lang.lisp long enough to
really know ..."
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #2 (permalink)  
Old 05-05-2008, 05:47 AM
Frank \frgo\ a.k.a DG1SBG
 
Posts: n/a
Default Re: $$dyncall in PA-RISC2.0 64 bit assembler ??? SOLVED

"Frank Goenninger" <dont-email-me@nomail.org> writes:

> Hi again -
>
> While trying to get some old code to work under HP-UX 11.11 with a
> PA-RISC 2.0 CPU-based machine in 64 bit mode I have some assembler
> code that doesn't compile.
>
> Note that I am using gcc 4.2.3 to do this and so I am using the gnu as
> assembler.
>
> Still, this is the "offending" code part:
>
> .import $$dyncall,MILLICODE /* sitting at the top of the file */
>
> /* somewhere in a procedure: */
>
> bl $$dyncall,%r31
>
> The linker then barfs and says that $$dyncall is an unsatisfied
> symbol. Looking at docs from HP (man, I used to work for HP for more
> than 12 years back then) I see that there's a $$dyncall entry in the
> 32 bit /usr/lib/libmilli.a but no such symbol in
> /usr/lib/PA20_64/libmilli.a ...


Solved:

gcc -march2.0

and static linking ...

(I don't know the details, though - it was a monkey style problem
solving technique ...)

Best,
Frank

--

Frank Goenninger

frgo(at)mac(dot)com

"Don't ask me! I haven't been reading comp.lang.lisp long enough to
really know ..."
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #3 (permalink)  
Old 05-07-2008, 10:11 AM
Dennis Handly
 
Posts: n/a
Default Re: $$dyncall in PA-RISC2.0 64 bit assembler ???

Frank Bennington's wrote:
> While trying to get some old code to work under HP-UX 11.11 with a
> PA-RISC 2.0 CPU-based machine in 64 bit mode I have some assembler
> code that doesn't compile.
> bl $$dyncall,%r31
> The linker then barfs and says that $$dyncall is an unsatisfied
> symbol. but no such symbol in /usr/lib/PA20_64/libmilli.a ...


There is no need for $$dyncall on PA2.0 since there is an instruction
that does exactly that BVE,L.

>it was a monkey style problem solving technique


Yes, looking at a simple example of an indirect call would show that.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #4 (permalink)  
Old 05-10-2008, 01:58 PM
Frank \frgo\ a.k.a DG1SBG
 
Posts: n/a
Default Re: $$dyncall in PA-RISC2.0 64 bit assembler ???

Dennis Handly <dhandly@convex.hp.com> writes:

> Frank Goenninger wrote:
>> While trying to get some old code to work under HP-UX 11.11 with a
>> PA-RISC 2.0 CPU-based machine in 64 bit mode I have some assembler
>> code that doesn't compile.
>> bl $$dyncall,%r31
>> The linker then barfs and says that $$dyncall is an unsatisfied
>> symbol. but no such symbol in /usr/lib/PA20_64/libmilli.a ...

>
> There is no need for $$dyncall on PA2.0 since there is an instruction
> that does exactly that BVE,L.
>
>>it was a monkey style problem solving technique

>
> Yes, looking at a simple example of an indirect call would show that.


You mean like

COPY gp, save_gp
LDD 16(fp), tmp
LDD 24(fp), gp
BVE,L (tmp), r2

COPY save_gp, gp

???

Thx!
Frank

--

Frank Goenninger

frgo(at)mac(dot)com

"Don't ask me! I haven't been reading comp.lang.lisp long enough to
really know ..."
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #5 (permalink)  
Old 05-10-2008, 01:58 PM
Dennis Handly
 
Posts: n/a
Default Re: $$dyncall in PA-RISC2.0 64 bit assembler ???

Frank "frgo" a.k.a DG1SBG wrote:
> You mean like
> COPY gp, save_gp
> LDD 16(fp), tmp
> LDD 24(fp), gp
> BVE,L (tmp), r2
>
> COPY save_gp, gp


Yes and you'll need to set R29 (same as other calls):
LDO -48(%r30),%r29
LDD 16(%r31),%r19
.CALL ;in=26,29;out=28;
BVE,L (%r19),%r2
LDD 24(%r31),%r27
LDD -128(%r30),%r27
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #6 (permalink)  
Old 05-10-2008, 01:58 PM
Frank \frgo\ a.k.a DG1SBG
 
Posts: n/a
Default Re: $$dyncall in PA-RISC2.0 64 bit assembler ???

Dennis Handly <dhandly@convex.hp.com> writes:

> Yes and you'll need to set R29 (same as other calls):
> LDO -48(%r30),%r29
> LDD 16(%r31),%r19
> .CALL ;in=26,29;out=28;
> BVE,L (%r19),%r2
> LDD 24(%r31),%r27
> LDD -128(%r30),%r27


Thx!!

Best,
Frank

(formerly been working for HP in Germany for 12 years)
--

Frank Goenninger

frgo(at)mac(dot)com

"Don't ask me! I haven't been reading comp.lang.lisp long enough to
really know ..."
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT. The time now is 02:22 PM.


Powered by vBulletin® Version 3.6.5
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62