[Lldb-commits] [PATCH] D32813: ABISysV_arm64: compute return value for large vectors correctly

Tamas Berghammer via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Thu May 4 06:48:57 PDT 2017

tberghammer added a comment.

I am a bit confused by the correlation between your change and commit message. In the commit message you say that 32 byte structs are passed as x8 pointers but the implementation of LoadValueFromConsecutiveGPRRegisters seems to read it out from the v0-v8 registers for vectors of up to 8 elements independently of there size. Also based on that code I have the suspicion that the first branch (where byte_size <= 16) is not actually used or necessary and also I don't see anything in the ABI documentation indicating otherwise (it would be a pretty crazy ABI if they say that if you have 4 double then passed in a single 32 byte register while if you have 8 double then passed in 8 different 32 byte registers). Can you make sure that branch is necessary (e.g. removing it breaks at least 1 test)?

Comment at: packages/Python/lldbsuite/test/functionalities/return-value/TestReturnValue.py:194
+        exe = os.path.join(os.getcwd(), "a.out")
+        error = lldb.SBError()
(nit): Not needed


More information about the lldb-commits mailing list