瀏覽代碼

* fixed taarch64abi.pp so it doens't rely on undefined behaviour between the
end of an inline assembly block and the end of a routine

git-svn-id: trunk@41651 -

Jonas Maebe 6 年之前
父節點
當前提交
cb5b407e89
共有 1 個文件被更改,包括 18 次插入24 次删除
  1. 18 24
      tests/test/taarch64abi.pp

+ 18 - 24
tests/test/taarch64abi.pp

@@ -23,34 +23,28 @@ begin
     Halt(3);
     Halt(3);
 end;
 end;
 
 
-function RetByte: byte;
-var
-  q: qword;
-begin
-  q:=$1111111112345678;
-  asm
-    ldr x0,q
-  end;
+function RetByte: byte; assembler;
+asm
+  movz    x0,#22136
+  movk    x0,#4660,lsl #16
+  movk    x0,#4369,lsl #32
+  movk    x0,#4369,lsl #48
 end;
 end;
 
 
-function RetWord: word;
-var
-  q: qword;
-begin
-  q:=$1111111112345678;
-  asm
-    ldr x0,q
-  end;
+function RetWord: word; assembler;
+asm
+  movz    x0,#22136
+  movk    x0,#4660,lsl #16
+  movk    x0,#4369,lsl #32
+  movk    x0,#4369,lsl #48
 end;
 end;
 
 
-function RetDWord: dword;
-var
-  q: qword;
-begin
-  q:=$1111111112345678;
-  asm
-    ldr x0,q
-  end;
+function RetDWord: dword; assembler;
+asm
+  movz    x0,#22136
+  movk    x0,#4660,lsl #16
+  movk    x0,#4369,lsl #32
+  movk    x0,#4369,lsl #48
 end;
 end;
 
 
 procedure TestParams;
 procedure TestParams;