$NetBSD: patch-ah,v 1.11 2005/02/06 15:25:36 adrianp Exp $ --- asmrun/power-bsd.S.orig 2005-02-06 15:00:21.000000000 +0000 +++ asmrun/power-bsd.S @@ -15,2 +15,31 @@ +#if defined(PROFILING) +#define PROFILE_CAML \ + stwu 1, -32(1) \ + mflr 0 \ + stw 0, 4(1) \ + stw 2, 8(1) \ + stw 3, 12(1) \ + stw 4, 16(1) \ + stw 5, 20(1) \ + stw 6, 24(1) \ + stw 7, 28(1) \ + bl _mcount \ + lwz 2, 8(1) \ + lwz 3, 12(1) \ + lwz 4, 16(1) \ + lwz 5, 20(1) \ + lwz 6, 24(1) \ + lwz 7, 28(1) \ + addic 1, 1, 32 + +#define PROFILE_C \ + mflr 0 \ + stw 0, 4(1) \ + bl _mcount +#else +#define PROFILE_CAML +#define PROFILE_C +#endif + #define Addrglobal(reg,glob) \ @@ -32,2 +61,3 @@ caml_call_gc: + PROFILE_CAML /* Set up stack frame */ @@ -184,2 +214,3 @@ caml_call_gc: caml_c_call: + PROFILE_CAML /* Save return address */ @@ -212,2 +243,3 @@ caml_c_call: caml_raise_exception: + PROFILE_C /* Reload Caml global registers */ @@ -232,2 +264,3 @@ caml_raise_exception: caml_start_program: + PROFILE_C Addrglobal(12, caml_program) @@ -382,2 +415,3 @@ caml_start_program: caml_callback_exn: + PROFILE_C /* Initial shuffling of arguments */ @@ -392,2 +426,3 @@ caml_callback_exn: caml_callback2_exn: + PROFILE_C mr 0, 3 /* Closure */ @@ -402,2 +437,3 @@ caml_callback2_exn: caml_callback3_exn: + PROFILE_C mr 0, 3 /* Closure */