This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch]: fix argument passing on S/390 and S/390x


I've committed this to the 6.0 release branch, too.

Jim Blandy <jimb@redhat.com> writes:

> This is a patch that was discussed and approved long ago; only
> recently has the legal paperwork finally come through.
> 
> 2003-06-30  Jim Blandy  <jimb@redhat.com>
> 
> 	Patch from IBM (authors unspecified, probably Ulrich Weigand and
> 	Gerhard Tonn) for argument passing on the S/390 and S/390x:
> 	* s390-tdep.c (S390_STACK_FRAME_OVERHEAD): This is always space
> 	for 16 registers, and then 32 more bytes.
> 	(S390_STACK_PARAMETER_ALIGNMENT, S390_NUM_FP_PARAMETER_REGISTERS):
> 	New macros.
> 	(is_double_arg): The s390x doesn't handle DOUBLE_ARGS specially.
> 	Move up in the file, since it's now used by is_simple_arg.
> 	(is_simple_arg): Don't assume registers are four bytes long.
> 	Exclude all double arguments.  Extended floats are not simple
> 	args.
> 	(is_power_of_two): New function.
> 	(pass_by_copy_ref): Call is_power_of_two, and check that the
> 	length fits in a register, rather than listing all the acceptable
> 	sizes.  Extended floats are not passed by reference.
> 	(s390_push_arguments): Don't assume registers are four bytes long.
> 	Reserve an argument register to point to the buffer for structures
> 	returned by value.  Use S390_NUM_FP_PARAMETER_REGISTERS and
> 	S390_STACK_FRAME_OVERHEAD.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]