diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2009-06-25 12:26:08 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2009-06-25 12:26:08 +0000 |
commit | 855e18e540b2973634c70dc2a90e306b1567b49c (patch) | |
tree | 738798fd35c587177e42ddac9f6814baf7e689a8 /misc/buildroot/toolchain/nxflat/thumb2/dyncall_skeleton.def | |
parent | 181ef62460c09a8823bf250fb8f7eb618e627f55 (diff) | |
download | nuttx-855e18e540b2973634c70dc2a90e306b1567b49c.tar.gz nuttx-855e18e540b2973634c70dc2a90e306b1567b49c.tar.bz2 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/toolchain/nxflat/thumb2/dyncall_skeleton.def')
-rw-r--r-- | misc/buildroot/toolchain/nxflat/thumb2/dyncall_skeleton.def | 36 |
1 files changed, 16 insertions, 20 deletions
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"; |