diff options
author | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2018-10-16 21:14:18 +0000 |
---|---|---|
committer | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2018-10-16 21:14:18 +0000 |
commit | ba40d96f2f0debde22bea268be1a234c8020b2e9 (patch) | |
tree | b138ba9d767e5faca11ac8da045ef7563f3e1b5f /compiler/jvm | |
parent | 49eae875a205840e04276865c16574c783787643 (diff) | |
download | fpc-ba40d96f2f0debde22bea268be1a234c8020b2e9.tar.gz |
* converted Boolean8 to an internal type, and mapped Boolean to the
new internal pasbool1(type) (part of mantis #34411)
o apply the _Bool x86-64 parameter passing rules only to pasbool1
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@39949 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/jvm')
-rw-r--r-- | compiler/jvm/hlcgcpu.pas | 6 | ||||
-rw-r--r-- | compiler/jvm/jvmdef.pas | 3 | ||||
-rw-r--r-- | compiler/jvm/njvmcnv.pas | 2 | ||||
-rw-r--r-- | compiler/jvm/njvminl.pas | 2 |
4 files changed, 8 insertions, 5 deletions
diff --git a/compiler/jvm/hlcgcpu.pas b/compiler/jvm/hlcgcpu.pas index 46e9ab8dd7..487588d92b 100644 --- a/compiler/jvm/hlcgcpu.pas +++ b/compiler/jvm/hlcgcpu.pas @@ -1241,7 +1241,7 @@ implementation if not ((size.typ=pointerdef) or ((size.typ=orddef) and (torddef(size).ordtype in [u64bit,u16bit,u32bit,u8bit,uchar, - pasbool8,pasbool16,pasbool32,pasbool64]))) then + pasbool1,pasbool8,pasbool16,pasbool32,pasbool64]))) then begin a_load_reg_stack(list,size,src1); if op in [OP_SUB,OP_IMUL] then @@ -1346,7 +1346,7 @@ implementation orddef: begin case torddef(eledef).ordtype of - pasbool8,s8bit,u8bit,bool8bit,uchar, + pasbool1,pasbool8,s8bit,u8bit,bool8bit,uchar, s16bit,u16bit,bool16bit,pasbool16, uwidechar, s32bit,u32bit,bool32bit,pasbool32, @@ -1371,7 +1371,7 @@ implementation else begin { deepcopy=true } - a_load_const_stack(list,pasbool8type,1,R_INTREGISTER); + a_load_const_stack(list,pasbool1type,1,R_INTREGISTER); { ndim } a_load_const_stack(list,s32inttype,ndim,R_INTREGISTER); { eletype } diff --git a/compiler/jvm/jvmdef.pas b/compiler/jvm/jvmdef.pas index 0c30fcf8cf..fc4b1ff874 100644 --- a/compiler/jvm/jvmdef.pas +++ b/compiler/jvm/jvmdef.pas @@ -539,6 +539,7 @@ implementation orddef: begin case torddef(def).ordtype of + pasbool1, pasbool8: begin objdef:=tobjectdef(search_system_type('JLBOOLEAN').typedef); @@ -622,6 +623,7 @@ implementation orddef: begin case torddef(def).ordtype of + pasbool1, pasbool8: result:='BOOLEANVALUE'; s8bit, @@ -784,6 +786,7 @@ implementation orddef: begin case torddef(def).ordtype of + pasbool1, pasbool8: begin result:=tobjectdef(search_system_type('FPCBOOLEANTHREADVAR').typedef); diff --git a/compiler/jvm/njvmcnv.pas b/compiler/jvm/njvmcnv.pas index d760e82753..9044ceb538 100644 --- a/compiler/jvm/njvmcnv.pas +++ b/compiler/jvm/njvmcnv.pas @@ -1497,7 +1497,7 @@ implementation if node.nodetype=asn then node.resultdef:=realtodef else - node.resultdef:=pasbool8type; + node.resultdef:=pasbool1type; end; diff --git a/compiler/jvm/njvminl.pas b/compiler/jvm/njvminl.pas index 006d7f750a..f73c5bff8a 100644 --- a/compiler/jvm/njvminl.pas +++ b/compiler/jvm/njvminl.pas @@ -487,7 +487,7 @@ implementation { prepend new } newparas:=ccallparanode.create(newnode,newparas); { prepend deepcopy } - newparas:=ccallparanode.create(cordconstnode.create(0,pasbool8type,false),newparas); + newparas:=ccallparanode.create(cordconstnode.create(0,pasbool1type,false),newparas); { call the right setlenght helper } if ndims>1 then begin |