Nmap Security Scanner
*Intro
*Ref Guide
*Install Guide
*Download
*Changelog
*Book
*Docs
Security Lists
*Nmap Hackers
*Nmap Dev
*Bugtraq
*Full Disclosure
*Pen Test
*Basics
*More
Security Tools
*Pass crackers
*Sniffers
*Vuln Scanners
*Web scanners
*Wireless
*Exploitation
*Packet crafters
*More
Site News
Site Search:
Exploit World
Advertising
About/Contact
Credits
Sponsors:




Vulnerability Development mailing list archives

Re: get SP on Solaris (SPARC) with GCC 3.3.2
From: Jonathon Giffin <giffin () cs wisc edu>
Date: Tue, 13 Jan 2004 15:06:27 -0600 (CST)

(gdb) disass get_sp
Dump of assembler code for function get_sp:
0x00010dd8 <get_sp+0>:  mov  %sp, %i0
0x00010ddc <get_sp+4>:  retl
0x00010de0 <get_sp+8>:  nop
End of assembler dump.

What you have included here is a leaf function and does not shift register
windows. This is a standard compiler optimization done to functions that
call no other functions (and are hence leaf nodes in the call graph). You
need to use "mov %sp, %o0" not "mov %sp, %i0" to have the correct value
returned.

You should pass return values in %i0 only for non-leaf functions that
use "save" and "restore" to shift the current register window. The restore
instruction will rename the %i0 register to %o0, which is the return
value register. If you do not shift register windows--and your code
above does not--then you must move the return value to %o0 yourself.

If you are unfamiliar with register windows, see for example:
        http://www.sics.se/~psm/sparcstack.html .

Your code above actually violates register safety, as %i0 may be live at
the point of a call to get_sp() and your get_sp() function clobbers the
value. Standard SPARC register usage convention stipulates that out
registers are volatile across function calls but in registers are not
volatile.

Another way to get SP (maybe more simple) it's get the ARGV[0] of out
program... work fine, but now I would try to undestand why with gcc
3.3.2 doesn't work this function...

Sorry, I don't understand this comment, but that may be because I do not
know the context of your work. What do you mean by "out program"?

Thanks,

Jon


  By Date           By Thread  

Current thread:
[ Nmap | Sec Tools | Mailing Lists | Site News | About/Contact | Advertising | Privacy ]