diff options
author | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-05-02 10:21:09 +0200 |
---|---|---|
committer | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-05-02 10:21:09 +0200 |
commit | c56f9a47fe1837b7afb73c2c24aed9228bc0db08 (patch) | |
tree | 7a54af89b5b284512a4ff116c3c596db669cb1b3 /mppa_k1c/SelectLong.vp | |
parent | 8058d6a89fe0cfda16f685ef5a96793b95cc4156 (diff) | |
download | compcert-kvx-c56f9a47fe1837b7afb73c2c24aed9228bc0db08.tar.gz compcert-kvx-c56f9a47fe1837b7afb73c2c24aed9228bc0db08.zip |
allow disabling + xx global symbols
Diffstat (limited to 'mppa_k1c/SelectLong.vp')
-rw-r--r-- | mppa_k1c/SelectLong.vp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/mppa_k1c/SelectLong.vp b/mppa_k1c/SelectLong.vp index 3b9e5bf9..717b0120 100644 --- a/mppa_k1c/SelectLong.vp +++ b/mppa_k1c/SelectLong.vp @@ -70,7 +70,10 @@ Nondetfunction addlimm (n: int64) (e: expr) := if Int64.eq n Int64.zero then e else match e with | Eop (Olongconst m) Enil => longconst (Int64.add n m) - | Eop (Oaddrsymbol s m) Enil => Eop (Oaddrsymbol s (Ptrofs.add (Ptrofs.of_int64 n) m)) Enil + | Eop (Oaddrsymbol s m) Enil => + (if Compopts.optim_fglobaladdroffset tt + then Eop (Oaddrsymbol s (Ptrofs.add (Ptrofs.of_int64 n) m)) Enil + else Eop (Oaddlimm n) (e ::: Enil)) | Eop (Oaddrstack m) Enil => Eop (Oaddrstack (Ptrofs.add (Ptrofs.of_int64 n) m)) Enil | Eop (Oaddlimm m) (t ::: Enil) => Eop (Oaddlimm(Int64.add n m)) (t ::: Enil) | _ => Eop (Oaddlimm n) (e ::: Enil) |