summaryrefslogtreecommitdiff
path: root/aarch64/mono/aarch64_memory_literal_simdfp.sail
blob: cfbe87e15b0a81c64f326285ab678f7400575926 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* Needed set constraint */

val aarch64_memory_literal_simdfp : forall ('size : Int).
  (bits(64), atom('size), int) -> unit effect {escape, undef, wreg, rreg, rmem, wmem}

function aarch64_memory_literal_simdfp (offset, size, t) = {
  assert(constraint('size >= 0));
  assert(constraint('size in {4,8,16}));
  address : bits(64) = aget_PC() + offset;
  data : bits(8 * 'size) = undefined;
  CheckFPAdvSIMDEnabled64();
  data = aget_Mem(address, size, AccType_VEC);
  aset_V(t, data)
}