aboutsummaryrefslogtreecommitdiffstats
path: root/arm/TargetPrinter.ml
diff options
context:
space:
mode:
authorBernhard Schommer <bernhardschommer@gmail.com>2017-07-26 15:14:58 +0200
committerBernhard Schommer <bernhardschommer@gmail.com>2017-07-26 15:14:58 +0200
commitc310fe9acf361dd6862d894523ff979806ac4536 (patch)
tree6f6661c3836688181eed39fff0cf90b105832a9b /arm/TargetPrinter.ml
parentdcdd7e30645885ee5bcc44d318ee4a9a99eaea4f (diff)
downloadcompcert-kvx-c310fe9acf361dd6862d894523ff979806ac4536.tar.gz
compcert-kvx-c310fe9acf361dd6862d894523ff979806ac4536.zip
Integrated fixup code in estimated size.
12 was a too small overaproximation for call which require fixup code for arguments and result. The new constant is 72, which consists of 4 for the branch instruction, 16 * 4 for the arguments and 4 for the result.
Diffstat (limited to 'arm/TargetPrinter.ml')
-rw-r--r--arm/TargetPrinter.ml3
1 files changed, 3 insertions, 0 deletions
diff --git a/arm/TargetPrinter.ml b/arm/TargetPrinter.ml
index 0626a371..60f52efd 100644
--- a/arm/TargetPrinter.ml
+++ b/arm/TargetPrinter.ml
@@ -767,6 +767,9 @@ struct
2 in
(len + add) * 4
| Pbuiltin (EF_inline_asm _,_,_) -> 1024 (* Better be safe than sorry *)
+ | Pbreg _
+ | Pblsymb _
+ | Pblreg _ -> 72 (* 4 for branch, 4 for fixup result 4 * 16 for fixup args *)
| _ -> 12