diff options
author | Mark Kettenis <kettenis@gnu.org> | 2004-05-08 23:02:10 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@gnu.org> | 2004-05-08 23:02:10 +0000 |
commit | 31db7b6c38e66697f1353f6fbfba62c306d84240 (patch) | |
tree | 8837c3b26c49054e0d70bf118a97a36394fa6c88 /gdb/defs.h | |
parent | 0543f3876c21499784e5f3624fd74bee30951874 (diff) | |
download | gdb-31db7b6c38e66697f1353f6fbfba62c306d84240.zip gdb-31db7b6c38e66697f1353f6fbfba62c306d84240.tar.gz gdb-31db7b6c38e66697f1353f6fbfba62c306d84240.tar.bz2 |
* defs.h (enum return_value_convention): Add
RETURN_VALUE_ABI_RETURNS_ADDRESS and
RETURN_VALUE_ABI_PRESERVES_ADDRESS.
* infcmd.c (legacy_return_value): New function.
(print_return_value): Rwerite to implement
RETURN_VALUE_ABI_RETURNS_ADDRESS.
* values.c (using_struct_return): Check for inequality to
RETURN_VALUE_REGISTER_CONVENTION instead of equality to
RETURN_VALUE_STRUCT_CONVENTION.
* i386-tdep.c (i386_return_value): Implement
RETURN_VALUE_ABI_RETURNS_ADDRESS.
Diffstat (limited to 'gdb/defs.h')
-rw-r--r-- | gdb/defs.h | 14 |
1 files changed, 13 insertions, 1 deletions
@@ -250,7 +250,19 @@ enum return_value_convention should be stored. While typically, and historically, used for large structs, this is convention is applied to values of many different types. */ - RETURN_VALUE_STRUCT_CONVENTION + RETURN_VALUE_STRUCT_CONVENTION, + /* Like the "struct return convention" above, but where the ABI + guarantees that the called function stores the address at which + the value being returned is stored in a well-defined location, + such as a register or memory slot in the stack frame. Don't use + this if the ABI doesn't explicitly guarantees this. */ + RETURN_VALUE_ABI_RETURNS_ADDRESS, + /* Like the "struct return convention" above, but where the ABI + guarantees that the address at which the value being returned is + stored will be available in a well-defined location, such as a + register or memory slot in the stack frame. Don't use this if + the ABI doesn't explicitly guarantees this. */ + RETURN_VALUE_ABI_PRESERVES_ADDRESS, }; /* the cleanup list records things that have to be undone |