summaryrefslogtreecommitdiff
path: root/bridges/source/cpp_uno/gcc3_ios_arm/generate-snippets.pl
diff options
context:
space:
mode:
authorTor Lillqvist <tml@iki.fi>2013-01-08 02:19:03 +0200
committerTor Lillqvist <tml@iki.fi>2013-01-19 23:58:40 +0200
commita477138dfafc877ced227201d631e512f130bce2 (patch)
treef1c0f9d8c499053d927ad0b1cb12bf2503e64993 /bridges/source/cpp_uno/gcc3_ios_arm/generate-snippets.pl
parent28f794086f4ed0f456ad67a293e81b019a971197 (diff)
Work on the iOS C++/UNO bridge
Split uno2cpp.cxx and cpp2uno.cxx into separate files for the emulator (i386) and device (ARM). Much cleaner like that. Try harder to get the ARM stuff to actually work. Add the rtti.h and unwind-cxx.h files from libcppabi as such instead of cherry-picking stuff from them. Change-Id: Ia238a9ce048116ad796dfb168fd4e5d3b9712ad5
Diffstat (limited to 'bridges/source/cpp_uno/gcc3_ios_arm/generate-snippets.pl')
-rwxr-xr-xbridges/source/cpp_uno/gcc3_ios_arm/generate-snippets.pl10
1 files changed, 10 insertions, 0 deletions
diff --git a/bridges/source/cpp_uno/gcc3_ios_arm/generate-snippets.pl b/bridges/source/cpp_uno/gcc3_ios_arm/generate-snippets.pl
index 2e6d6fefaead..05991706eb3b 100755
--- a/bridges/source/cpp_uno/gcc3_ios_arm/generate-snippets.pl
+++ b/bridges/source/cpp_uno/gcc3_ios_arm/generate-snippets.pl
@@ -50,7 +50,17 @@ sub gen_x86 ($$$)
printf (".text\n");
printf ("#ifdef __arm\n");
+
+printf ("\n");
+printf ("@ Each codeSnippetX function stores pc into ip and branches to _privateSnippetExecutor\n");
+printf ("@ The branch instruction is followed by two longs (that ip thus points to):\n");
+printf ("@ - the function index, as such and with the 0x80000000 bit set\n");
+printf ("@ (to indicate a hidden parameter for returning large values)\n");
+printf ("@ - the vtable offset\n");
+printf ("\n");
+
printf ("\t.align 4\n");
+printf ("\n");
foreach my $funIndex (0 .. $nFunIndexes-1)
{