Get --ftrace working on aarch64

This change implements a new approach to function call logging, that's
based on the GCC flag: -fpatchable-function-entry. Read the commentary
in build/config.mk to learn how it works.
This commit is contained in:
Justine Tunney 2023-06-05 23:35:31 -07:00
parent 5b908bc756
commit eb40cb371d
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
934 changed files with 2259 additions and 1268 deletions

View file

@ -16,9 +16,9 @@
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
*/
#include "tool/build/lib/asmdown.h"
#include "libc/str/str.h"
#include "libc/testlib/testlib.h"
#include "tool/build/lib/asmdown.h"
TEST(ParseAsmdown, test) {
struct Asmdown *ad;
@ -30,8 +30,9 @@ TEST(ParseAsmdown, test) {
/\n\
/ @param xmm0 has double in lower half\n\
/ @return xmm0 has result in lower half\n\
fabs: .leafprologue\n\
.profilable\n\
.ftrace1\n\
fabs: .ftrace2\n\
.leafprologue\n\
mov $0x7fffffffffffffff,%rax\n\
movq %xmm0,%rdx\n\
and %rax,%rdx\n\
@ -67,7 +68,7 @@ tinymath_acos:\n\
EXPECT_STREQ("xmm0 has result in lower half",
ad->symbols.p[0].javadown->tags.p[1].text);
EXPECT_EQ(17, ad->symbols.p[1].line);
EXPECT_EQ(18, ad->symbols.p[1].line);
EXPECT_STREQ("tinymath_acos", ad->symbols.p[1].name);
EXPECT_FALSE(ad->symbols.p[1].javadown->isfileoverview);
EXPECT_STREQ("Returns arc cosine of 𝑥.", ad->symbols.p[1].javadown->title);