Support for 32 bit ABI on 64 bit targets (only enabled Sparc64)

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3396 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
blueswir1 2007-10-14 16:27:31 +00:00
parent b227a8e9aa
commit 992f48a036
41 changed files with 1042 additions and 997 deletions

View file

@ -2,30 +2,30 @@
#define __USER_DS (0x2B)
struct target_pt_regs {
target_ulong r15;
target_ulong r14;
target_ulong r13;
target_ulong r12;
target_ulong rbp;
target_ulong rbx;
abi_ulong r15;
abi_ulong r14;
abi_ulong r13;
abi_ulong r12;
abi_ulong rbp;
abi_ulong rbx;
/* arguments: non interrupts/non tracing syscalls only save upto here*/
target_ulong r11;
target_ulong r10;
target_ulong r9;
target_ulong r8;
target_ulong rax;
target_ulong rcx;
target_ulong rdx;
target_ulong rsi;
target_ulong rdi;
target_ulong orig_rax;
abi_ulong r11;
abi_ulong r10;
abi_ulong r9;
abi_ulong r8;
abi_ulong rax;
abi_ulong rcx;
abi_ulong rdx;
abi_ulong rsi;
abi_ulong rdi;
abi_ulong orig_rax;
/* end of arguments */
/* cpu exception frame or undefined */
target_ulong rip;
target_ulong cs;
target_ulong eflags;
target_ulong rsp;
target_ulong ss;
abi_ulong rip;
abi_ulong cs;
abi_ulong eflags;
abi_ulong rsp;
abi_ulong ss;
/* top of stack page */
};
@ -41,7 +41,7 @@ struct target_pt_regs {
#if 0 // Redefine this
struct target_modify_ldt_ldt_s {
unsigned int entry_number;
target_ulong base_addr;
abi_ulong base_addr;
unsigned int limit;
unsigned int seg_32bit:1;
unsigned int contents:2;
@ -54,7 +54,7 @@ struct target_modify_ldt_ldt_s {
#else
struct target_modify_ldt_ldt_s {
unsigned int entry_number;
target_ulong base_addr;
abi_ulong base_addr;
unsigned int limit;
unsigned int flags;
};
@ -71,8 +71,8 @@ struct target_ipc64_perm
unsigned short __pad1;
unsigned short seq;
unsigned short __pad2;
target_ulong __unused1;
target_ulong __unused2;
abi_ulong __unused1;
abi_ulong __unused2;
};
struct target_msqid64_ds {
@ -80,13 +80,13 @@ struct target_msqid64_ds {
unsigned int msg_stime; /* last msgsnd time */
unsigned int msg_rtime; /* last msgrcv time */
unsigned int msg_ctime; /* last change time */
target_ulong msg_cbytes; /* current number of bytes on queue */
target_ulong msg_qnum; /* number of messages in queue */
target_ulong msg_qbytes; /* max number of bytes on queue */
abi_ulong msg_cbytes; /* current number of bytes on queue */
abi_ulong msg_qnum; /* number of messages in queue */
abi_ulong msg_qbytes; /* max number of bytes on queue */
unsigned int msg_lspid; /* pid of last msgsnd */
unsigned int msg_lrpid; /* last receive pid */
target_ulong __unused4;
target_ulong __unused5;
abi_ulong __unused4;
abi_ulong __unused5;
};
#define UNAME_MACHINE "x86_64"