Questions tagged [sparc]

SPARC(Scalable Processor Architecture) Sun Microsystems's specific CPU.

SPARC is a RISC instruction set architecture (ISA) developed by Sun Microsystems (now merged into Oracle), introduced in mid-1987.

SPARC hardware often runs Solaris, the Unix operating system, but other OSes run on SPARC hardware, and runs on more than just SPARC hardware.

SPARC doesn't allow unaligned loads, so SIGBUS (bus error) faults are a common problem when porting C or C++ to SPARC from x86 (for example).

In assembly, SPARC's 32 architectural registers are a sliding window onto a virtual register file. The save instruction that slides the window might or might not spill to memory, depending on whether the CPU microarchitecture is out of registers when it runs.

287 questions
3
votes
3 answers

Does SPARC v9 have a double word compare and swap instruction?

So; on a 64 bit SPARC CPU which is v9 compliant, there exists I know a cas instruction. This operates on single word length values. I've also seen on the web reference to a casx instruction - but I can't find out anything much more about it. I'm…
user82238
3
votes
1 answer

How to set Solaris SPARC to run in little endian mode?

Is there a way to set Solaris running on SPARC to run on little endian mode? I've been reading that the v9 architecture chip is a bi-endian chip, though by default, the system runs in big endian. How to switch it to little endian? Thank you!
RedNax
  • 1,507
  • 1
  • 10
  • 20
3
votes
2 answers

Looking for Simple C Implementation of AES-128 and DES

I need C versions of AES-128 and DES to run on an embedded SPARC processor. I'm trying to measure the electrical power of these algorithms in software and hardware. Is there a website where I could find software implementations? Currently I can…
Stuart
  • 1,733
  • 4
  • 21
  • 34
3
votes
3 answers

SIGALRM while sleeping on Solaris 9

I'm running into a bit of a weird error while running Perl in a chroot environment on Solaris 9 (Sparc). We are using a custom Perl, but it's almost exactly Perl 5.8.7, and this version has been running for years on various platforms including…
Chris Simmons
  • 1,843
  • 1
  • 12
  • 18
2
votes
2 answers

Check if installed version of JRE is 64 bit on solaris Sparc

Is there a clear or easy way to check over the command line if the installed JRE is 64 bit on a Sparc machine? I am used to seeing this in: java -version however it appears that Solaris only says what version and build of java is installed.
rwyland
  • 1,637
  • 3
  • 16
  • 30
2
votes
2 answers

How to calculate division remainder in SPARC Assembly?

Here is the pseudo code which computes division of two positive integers. HR register saves remainder, and LR saves dividend. (and eventually saves root) However I think this algorithm has some problem. Because this algorithm sometimes don't…
manutd
  • 564
  • 9
  • 22
2
votes
0 answers

JVM Crash with sun.misc.Unsafe::GetInt when write Spark Dataframe in parquet format (SPARC Solaris)

I am using Spark3.1.1/Hadoop3.2.2 on Solaris 11. When using Spark to write dataframe to Hadoop in parquete format, JVM crashed with SIGBUS error (Java Frame: sun.misc.UnSafe.GetInt). Error happens only when running in Solaris with SPARC 64 bit, not…
Duc Duong
  • 21
  • 3
2
votes
3 answers

How to get memory locations of library functions?

I am compiling a C program with the SPARC RTEMS C compiler. Using the Xlinker -M option, I am able to get a large memory map with a lot of things I don't recognize. I have also tried using the RCC nm utility, which returns a slightly more readable…
mandaleeka
  • 6,577
  • 1
  • 27
  • 34
2
votes
3 answers

"Undefined Symbol _memset"

I asked a similar question, but I have some update which is really confusing me. Essentially, I want to link a number of object files with the linker as follows: /usr/ccs/bin/ld -o q -e start_master -dn -z defs -M ../../../mapfile.q {list of object…
Mike
  • 71
  • 1
  • 3
2
votes
1 answer

Running .elf file on LEON3 processor using QEMU

lately I have been trying to execute code on Leon3 processor using qemu. My code looks like this: #include #include int main(void) { int a,b,c,d,e; printf("hello world!"); if(a){ …
Kestrel
  • 29
  • 5
2
votes
1 answer

How to set TBR in a sparc V8 processor?

I apologize if this is a very basic question, and I'm afraid I don't know to whom or where I can ask such questions. I'm working on a sparc v8 simulator project and I'm currently stuck at handling traps. The V8 manual doesn't help me and I have no…
SonOfEl
  • 175
  • 1
  • 10
2
votes
3 answers

To study SPARC executable structure with OpenSolaris on Intel

I want to study and compare executable file structure of elf, SPARC and PA-RISC. To perform the studies I want to install OpenSolaris on an Intel machine (Core2Duo). But I got a basic doubt will it work at all ? I know SPARC has its own assembly -…
ultimate cause
  • 2,264
  • 4
  • 27
  • 44
2
votes
0 answers

SPARC architecture syscall assembly instructions

From man 2 syscall: The first table lists the instruction used to transition to kernel mode (which might not be the fastest or best way to transi‐ tion to the kernel, so you might have to refer to vdso(7)), the register used to indicate…
GermaneDork
  • 133
  • 3
2
votes
2 answers

printf format specifier in SPARC assembly argument?

How do you get the equivalent of this C with SPARC assembly: printf( "Hello, my name is %s.\n", name ); using the function prototype: void printName( const char* msg, const char* name ) where msg is "Hello, my name is %s.\n". I know that I can…
skuni
  • 21
  • 1
  • 3
2
votes
1 answer

What is the canonical way to execute code directly from a QEMU device?

I'm modeling a particular evaluation board, which has a leon3 processor and several banks of MRAM mapped to specific addresses. My goal is to start qemu-system-sparc using my bootloader ELF, and then jump to the base address of a MRAM bank to begin…
Onofog
  • 443
  • 3
  • 15