summaryrefslogtreecommitdiff
path: root/misc/buildroot
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2009-06-25 12:26:08 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2009-06-25 12:26:08 +0000
commit855e18e540b2973634c70dc2a90e306b1567b49c (patch)
tree738798fd35c587177e42ddac9f6814baf7e689a8 /misc/buildroot
parent181ef62460c09a8823bf250fb8f7eb618e627f55 (diff)
downloadpx4-nuttx-855e18e540b2973634c70dc2a90e306b1567b49c.tar.gz
px4-nuttx-855e18e540b2973634c70dc2a90e306b1567b49c.tar.bz2
px4-nuttx-855e18e540b2973634c70dc2a90e306b1567b49c.zip
Fix to handle case of more than 4 arguments
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1945 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'misc/buildroot')
-rw-r--r--misc/buildroot/toolchain/nxflat/arm/dyncall_skeleton.def36
-rw-r--r--misc/buildroot/toolchain/nxflat/ldnxflat.c4
-rw-r--r--misc/buildroot/toolchain/nxflat/thumb2/dyncall_skeleton.def36
3 files changed, 34 insertions, 42 deletions
diff --git a/misc/buildroot/toolchain/nxflat/arm/dyncall_skeleton.def b/misc/buildroot/toolchain/nxflat/arm/dyncall_skeleton.def
index 3aaa86d8b..3d4b3d735 100644
--- a/misc/buildroot/toolchain/nxflat/arm/dyncall_skeleton.def
+++ b/misc/buildroot/toolchain/nxflat/arm/dyncall_skeleton.def
@@ -153,12 +153,10 @@ static const char dyncall_format[] =
"\t.global\t%s\n"
"\t.type\t%s, function\n\n"
"%s:\n"
- "\tstmdb\tsp!,{r4, lr}\n"
- "\tldr\tr4,.Ldyn%04d\n"
- "\tldr\tr4,[sl,r4]\n"
- "\tldr\tr4,[r4,#4]\n"
- "\tblx\tr4\n"
- "\tldmia\tsp!,{r4, pc}\n"
+ "\tldr\tip,.Ldyn%04d\n"
+ "\tldr\tip,[sl,ip]\n"
+ "\tldr\tip,[ip,#4]\n"
+ "\tbx\tip\n"
".Ldyn%04d:\n"
"\t.word\t__dyninfo%04d(GOT)\n"
"\t.size\t%s, .-%s\n";
@@ -168,10 +166,10 @@ static const char nonreturning_dyncall_format[] =
"\t.global\t%s\n"
"\t.type\t%s, function\n\n"
"%s:\n"
- "\tldr\tr4,.Ldyn%04d\n"
- "\tldr\tr4,[sl,r4]\n"
- "\tldr\tr4,[r4,#4]\n"
- "\tbx\tr4\n"
+ "\tldr\tip,.Ldyn%04d\n"
+ "\tldr\tip,[sl,ip]\n"
+ "\tldr\tip,[ip,#4]\n"
+ "\tbx\tip\n"
".Ldyn%04d:\n"
"\t.word\t__dyninfo%04d(GOT)\n"
"\t.size\t%s, .-%s\n";
@@ -183,12 +181,10 @@ static const char dyncall_format[] =
"\t.global\t%s\n"
"\t.type\t%s, function\n\n"
"%s:\n"
- "\tstmdb\tsp!,{r4, lr}\n"
- "\tldr\tr4,.Ldyn%04d\n"
- "\tadd\tr4,r4,sl\n"
- "\tldr\tr4,[r4,#4]\n"
- "\tblx\tr4\n"
- "\tldmia\tsp!,{r4, pc}\n"
+ "\tldr\tip,.Ldyn%04d\n"
+ "\tadd\tip,ip,sl\n"
+ "\tldr\tip,[ip,#4]\n"
+ "\tbx\tip\n"
".Ldyn%04d:\n"
"\t.word\t__dyninfo%04d\n"
"\t.size\t%s, .-%s\n";
@@ -198,10 +194,10 @@ static const char nonreturning_dyncall_format[] =
"\t.global\t%s\n"
"\t.type\t%s, function\n\n"
"%s:\n"
- "\tldr\tr4,.Ldyn%04d\n"
- "\tadd\tr4,r4,sl\n"
- "\tldr\tr4,[r4,#4]\n"
- "\tbx\tr4\n"
+ "\tldr\tip,.Ldyn%04d\n"
+ "\tadd\tip,ip,sl\n"
+ "\tldr\tip,[ip,#4]\n"
+ "\tbx\tip\n"
".Ldyn%04d:\n"
"\t.word\t__dyninfo%04d\n"
"\t.size\t%s, .-%s\n";
diff --git a/misc/buildroot/toolchain/nxflat/ldnxflat.c b/misc/buildroot/toolchain/nxflat/ldnxflat.c
index 018a2ac18..e600e4a94 100644
--- a/misc/buildroot/toolchain/nxflat/ldnxflat.c
+++ b/misc/buildroot/toolchain/nxflat/ldnxflat.c
@@ -960,7 +960,7 @@ resolve_segment_relocs(bfd *input_bfd, segment_info *inf, asymbol **syms)
exit(1);
}
- vdbg(" Modified opcode: %08lx\n", temp);
+ vdbg(" Modified opcode: %08lx\n", (long)temp);
#ifdef ARCH_BIG_ENDIAN
*target = (long)nxflat_swap32(temp);
#else
@@ -1028,7 +1028,7 @@ resolve_segment_relocs(bfd *input_bfd, segment_info *inf, asymbol **syms)
temp |= saved & (~how_to->dst_mask);
- vdbg(" Modified opcode: %08lx\n", temp);
+ vdbg(" Modified opcode: %08lx\n", (long)temp);
#ifdef ARCH_BIG_ENDIAN
*target = (long)nxflat_swap32(temp);
#else
diff --git a/misc/buildroot/toolchain/nxflat/thumb2/dyncall_skeleton.def b/misc/buildroot/toolchain/nxflat/thumb2/dyncall_skeleton.def
index 935e2f59d..1c4d0c387 100644
--- a/misc/buildroot/toolchain/nxflat/thumb2/dyncall_skeleton.def
+++ b/misc/buildroot/toolchain/nxflat/thumb2/dyncall_skeleton.def
@@ -156,12 +156,10 @@ static const char dyncall_format[] =
"\t.type\t%s, function\n"
"\t.thumb_func\n\n"
"%s:\n"
- "\tstmdb\tsp!,{r4, lr}\n"
- "\tldr\tr4,.Ldyn%04d\n"
- "\tldr\tr4,[sl,r4]\n"
- "\tldr\tr4,[r4,#4]\n"
- "\tblx\tr4\n"
- "\tldmia\tsp!,{r4, pc}\n"
+ "\tldr\tip,.Ldyn%04d\n"
+ "\tldr\tip,[sl,ip]\n"
+ "\tldr\tip,[ip,#4]\n"
+ "\tbx\tip\n"
".Ldyn%04d:\n"
"\t.word\t__dyninfo%04d(GOT)\n"
"\t.size\t%s, .-%s\n";
@@ -172,10 +170,10 @@ static const char nonreturning_dyncall_format[] =
"\t.type\t%s, function\n"
"\t.thumb_func\n\n"
"%s:\n"
- "\tldr\tr4,.Ldyn%04d\n"
- "\tldr\tr4,[sl,r4]\n"
- "\tldr\tr4,[r4,#4]\n"
- "\tbx\tr4\n"
+ "\tldr\tip,.Ldyn%04d\n"
+ "\tldr\tip,[sl,ip]\n"
+ "\tldr\tip,[ip,#4]\n"
+ "\tbx\tip\n"
".Ldyn%04d:\n"
"\t.word\t__dyninfo%04d(GOT)\n"
"\t.size\t%s, .-%s\n";
@@ -188,12 +186,10 @@ static const char dyncall_format[] =
"\t.type\t%s, function\n"
"\t.thumb_func\n\n"
"%s:\n"
- "\tstmdb\tsp!,{r4, lr}\n"
- "\tldr\tr4,.Ldyn%04d\n"
- "\tadd\tr4,r4,sl\n"
- "\tldr\tr4,[r4,#4]\n"
- "\tblx\tr4\n"
- "\tldmia\tsp!,{r4, pc}\n"
+ "\tldr\tip,.Ldyn%04d\n"
+ "\tadd\tip,ip,sl\n"
+ "\tldr\tip,[ip,#4]\n"
+ "\tbx\tip\n"
".Ldyn%04d:\n"
"\t.word\t__dyninfo%04d\n"
"\t.size\t%s, .-%s\n";
@@ -204,10 +200,10 @@ static const char nonreturning_dyncall_format[] =
"\t.type\t%s, function\n"
"\t.thumb_func\n\n"
"%s:\n"
- "\tldr\tr4,.Ldyn%04d\n"
- "\tadd\tr4,r4,sl\n"
- "\tldr\tr4,[r4,#4]\n"
- "\tbx\tr4\n"
+ "\tldr\tip,.Ldyn%04d\n"
+ "\tadd\tip,ip,sl\n"
+ "\tldr\tip,[ip,#4]\n"
+ "\tbx\tip\n"
".Ldyn%04d:\n"
"\t.word\t__dyninfo%04d\n"
"\t.size\t%s, .-%s\n";