Forráskód Böngészése

* ARM: New test to evaluate ADR encoding error

J. Gareth "Curious Kit" Moreton 1 éve
szülő
commit
6b569d0ada
1 módosított fájl, 34 hozzáadás és 0 törlés
  1. 34 0
      tests/webtbs/tw40472.pp

+ 34 - 0
tests/webtbs/tw40472.pp

@@ -0,0 +1,34 @@
+{ %CPU=ARM }
+program tw40472;
+
+function AddrCheck(): LongInt; assembler; nostackframe;
+asm
+  ADR R0, .L528Ahead
+  LDR R0, [R0]
+  BX  LR
+.LPadding:
+  .long 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+  .long 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+  .long 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+  .long 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+  .long 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+  .long 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+  .long 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+  .long 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+  .long 0, 0, 0
+.L528Ahead:
+  .long 0x5555AAAA
+end;
+
+var
+  Output: LongInt;
+begin
+  Output := AddrCheck();
+  if Output <> $5555AAAA then
+    begin
+      WriteLn('ERROR: Expected $5555AAAA but got $', HexStr(Output, 8));
+      Halt(1);
+    end;
+
+  WriteLn('ok');
+end.